├── .gitattributes ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ └── config.yml ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── build-and-publish.yaml │ └── pr-comment-artifacts.yaml ├── .gitignore ├── .tool-versions ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── build.gradle ├── config └── checkstyle │ ├── checkstyle.xml │ └── suppressions.xml ├── crowdin.yml ├── docs └── RELEASE.md ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── qodana.yaml ├── settings.gradle └── src ├── generated └── resources │ ├── .cache │ ├── 103d9f3f36b01595f1aa5172191e60eff02e6924 │ ├── 2db41954e490230d51b10affff25ee2ee27b8d5b │ ├── 2f719b8031aed5e605ed8d6694b19245ca45c6ca │ ├── 59eb3dbb5f86130e09b3c62d89b9525ee01cf52d │ ├── 9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e │ ├── b8526e444ae7356037f3a813274f6835d1f3dd16 │ └── f95c7003282837dabaa33e3ffceec4e6865b5218 │ ├── assets │ └── advancedperipherals │ │ ├── blockstates │ │ ├── block_reader.json │ │ ├── chat_box.json │ │ ├── colony_integrator.json │ │ ├── energy_detector.json │ │ ├── environment_detector.json │ │ ├── geo_scanner.json │ │ ├── inventory_manager.json │ │ ├── me_bridge.json │ │ ├── nbt_storage.json │ │ ├── peripheral_casing.json │ │ ├── player_detector.json │ │ └── rs_bridge.json │ │ ├── lang │ │ └── en_us.json │ │ └── models │ │ └── block │ │ ├── block_reader.json │ │ ├── chat_box.json │ │ ├── colony_integrator.json │ │ ├── energy_detector.json │ │ ├── environment_detector.json │ │ ├── geo_scanner.json │ │ ├── inventory_manager.json │ │ ├── me_bridge.json │ │ ├── nbt_storage.json │ │ ├── peripheral_casing.json │ │ ├── player_detector.json │ │ └── rs_bridge.json │ └── data │ ├── advancedperipherals │ ├── advancement │ │ └── recipes │ │ │ └── redstone │ │ │ ├── block_reader.json │ │ │ ├── chat_box.json │ │ │ ├── chunk_controller.json │ │ │ ├── colony_integrator.json │ │ │ ├── computer_tool.json │ │ │ ├── energy_detector.json │ │ │ ├── environment_detector.json │ │ │ ├── geo_scanner.json │ │ │ ├── inventory_manager.json │ │ │ ├── me_bridge.json │ │ │ ├── memory_card.json │ │ │ ├── nbt_storage.json │ │ │ ├── overpowered_end_automata_core.json │ │ │ ├── overpowered_husbandry_automata_core.json │ │ │ ├── overpowered_weak_automata_core.json │ │ │ ├── peripheral_casing.json │ │ │ ├── player_detector.json │ │ │ ├── rs_bridge.json │ │ │ └── weak_automata_core.json │ ├── computercraft │ │ ├── pocket_upgrade │ │ │ ├── chatty_pocket.json │ │ │ ├── colony_pocket.json │ │ │ ├── environment_pocket.json │ │ │ ├── geoscanner_pocket.json │ │ │ └── player_pocket.json │ │ └── turtle_upgrade │ │ │ ├── chatty_turtle.json │ │ │ ├── chunky_turtle.json │ │ │ ├── compass_turtle.json │ │ │ ├── end_automata.json │ │ │ ├── environment_turtle.json │ │ │ ├── geoscanner_turtle.json │ │ │ ├── husbandry_automata.json │ │ │ ├── overpowered_end_automata.json │ │ │ ├── overpowered_husbandry_automata.json │ │ │ ├── overpowered_weak_automata.json │ │ │ ├── player_turtle.json │ │ │ └── weak_automata.json │ ├── loot_table │ │ └── blocks │ │ │ ├── block_reader.json │ │ │ ├── chat_box.json │ │ │ ├── colony_integrator.json │ │ │ ├── energy_detector.json │ │ │ ├── environment_detector.json │ │ │ ├── geo_scanner.json │ │ │ ├── inventory_manager.json │ │ │ ├── me_bridge.json │ │ │ ├── nbt_storage.json │ │ │ ├── peripheral_casing.json │ │ │ ├── player_detector.json │ │ │ └── rs_bridge.json │ └── recipe │ │ ├── block_reader.json │ │ ├── chat_box.json │ │ ├── chunk_controller.json │ │ ├── colony_integrator.json │ │ ├── computer_tool.json │ │ ├── energy_detector.json │ │ ├── environment_detector.json │ │ ├── geo_scanner.json │ │ ├── inventory_manager.json │ │ ├── me_bridge.json │ │ ├── memory_card.json │ │ ├── nbt_storage.json │ │ ├── overpowered_end_automata_core.json │ │ ├── overpowered_husbandry_automata_core.json │ │ ├── overpowered_weak_automata_core.json │ │ ├── peripheral_casing.json │ │ ├── player_detector.json │ │ ├── rs_bridge.json │ │ └── weak_automata_core.json │ ├── minecraft │ └── tags │ │ ├── blocks │ │ ├── mineable │ │ │ └── pickaxe.json │ │ └── needs_iron_tool.json │ │ └── point_of_interest_type │ │ └── acquirable_job_site.json │ └── neoforge │ └── tags │ └── blocks │ └── needs_wood_tool.json ├── main ├── java │ └── de │ │ └── srendi │ │ └── advancedperipherals │ │ ├── APCreativeTab.java │ │ ├── AdvancedPeripherals.java │ │ ├── client │ │ ├── ClientRegistry.java │ │ ├── ClientUUIDCache.java │ │ ├── KeyBindings.java │ │ └── MetaTurtleUpgradeModeller.java │ │ ├── common │ │ ├── addons │ │ │ ├── APAddon.java │ │ │ ├── appliedenergistics │ │ │ │ ├── AppEngApi.java │ │ │ │ ├── CraftJob.java │ │ │ │ ├── MEBridgeEntityListener.java │ │ │ │ ├── MEFluidHandler.java │ │ │ │ └── MEItemHandler.java │ │ │ ├── computercraft │ │ │ │ ├── integrations │ │ │ │ │ ├── BeaconIntegration.java │ │ │ │ │ ├── BlockEntityIntegration.java │ │ │ │ │ ├── BlockIntegration.java │ │ │ │ │ ├── IntegrationPeripheralProvider.java │ │ │ │ │ └── NoteBlockIntegration.java │ │ │ │ ├── luaapi │ │ │ │ │ └── GlobalVersionsLuaAPI.java │ │ │ │ ├── operations │ │ │ │ │ ├── AutomataCoreTier.java │ │ │ │ │ ├── SimpleFreeOperation.java │ │ │ │ │ ├── SingleOperation.java │ │ │ │ │ ├── SingleOperationContext.java │ │ │ │ │ ├── SphereOperation.java │ │ │ │ │ └── SphereOperationContext.java │ │ │ │ ├── owner │ │ │ │ │ ├── BasePeripheralOwner.java │ │ │ │ │ ├── BlockEntityPeripheralOwner.java │ │ │ │ │ ├── FuelAbility.java │ │ │ │ │ ├── IOwnerAbility.java │ │ │ │ │ ├── IPeripheralOwner.java │ │ │ │ │ ├── InfinitePocketFuelAbility.java │ │ │ │ │ ├── OperationAbility.java │ │ │ │ │ ├── PeripheralOwnerAbility.java │ │ │ │ │ ├── PocketPeripheralOwner.java │ │ │ │ │ ├── TileEntityFuelAbility.java │ │ │ │ │ ├── TurtleFuelAbility.java │ │ │ │ │ └── TurtlePeripheralOwner.java │ │ │ │ ├── peripheral │ │ │ │ │ ├── BlockReaderPeripheral.java │ │ │ │ │ ├── ChatBoxPeripheral.java │ │ │ │ │ ├── ChunkyPeripheral.java │ │ │ │ │ ├── ColonyPeripheral.java │ │ │ │ │ ├── CompassPeripheral.java │ │ │ │ │ ├── EnergyDetectorPeripheral.java │ │ │ │ │ ├── EnvironmentDetectorPeripheral.java │ │ │ │ │ ├── GeoScannerPeripheral.java │ │ │ │ │ ├── InventoryManagerPeripheral.java │ │ │ │ │ ├── MEBridgePeripheral.java │ │ │ │ │ ├── NBTStoragePeripheral.java │ │ │ │ │ ├── PlayerDetectorPeripheral.java │ │ │ │ │ ├── RSBridgePeripheral.java │ │ │ │ │ ├── metaphysics │ │ │ │ │ │ ├── EndAutomataCorePeripheral.java │ │ │ │ │ │ ├── HusbandryAutomataCorePeripheral.java │ │ │ │ │ │ ├── OverpoweredEndAutomataCorePeripheral.java │ │ │ │ │ │ ├── OverpoweredHusbandryAutomataCorePeripheral.java │ │ │ │ │ │ ├── OverpoweredWeakAutomataCorePeripheral.java │ │ │ │ │ │ └── WeakAutomataCorePeripheral.java │ │ │ │ │ └── plugins │ │ │ │ │ │ ├── AutomataBlockHandPlugin.java │ │ │ │ │ │ ├── AutomataChargingPlugin.java │ │ │ │ │ │ ├── AutomataCorePlugin.java │ │ │ │ │ │ ├── AutomataEntityHandPlugin.java │ │ │ │ │ │ ├── AutomataEntityTransferPlugin.java │ │ │ │ │ │ ├── AutomataItemSuckPlugin.java │ │ │ │ │ │ ├── AutomataLookPlugin.java │ │ │ │ │ │ ├── AutomataSoulFeedingPlugin.java │ │ │ │ │ │ └── AutomataWarpingPlugin.java │ │ │ │ ├── pocket │ │ │ │ │ ├── PocketChatBoxUpgrade.java │ │ │ │ │ ├── PocketColonyIntegratorUpgrade.java │ │ │ │ │ ├── PocketEnvironmentUpgrade.java │ │ │ │ │ ├── PocketGeoScannerUpgrade.java │ │ │ │ │ └── PocketPlayerDetectorUpgrade.java │ │ │ │ └── turtles │ │ │ │ │ ├── TurtleChatBoxUpgrade.java │ │ │ │ │ ├── TurtleChunkyUpgrade.java │ │ │ │ │ ├── TurtleCompassUpgrade.java │ │ │ │ │ ├── TurtleEnvironmentDetectorUpgrade.java │ │ │ │ │ ├── TurtleGeoScannerUpgrade.java │ │ │ │ │ ├── TurtlePlayerDetectorUpgrade.java │ │ │ │ │ └── metaphysics │ │ │ │ │ ├── EndAutomata.java │ │ │ │ │ ├── HusbandryAutomata.java │ │ │ │ │ ├── OverpoweredEndAutomata.java │ │ │ │ │ ├── OverpoweredHusbandryAutomata.java │ │ │ │ │ ├── OverpoweredWeakAutomata.java │ │ │ │ │ └── WeakAutomata.java │ │ │ ├── mekanism │ │ │ │ ├── EnvironmentRadiationPlugin.java │ │ │ │ ├── Integration.java │ │ │ │ └── Mekanism.java │ │ │ ├── minecolonies │ │ │ │ └── MineColonies.java │ │ │ ├── powah │ │ │ │ ├── EnderCellIntegration.java │ │ │ │ ├── EnergyCellIntegration.java │ │ │ │ ├── FurnatorIntegration.java │ │ │ │ ├── Integration.java │ │ │ │ ├── MagmatorIntegration.java │ │ │ │ ├── ReactorIntegration.java │ │ │ │ ├── SolarPanelIntegration.java │ │ │ │ └── ThermoIntegration.java │ │ │ └── refinedstorage │ │ │ │ ├── RSApi.java │ │ │ │ ├── RSChemicalHandler.java │ │ │ │ ├── RSCraftJob.java │ │ │ │ ├── RSFluidHandler.java │ │ │ │ ├── RSItemHandler.java │ │ │ │ └── RsStorageTypes.java │ │ ├── blocks │ │ │ ├── PlayerDetectorBlock.java │ │ │ ├── base │ │ │ │ ├── APBlockEntityBlock.java │ │ │ │ ├── BaseBlock.java │ │ │ │ ├── BaseBlockEntityBlock.java │ │ │ │ ├── ICapabilityProvider.java │ │ │ │ ├── IHarvestableBlock.java │ │ │ │ ├── IInventoryBlock.java │ │ │ │ ├── PeripheralBlockEntity.java │ │ │ │ └── PoweredPeripheralBlockEntity.java │ │ │ └── blockentities │ │ │ │ ├── BlockReaderEntity.java │ │ │ │ ├── ChatBoxEntity.java │ │ │ │ ├── ColonyIntegratorEntity.java │ │ │ │ ├── EnergyDetectorEntity.java │ │ │ │ ├── EnvironmentDetectorEntity.java │ │ │ │ ├── GeoScannerEntity.java │ │ │ │ ├── InventoryManagerEntity.java │ │ │ │ ├── MEBridgeEntity.java │ │ │ │ ├── NBTStorageEntity.java │ │ │ │ ├── PlayerDetectorEntity.java │ │ │ │ └── RSBridgeEntity.java │ │ ├── commands │ │ │ └── APCommands.java │ │ ├── configuration │ │ │ ├── APConfig.java │ │ │ ├── GeneralConfig.java │ │ │ ├── IAPConfig.java │ │ │ ├── MetaphysicsConfig.java │ │ │ ├── PeripheralsConfig.java │ │ │ ├── UnsafeConfig.java │ │ │ └── WorldConfig.java │ │ ├── container │ │ │ ├── InventoryManagerContainer.java │ │ │ ├── InventoryManagerScreen.java │ │ │ └── base │ │ │ │ ├── BaseContainer.java │ │ │ │ ├── BaseItemContainer.java │ │ │ │ ├── BaseItemScreen.java │ │ │ │ ├── BaseScreen.java │ │ │ │ ├── NamedContainerProvider.java │ │ │ │ ├── SlotCondition.java │ │ │ │ └── SlotInputHandler.java │ │ ├── data │ │ │ ├── BlockLootTables.java │ │ │ ├── BlockLootTablesProvider.java │ │ │ ├── BlockStatesAndModelsProvider.java │ │ │ ├── BlockTagsProvider.java │ │ │ ├── DataGenerators.java │ │ │ ├── EnUsLanguageProvider.java │ │ │ ├── PocketUpgradesProvider.java │ │ │ ├── PoiTypeProvider.java │ │ │ ├── RecipesProvider.java │ │ │ └── TurtleUpgradesProvider.java │ │ ├── events │ │ │ └── Events.java │ │ ├── items │ │ │ ├── APBlockItem.java │ │ │ ├── APItem.java │ │ │ ├── MemoryCardItem.java │ │ │ ├── WeakAutomataCore.java │ │ │ └── base │ │ │ │ ├── BaseBlockItem.java │ │ │ │ ├── BaseItem.java │ │ │ │ └── IInventoryItem.java │ │ ├── setup │ │ │ ├── BlockEntityTypes.java │ │ │ ├── Blocks.java │ │ │ ├── CCRegistration.java │ │ │ ├── ContainerTypes.java │ │ │ ├── CreativeTabs.java │ │ │ ├── DataComponents.java │ │ │ ├── Items.java │ │ │ ├── Registration.java │ │ │ └── Villagers.java │ │ ├── util │ │ │ ├── ChunkManager.java │ │ │ ├── CoordUtil.java │ │ │ ├── CountingWipingStream.java │ │ │ ├── DataComponentUtil.java │ │ │ ├── DataStorageUtil.java │ │ │ ├── EnergyStorageProxy.java │ │ │ ├── EnumColor.java │ │ │ ├── KeybindUtil.java │ │ │ ├── LuaConverter.java │ │ │ ├── NBTUtil.java │ │ │ ├── Pair.java │ │ │ ├── Platform.java │ │ │ ├── RawValue.java │ │ │ ├── ScanUtils.java │ │ │ ├── ServerWorker.java │ │ │ ├── SideHelper.java │ │ │ ├── StatusConstants.java │ │ │ ├── StringUtil.java │ │ │ ├── ToastUtil.java │ │ │ ├── TranslationUtil.java │ │ │ ├── fakeplayer │ │ │ │ ├── APFakePlayer.java │ │ │ │ └── FakePlayerProviderTurtle.java │ │ │ └── inventory │ │ │ │ ├── BasicCraftJob.java │ │ │ │ ├── ChemicalFilter.java │ │ │ │ ├── ChemicalUtil.java │ │ │ │ ├── FluidFilter.java │ │ │ │ ├── FluidUtil.java │ │ │ │ ├── GenericFilter.java │ │ │ │ ├── IStorageSystemChemicalHandler.java │ │ │ │ ├── IStorageSystemFluidHandler.java │ │ │ │ ├── IStorageSystemItemHandler.java │ │ │ │ ├── IStorageSystemPeripheral.java │ │ │ │ ├── InventoryUtil.java │ │ │ │ ├── ItemFilter.java │ │ │ │ └── ItemUtil.java │ │ └── village │ │ │ ├── VillageStructures.java │ │ │ ├── VillagerTrade.java │ │ │ └── VillagerTrades.java │ │ ├── lib │ │ ├── LibConfig.java │ │ ├── integrations │ │ │ └── IPeripheralIntegration.java │ │ ├── metaphysics │ │ │ ├── IAutomataCoreTier.java │ │ │ └── IFeedableAutomataCore.java │ │ ├── misc │ │ │ └── IConfigHandler.java │ │ ├── peripherals │ │ │ ├── APGenericPeripheral.java │ │ │ ├── AutomataCorePeripheral.java │ │ │ ├── BasePeripheral.java │ │ │ ├── BlockEntityIntegrationPeripheral.java │ │ │ ├── BlockIntegrationPeripheral.java │ │ │ ├── BoundMethod.java │ │ │ ├── DisabledPeripheral.java │ │ │ ├── IBasePeripheral.java │ │ │ ├── IDataComponentProvider.java │ │ │ ├── IPeripheralCheck.java │ │ │ ├── IPeripheralFunction.java │ │ │ ├── IPeripheralOperation.java │ │ │ ├── IPeripheralPlugin.java │ │ │ ├── IPeripheralTileEntity.java │ │ │ └── IntegrationPeripheral.java │ │ ├── pocket │ │ │ └── BasePocketUpgrade.java │ │ └── turtle │ │ │ ├── ClockwiseAnimatedTurtleUpgrade.java │ │ │ └── PeripheralTurtleUpgrade.java │ │ └── network │ │ ├── APNetworking.java │ │ ├── IAPPacket.java │ │ ├── toclient │ │ ├── ToastToClientPacket.java │ │ └── UsernameToCachePacket.java │ │ └── toserver │ │ └── RetrieveUsernamePacket.java └── resources │ ├── META-INF │ ├── accesstransformer.cfg │ └── neoforge.mods.toml │ ├── assets │ └── advancedperipherals │ │ ├── lang │ │ ├── af_za.json │ │ ├── ar_sa.json │ │ ├── az_az.json │ │ ├── be_by.json │ │ ├── bg_bg.json │ │ ├── bs_ba.json │ │ ├── ca_es.json │ │ ├── cs_cz.json │ │ ├── cy_gb.json │ │ ├── da_dk.json │ │ ├── de_at.json │ │ ├── de_ch.json │ │ ├── de_de.json │ │ ├── el_gr.json │ │ ├── en_US.json │ │ ├── en_au.json │ │ ├── en_gb.json │ │ ├── en_pt.json │ │ ├── en_za.json │ │ ├── eo_uy.json │ │ ├── es_ar.json │ │ ├── es_cl.json │ │ ├── es_es.json │ │ ├── es_mx.json │ │ ├── et_ee.json │ │ ├── eu_es.json │ │ ├── fa_ir.json │ │ ├── fi_fi.json │ │ ├── fil_ph.json │ │ ├── fo_fo.json │ │ ├── fr_fr.json │ │ ├── ga_ie.json │ │ ├── gd_gb.json │ │ ├── gl_es.json │ │ ├── haw_us.json │ │ ├── he_il.json │ │ ├── hi_in.json │ │ ├── hr_hr.json │ │ ├── hu_hu.json │ │ ├── hy_am.json │ │ ├── id_id.json │ │ ├── is_is.json │ │ ├── it_it.json │ │ ├── ja_jp.json │ │ ├── ka_ge.json │ │ ├── kn_in.json │ │ ├── ko_kr.json │ │ ├── lb_lu.json │ │ ├── lt_lt.json │ │ ├── lv_lv.json │ │ ├── mi_nz.json │ │ ├── mk_mk.json │ │ ├── mn_mn.json │ │ ├── ms_my.json │ │ ├── mt_mt.json │ │ ├── nb_no.json │ │ ├── nl_nl.json │ │ ├── nn_no.json │ │ ├── pl_pl.json │ │ ├── pt_br.json │ │ ├── pt_pt.json │ │ ├── ro_ro.json │ │ ├── ru_ru.json │ │ ├── sk_sk.json │ │ ├── sl_si.json │ │ ├── sq_al.json │ │ ├── sr_sp.json │ │ ├── sv_se.json │ │ ├── th_th.json │ │ ├── tlh_aa.json │ │ ├── tr_tr.json │ │ ├── uk_ua.json │ │ ├── vi_vn.json │ │ ├── zh_cn.json │ │ └── zh_tw.json │ │ ├── models │ │ ├── block │ │ │ ├── turtle_chatty_left.json │ │ │ ├── turtle_chatty_right.json │ │ │ ├── turtle_environment_left.json │ │ │ ├── turtle_environment_right.json │ │ │ ├── turtle_geoscanner_left.json │ │ │ ├── turtle_geoscanner_right.json │ │ │ ├── turtle_player_left.json │ │ │ ├── turtle_player_right.json │ │ │ ├── turtle_upgrade_base_left.json │ │ │ └── turtle_upgrade_base_right.json │ │ └── item │ │ │ ├── ar_controller.json │ │ │ ├── ar_goggles.json │ │ │ ├── block_reader.json │ │ │ ├── book.json │ │ │ ├── chat_box.json │ │ │ ├── chunk_controller.json │ │ │ ├── colony_integrator.json │ │ │ ├── computer_tool.json │ │ │ ├── end_automata_core.json │ │ │ ├── energy_detector.json │ │ │ ├── environment_detector.json │ │ │ ├── geo_scanner.json │ │ │ ├── husbandry_automata_core.json │ │ │ ├── inventory_manager.json │ │ │ ├── me_bridge.json │ │ │ ├── memory_card.json │ │ │ ├── nbt_storage.json │ │ │ ├── overpowered_end_automata_core.json │ │ │ ├── overpowered_husbandry_automata_core.json │ │ │ ├── overpowered_weak_automata_core.json │ │ │ ├── peripheral_casing.json │ │ │ ├── player_detector.json │ │ │ ├── redstone_integrator.json │ │ │ ├── rs_bridge.json │ │ │ ├── turtle_chat_box_upgrade_left.json │ │ │ ├── turtle_chat_box_upgrade_right.json │ │ │ ├── turtle_environment_upgrade_left.json │ │ │ ├── turtle_environment_upgrade_right.json │ │ │ ├── turtle_geoscanner_upgrade_left.json │ │ │ ├── turtle_geoscanner_upgrade_right.json │ │ │ ├── turtle_player_upgrade_left.json │ │ │ ├── turtle_player_upgrade_right.json │ │ │ └── weak_automata_core.json │ │ ├── patchouli_books │ │ └── manual │ │ │ └── en_us │ │ │ ├── categories │ │ │ ├── items.json │ │ │ ├── metaphysics.json │ │ │ └── peripherals.json │ │ │ └── entries │ │ │ ├── items │ │ │ ├── chunk_controller.json │ │ │ ├── computer_tool.json │ │ │ ├── memory_card.json │ │ │ └── pocket_computers.json │ │ │ ├── metaphysics │ │ │ ├── end_automata_core.json │ │ │ ├── fuel_consuming.json │ │ │ ├── husbandry_automata_core.json │ │ │ ├── intro.json │ │ │ ├── overpowered_automata_core.json │ │ │ └── weak_automata_core.json │ │ │ └── peripherals │ │ │ ├── block_reader.json │ │ │ ├── chat_box.json │ │ │ ├── colony_integrator.json │ │ │ ├── energy_detector.json │ │ │ ├── environment_detector.json │ │ │ ├── geo_scanner.json │ │ │ ├── inventory_manager.json │ │ │ ├── me_bridge.json │ │ │ ├── nbt_storage.json │ │ │ ├── player_detector.json │ │ │ └── rs_bridge.json │ │ └── textures │ │ ├── block │ │ ├── block_reader_down.png │ │ ├── block_reader_east.png │ │ ├── block_reader_north.png │ │ ├── block_reader_north.png.mcmeta │ │ ├── block_reader_south.png │ │ ├── block_reader_up.png │ │ ├── block_reader_west.png │ │ ├── bottom.png │ │ ├── chat_box.png │ │ ├── chat_box_front.png │ │ ├── chat_box_front.png.mcmeta │ │ ├── chat_box_top.png │ │ ├── colony_integrator.png │ │ ├── colony_integrator_front.png │ │ ├── colony_integrator_front.png.mcmeta │ │ ├── colony_integrator_top.png │ │ ├── energy_detector.png │ │ ├── energy_detector_back.png │ │ ├── energy_detector_east.png │ │ ├── energy_detector_east.png.mcmeta │ │ ├── energy_detector_front.png │ │ ├── energy_detector_top.png │ │ ├── environment_detector.png │ │ ├── environment_detector_front.png │ │ ├── environment_detector_front.png.mcmeta │ │ ├── environment_detector_top.png │ │ ├── geo_scanner.png │ │ ├── geo_scanner_front.png │ │ ├── geo_scanner_front.png.mcmeta │ │ ├── geo_scanner_top.png │ │ ├── inventory_manager.png │ │ ├── inventory_manager_front.png │ │ ├── inventory_manager_top.png │ │ ├── me_bridge.png │ │ ├── me_bridge_front.png │ │ ├── me_bridge_front.png.mcmeta │ │ ├── me_bridge_top.png │ │ ├── nbt_storage.png │ │ ├── nbt_storage_front.png │ │ ├── nbt_storage_front.png.mcmeta │ │ ├── nbt_storage_top.png │ │ ├── peripheral_casing.png │ │ ├── player_detector_front.png │ │ ├── player_detector_side.png │ │ ├── player_detector_top.png │ │ ├── redstone_integrator_bottom.png │ │ ├── redstone_integrator_front.png │ │ ├── redstone_integrator_front.png.mcmeta │ │ ├── redstone_integrator_side.png │ │ ├── redstone_integrator_top.png │ │ ├── rs_bridge.png │ │ ├── rs_bridge_front.png │ │ ├── rs_bridge_front.png.mcmeta │ │ └── rs_bridge_top.png │ │ ├── entity │ │ ├── villager │ │ │ └── profession │ │ │ │ └── computer_scientist.png │ │ └── zombie_villager │ │ │ └── profession │ │ │ └── computer_scientist.png │ │ ├── gui │ │ └── inventory_manager_gui.png │ │ ├── item │ │ ├── book.png │ │ ├── chunk_controller.png │ │ ├── computer_tool.png │ │ ├── memory_card.png │ │ └── metaphysics │ │ │ ├── base_gear.png │ │ │ ├── big_fire.png │ │ │ ├── big_fire_green.png │ │ │ ├── big_fire_purple.png │ │ │ ├── fire.png │ │ │ ├── fire_green.png │ │ │ └── fire_purple.png │ │ └── models │ │ └── ar_goggles.png │ ├── data │ └── advancedperipherals │ │ ├── advancements │ │ ├── base_toolkit.json │ │ ├── end_automata_core.json │ │ ├── husbandry_automata_core.json │ │ ├── nbt_toolkit.json │ │ ├── overpowered_automata_core.json │ │ ├── root.json │ │ ├── sense_toolkit.json │ │ └── weak_automata_core.json │ │ ├── patchouli_books │ │ └── manual │ │ │ └── book.json │ │ ├── recipes │ │ └── guide_book.json │ │ └── structures │ │ └── villages │ │ ├── scientist_desert.nbt │ │ ├── scientist_plains.nbt │ │ ├── scientist_savanna.nbt │ │ ├── scientist_snowy.nbt │ │ └── scientist_taiga.nbt │ ├── pack.mcmeta │ └── pack.png ├── test └── java │ └── de │ └── srendi │ └── advancedperipherals │ ├── lib │ └── peripherals │ │ └── owner │ │ └── OperationAbilityTest.java │ └── test │ └── DummyPeripheralOwner.java └── testMod ├── resources ├── META-INF │ ├── accesstransformer.cfg │ └── mods.toml └── pack.mcmeta └── server-files ├── computers ├── computer │ └── 0 │ │ ├── startup.lua │ │ └── tests │ │ ├── automata.weak.lua │ │ ├── botania.manapool.lua │ │ └── peripherals.geoscanner.lua └── ids.json ├── eula.txt ├── server.properties └── structures ├── automata.weak.snbt ├── dummytest.passing.snbt └── peripherals.geoscanner.snbt /.gitattributes: -------------------------------------------------------------------------------- 1 | # Disable autocrlf on generated files, they always generate with LF 2 | # Add any extra files or paths here to make git stop saying they 3 | # are changed when only line endings change. 4 | src/generated/**/.cache/cache text eol=lf 5 | src/generated/**/*.json text eol=lf 6 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | ko_fi: srendi 2 | github: SirEndii 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Feature Requests 4 | url: https://github.com/SirEndii/Advanced-Peripherals-Features/issues/new/choose 5 | about: Please create feature requests at the proper repository. 6 | - name: Documentation Issues 7 | url: https://github.com/Seniorendi/Advanced-Peripherals-Documentation/issues 8 | about: Please create issues of the documentation at the proper repository. 9 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | **PLEASE READ THE [GUIDELINES](https://github.com/IntelligenceModding/AdvancedPeripherals/blob/dev/1.21.1/CONTRIBUTING.md) BEFORE MAKING A CONTRIBUTION** 2 | 3 | 4 | * **Please check if the PR fulfills these requirements** 5 | - [ ] The commit message are well described 6 | - [ ] Docs have been added / updated (for features or maybe bugs which were noted). If not, please update the needed documentation [here](https://github.com/IntelligenceModding/Advanced-Peripherals-Documentation/pulls). Feel free to remove this check if you don't need it 7 | - [ ] All changes have fully been tested 8 | 9 | * **What kind of change does this PR introduce?** (Bug fix, feature, ...) 10 | 11 | 12 | * **What is the current behavior?** (You can also link to an open issue here) 13 | 14 | 15 | * **What is the new behavior (if this is a feature change)?** 16 | 17 | 18 | * **Does this PR introduce a breaking change?** (What changes might users need to make in their scripts due to this PR?) 19 | 20 | 21 | * **Other information**: 22 | 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # eclipse 2 | bin 3 | *.launch 4 | .settings 5 | .metadata 6 | .classpath 7 | .project 8 | 9 | # idea 10 | out 11 | *.ipr 12 | *.iws 13 | *.iml 14 | .idea 15 | 16 | # gradle 17 | build 18 | .gradle 19 | 20 | # other 21 | eclipse 22 | runs/ 23 | server 24 | run 25 | 26 | # Files from Forge MDK 27 | forge*changelog.txt 28 | 29 | #github 30 | 31 | 1.17 32 | .env 33 | 34 | test-files 35 | logs/ -------------------------------------------------------------------------------- /.tool-versions: -------------------------------------------------------------------------------- 1 | java 21 2 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | These are the currently supported versions. 6 | We will always support every version for security patches. 7 | 8 | | Supported Version | 1.16 | 1.17 | 1.18 | 1.19.2 | 1.19.3 | 1.19.4 | 1.20.1 | 9 | |-----------------------|------|------|------|--------|--------|--------|--------| 10 | | Security patches | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | 11 | | Critical fixes | :x: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: | 12 | | Minor fixes | :x: | :x: | :white_check_mark: | :white_check_mark: | :x: | :x: | :white_check_mark: | 13 | | Minor features | :x: | :x: | :x: | :white_check_mark: | :x: | :x: | :white_check_mark: | 14 | | Fully supported | :x: | :x: | :x: | :white_check_mark: | :x: | :x: | :white_check_mark: | 15 | | Will be supported | :x: | :x: | :o: | :o: | :o: | :x: | :o: | 16 | 17 | ## Reporting a Vulnerability 18 | 19 | If you want to report a vulnerability, please do that via our email (report AT intelligence-modding DOT de). 20 | -------------------------------------------------------------------------------- /config/checkstyle/suppressions.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /qodana.yaml: -------------------------------------------------------------------------------- 1 | #-------------------------------------------------------------------------------# 2 | # Qodana analysis is configured by qodana.yaml file # 3 | # https://www.jetbrains.com/help/qodana/qodana-yaml.html # 4 | #-------------------------------------------------------------------------------# 5 | version: "1.0" 6 | 7 | profile: 8 | name: qodana.starter 9 | 10 | #Disable inspections 11 | exclude: 12 | - name: Exclude assets 13 | paths: 14 | - src/generated/* 15 | - src/main/resources/* 16 | - src/test/resources/* 17 | - src/testMod/resources/* 18 | - src/server-files/resources/* 19 | - name: CheckDependencyLicenses 20 | 21 | include: 22 | - name: TrivialIf 23 | - name: NullableProblems -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | gradlePluginPortal() 4 | mavenCentral() 5 | maven { 6 | name = 'NeoForged' 7 | url = 'https://maven.neoforged.net/releases' 8 | content { 9 | includeGroup("net.minecraftforge") 10 | includeGroup("net.neoforged.gradle.userdev") 11 | includeGroup("net.neoforged.gradle") 12 | includeGroup("net.neoforged") 13 | includeGroup("codechicken") 14 | includeGroup("org.spongepowered.mixin") 15 | includeGroup("org.spongepowered") 16 | } 17 | } 18 | } 19 | } 20 | 21 | plugins { 22 | id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' 23 | } -------------------------------------------------------------------------------- /src/generated/resources/.cache/2db41954e490230d51b10affff25ee2ee27b8d5b: -------------------------------------------------------------------------------- 1 | // 1.21.1 2025-01-13T17:28:09.7081276 AP POI Type Tags 2 | d3d6b837660a4e213f287ad9d11e12368b90cd8e data/minecraft/tags/point_of_interest_type/acquirable_job_site.json 3 | -------------------------------------------------------------------------------- /src/generated/resources/.cache/2f719b8031aed5e605ed8d6694b19245ca45c6ca: -------------------------------------------------------------------------------- 1 | // 1.21.1 2025-05-07T00:17:51.4075794 Languages: en_us for mod: advancedperipherals 2 | 4d8689d30caa2e8181f6c64f04b26ee3e3a9935a assets/advancedperipherals/lang/en_us.json 3 | -------------------------------------------------------------------------------- /src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d: -------------------------------------------------------------------------------- 1 | // 1.21.1 2025-05-07T00:17:51.4040751 Loot Tables 2 | 9b54955770745d55de988a86cbd08aa9ae23ff86 data/advancedperipherals/loot_table/blocks/block_reader.json 3 | d4f1bc579f83dc67ce9f94d35926d34b8894c990 data/advancedperipherals/loot_table/blocks/chat_box.json 4 | 9ac96b8e3da827886d8da459a2f146e8ae3ee798 data/advancedperipherals/loot_table/blocks/colony_integrator.json 5 | 6da40a0a9d46855710272fe9d40bb5a7f0219ff2 data/advancedperipherals/loot_table/blocks/energy_detector.json 6 | 85cd3af52c824db96403e6fceea480bceda3a186 data/advancedperipherals/loot_table/blocks/environment_detector.json 7 | 7f607d7476252b89a57eb4c227cc69f4f28995e3 data/advancedperipherals/loot_table/blocks/geo_scanner.json 8 | fddf157b52a210846f5737dcc39a16b7ab6a587a data/advancedperipherals/loot_table/blocks/inventory_manager.json 9 | ae62bfa75e39a59374602c8a87cc2afe8b4923dd data/advancedperipherals/loot_table/blocks/me_bridge.json 10 | 51ceb7b82ba8424a2c6f03f280c14d1c2d0d18d7 data/advancedperipherals/loot_table/blocks/nbt_storage.json 11 | fa56de9a073f32ab8a65b5f17c57f360a157b5c1 data/advancedperipherals/loot_table/blocks/peripheral_casing.json 12 | d61b1c54dd6da8f0213d5eb8a5b40d78bff5ba90 data/advancedperipherals/loot_table/blocks/player_detector.json 13 | 76cdba2795aafc897a579670afb264b75147f498 data/advancedperipherals/loot_table/blocks/rs_bridge.json 14 | -------------------------------------------------------------------------------- /src/generated/resources/.cache/f95c7003282837dabaa33e3ffceec4e6865b5218: -------------------------------------------------------------------------------- 1 | // 1.21.1 2025-05-07T00:17:51.4020761 Block tags 2 | 24917bcda8a0adefdd56628fb3a5c168fb9b8268 data/minecraft/tags/blocks/mineable/pickaxe.json 3 | ad2a70ed8a76807e64ecb32a3240b32e090cea4a data/minecraft/tags/blocks/needs_iron_tool.json 4 | e1f71dcb4f9e7e36e29b0ad09d6520dc3adfa4a6 data/neoforge/tags/blocks/needs_wood_tool.json 5 | -------------------------------------------------------------------------------- /src/generated/resources/assets/advancedperipherals/models/block/block_reader.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/cube_all", 3 | "textures": { 4 | "down": "advancedperipherals:block/bottom", 5 | "east": "advancedperipherals:block/block_reader_east", 6 | "north": "advancedperipherals:block/block_reader_north", 7 | "particle": "advancedperipherals:block/block_reader_north", 8 | "south": "advancedperipherals:block/block_reader_south", 9 | "up": "advancedperipherals:block/block_reader_up", 10 | "west": "advancedperipherals:block/block_reader_west" 11 | } 12 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/advancedperipherals/models/block/chat_box.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/cube_all", 3 | "textures": { 4 | "all": "advancedperipherals:block/chat_box", 5 | "down": "advancedperipherals:block/bottom", 6 | "north": "advancedperipherals:block/chat_box_front", 7 | "particle": "advancedperipherals:block/chat_box_front", 8 | "up": "advancedperipherals:block/chat_box_top" 9 | } 10 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/advancedperipherals/models/block/colony_integrator.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/cube_all", 3 | "textures": { 4 | "all": "advancedperipherals:block/colony_integrator", 5 | "down": "advancedperipherals:block/bottom", 6 | "north": "advancedperipherals:block/colony_integrator_front", 7 | "particle": "advancedperipherals:block/colony_integrator_front", 8 | "up": "advancedperipherals:block/colony_integrator_top" 9 | } 10 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/advancedperipherals/models/block/energy_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/cube_all", 3 | "textures": { 4 | "all": "advancedperipherals:block/energy_detector", 5 | "down": "advancedperipherals:block/bottom", 6 | "east": "advancedperipherals:block/energy_detector_east", 7 | "north": "advancedperipherals:block/energy_detector_front", 8 | "particle": "advancedperipherals:block/energy_detector_front", 9 | "south": "advancedperipherals:block/energy_detector_back", 10 | "up": "advancedperipherals:block/energy_detector_top" 11 | } 12 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/advancedperipherals/models/block/environment_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/cube_all", 3 | "textures": { 4 | "all": "advancedperipherals:block/environment_detector", 5 | "down": "advancedperipherals:block/bottom", 6 | "north": "advancedperipherals:block/environment_detector_front", 7 | "particle": "advancedperipherals:block/environment_detector_front", 8 | "up": "advancedperipherals:block/environment_detector_top" 9 | } 10 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/advancedperipherals/models/block/geo_scanner.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/cube_all", 3 | "textures": { 4 | "all": "advancedperipherals:block/geo_scanner", 5 | "down": "advancedperipherals:block/bottom", 6 | "north": "advancedperipherals:block/geo_scanner_front", 7 | "particle": "advancedperipherals:block/geo_scanner_front", 8 | "up": "advancedperipherals:block/geo_scanner_top" 9 | } 10 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/advancedperipherals/models/block/inventory_manager.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/cube_all", 3 | "textures": { 4 | "all": "advancedperipherals:block/inventory_manager", 5 | "down": "advancedperipherals:block/bottom", 6 | "north": "advancedperipherals:block/inventory_manager_front", 7 | "particle": "advancedperipherals:block/inventory_manager_front", 8 | "up": "advancedperipherals:block/inventory_manager_top" 9 | } 10 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/advancedperipherals/models/block/me_bridge.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/cube_all", 3 | "textures": { 4 | "all": "advancedperipherals:block/me_bridge", 5 | "down": "advancedperipherals:block/bottom", 6 | "north": "advancedperipherals:block/me_bridge_front", 7 | "particle": "advancedperipherals:block/me_bridge_front", 8 | "up": "advancedperipherals:block/me_bridge_top" 9 | } 10 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/advancedperipherals/models/block/nbt_storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/cube_all", 3 | "textures": { 4 | "all": "advancedperipherals:block/nbt_storage", 5 | "down": "advancedperipherals:block/bottom", 6 | "north": "advancedperipherals:block/nbt_storage_front", 7 | "particle": "advancedperipherals:block/nbt_storage_front", 8 | "up": "advancedperipherals:block/nbt_storage_top" 9 | } 10 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/advancedperipherals/models/block/peripheral_casing.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/cube_all", 3 | "textures": { 4 | "all": "advancedperipherals:block/peripheral_casing", 5 | "down": "advancedperipherals:block/bottom", 6 | "particle": "advancedperipherals:block/peripheral_casing" 7 | } 8 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/advancedperipherals/models/block/player_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/cube_all", 3 | "textures": { 4 | "down": "advancedperipherals:block/bottom", 5 | "east": "advancedperipherals:block/player_detector_side", 6 | "north": "advancedperipherals:block/player_detector_front", 7 | "particle": "advancedperipherals:block/player_detector_front", 8 | "side": "advancedperipherals:block/player_detector_side", 9 | "south": "advancedperipherals:block/player_detector_side", 10 | "up": "advancedperipherals:block/player_detector_top", 11 | "west": "advancedperipherals:block/player_detector_side" 12 | } 13 | } -------------------------------------------------------------------------------- /src/generated/resources/assets/advancedperipherals/models/block/rs_bridge.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/cube_all", 3 | "textures": { 4 | "all": "advancedperipherals:block/rs_bridge", 5 | "down": "advancedperipherals:block/bottom", 6 | "north": "advancedperipherals:block/rs_bridge_front", 7 | "particle": "advancedperipherals:block/rs_bridge_front", 8 | "up": "advancedperipherals:block/rs_bridge_top" 9 | } 10 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/block_reader.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_item": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": "advancedperipherals:peripheral_casing" 9 | } 10 | ] 11 | }, 12 | "trigger": "minecraft:inventory_changed" 13 | }, 14 | "has_the_recipe": { 15 | "conditions": { 16 | "recipe": "advancedperipherals:block_reader" 17 | }, 18 | "trigger": "minecraft:recipe_unlocked" 19 | } 20 | }, 21 | "requirements": [ 22 | [ 23 | "has_the_recipe", 24 | "has_item" 25 | ] 26 | ], 27 | "rewards": { 28 | "recipes": [ 29 | "advancedperipherals:block_reader" 30 | ] 31 | } 32 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/chat_box.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_item": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": "advancedperipherals:peripheral_casing" 9 | } 10 | ] 11 | }, 12 | "trigger": "minecraft:inventory_changed" 13 | }, 14 | "has_the_recipe": { 15 | "conditions": { 16 | "recipe": "advancedperipherals:chat_box" 17 | }, 18 | "trigger": "minecraft:recipe_unlocked" 19 | } 20 | }, 21 | "requirements": [ 22 | [ 23 | "has_the_recipe", 24 | "has_item" 25 | ] 26 | ], 27 | "rewards": { 28 | "recipes": [ 29 | "advancedperipherals:chat_box" 30 | ] 31 | } 32 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/chunk_controller.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_item": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": "minecraft:respawn_anchor" 9 | } 10 | ] 11 | }, 12 | "trigger": "minecraft:inventory_changed" 13 | }, 14 | "has_the_recipe": { 15 | "conditions": { 16 | "recipe": "advancedperipherals:chunk_controller" 17 | }, 18 | "trigger": "minecraft:recipe_unlocked" 19 | } 20 | }, 21 | "requirements": [ 22 | [ 23 | "has_the_recipe", 24 | "has_item" 25 | ] 26 | ], 27 | "rewards": { 28 | "recipes": [ 29 | "advancedperipherals:chunk_controller" 30 | ] 31 | } 32 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/colony_integrator.json: -------------------------------------------------------------------------------- 1 | { 2 | "neoforge:conditions": [ 3 | { 4 | "type": "neoforge:mod_loaded", 5 | "modid": "minecolonies" 6 | } 7 | ], 8 | "parent": "minecraft:recipes/root", 9 | "criteria": { 10 | "has_item": { 11 | "conditions": { 12 | "items": [ 13 | { 14 | "items": "advancedperipherals:peripheral_casing" 15 | } 16 | ] 17 | }, 18 | "trigger": "minecraft:inventory_changed" 19 | }, 20 | "has_the_recipe": { 21 | "conditions": { 22 | "recipe": "advancedperipherals:colony_integrator" 23 | }, 24 | "trigger": "minecraft:recipe_unlocked" 25 | } 26 | }, 27 | "requirements": [ 28 | [ 29 | "has_the_recipe", 30 | "has_item" 31 | ] 32 | ], 33 | "rewards": { 34 | "recipes": [ 35 | "advancedperipherals:colony_integrator" 36 | ] 37 | } 38 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/computer_tool.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_item": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": "minecraft:blue_terracotta" 9 | } 10 | ] 11 | }, 12 | "trigger": "minecraft:inventory_changed" 13 | }, 14 | "has_the_recipe": { 15 | "conditions": { 16 | "recipe": "advancedperipherals:computer_tool" 17 | }, 18 | "trigger": "minecraft:recipe_unlocked" 19 | } 20 | }, 21 | "requirements": [ 22 | [ 23 | "has_the_recipe", 24 | "has_item" 25 | ] 26 | ], 27 | "rewards": { 28 | "recipes": [ 29 | "advancedperipherals:computer_tool" 30 | ] 31 | } 32 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/energy_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_item": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": "advancedperipherals:peripheral_casing" 9 | } 10 | ] 11 | }, 12 | "trigger": "minecraft:inventory_changed" 13 | }, 14 | "has_the_recipe": { 15 | "conditions": { 16 | "recipe": "advancedperipherals:energy_detector" 17 | }, 18 | "trigger": "minecraft:recipe_unlocked" 19 | } 20 | }, 21 | "requirements": [ 22 | [ 23 | "has_the_recipe", 24 | "has_item" 25 | ] 26 | ], 27 | "rewards": { 28 | "recipes": [ 29 | "advancedperipherals:energy_detector" 30 | ] 31 | } 32 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/environment_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_item": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": "advancedperipherals:peripheral_casing" 9 | } 10 | ] 11 | }, 12 | "trigger": "minecraft:inventory_changed" 13 | }, 14 | "has_the_recipe": { 15 | "conditions": { 16 | "recipe": "advancedperipherals:environment_detector" 17 | }, 18 | "trigger": "minecraft:recipe_unlocked" 19 | } 20 | }, 21 | "requirements": [ 22 | [ 23 | "has_the_recipe", 24 | "has_item" 25 | ] 26 | ], 27 | "rewards": { 28 | "recipes": [ 29 | "advancedperipherals:environment_detector" 30 | ] 31 | } 32 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/geo_scanner.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_item": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": "advancedperipherals:peripheral_casing" 9 | } 10 | ] 11 | }, 12 | "trigger": "minecraft:inventory_changed" 13 | }, 14 | "has_the_recipe": { 15 | "conditions": { 16 | "recipe": "advancedperipherals:geo_scanner" 17 | }, 18 | "trigger": "minecraft:recipe_unlocked" 19 | } 20 | }, 21 | "requirements": [ 22 | [ 23 | "has_the_recipe", 24 | "has_item" 25 | ] 26 | ], 27 | "rewards": { 28 | "recipes": [ 29 | "advancedperipherals:geo_scanner" 30 | ] 31 | } 32 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/inventory_manager.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_item": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": "advancedperipherals:peripheral_casing" 9 | } 10 | ] 11 | }, 12 | "trigger": "minecraft:inventory_changed" 13 | }, 14 | "has_the_recipe": { 15 | "conditions": { 16 | "recipe": "advancedperipherals:inventory_manager" 17 | }, 18 | "trigger": "minecraft:recipe_unlocked" 19 | } 20 | }, 21 | "requirements": [ 22 | [ 23 | "has_the_recipe", 24 | "has_item" 25 | ] 26 | ], 27 | "rewards": { 28 | "recipes": [ 29 | "advancedperipherals:inventory_manager" 30 | ] 31 | } 32 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/me_bridge.json: -------------------------------------------------------------------------------- 1 | { 2 | "neoforge:conditions": [ 3 | { 4 | "type": "neoforge:mod_loaded", 5 | "modid": "ae2" 6 | } 7 | ], 8 | "parent": "minecraft:recipes/root", 9 | "criteria": { 10 | "has_item": { 11 | "conditions": { 12 | "items": [ 13 | { 14 | "items": "advancedperipherals:peripheral_casing" 15 | } 16 | ] 17 | }, 18 | "trigger": "minecraft:inventory_changed" 19 | }, 20 | "has_the_recipe": { 21 | "conditions": { 22 | "recipe": "advancedperipherals:me_bridge" 23 | }, 24 | "trigger": "minecraft:recipe_unlocked" 25 | } 26 | }, 27 | "requirements": [ 28 | [ 29 | "has_the_recipe", 30 | "has_item" 31 | ] 32 | ], 33 | "rewards": { 34 | "recipes": [ 35 | "advancedperipherals:me_bridge" 36 | ] 37 | } 38 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/memory_card.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_item": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": "minecraft:observer" 9 | } 10 | ] 11 | }, 12 | "trigger": "minecraft:inventory_changed" 13 | }, 14 | "has_the_recipe": { 15 | "conditions": { 16 | "recipe": "advancedperipherals:memory_card" 17 | }, 18 | "trigger": "minecraft:recipe_unlocked" 19 | } 20 | }, 21 | "requirements": [ 22 | [ 23 | "has_the_recipe", 24 | "has_item" 25 | ] 26 | ], 27 | "rewards": { 28 | "recipes": [ 29 | "advancedperipherals:memory_card" 30 | ] 31 | } 32 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/nbt_storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_item": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": "advancedperipherals:peripheral_casing" 9 | } 10 | ] 11 | }, 12 | "trigger": "minecraft:inventory_changed" 13 | }, 14 | "has_the_recipe": { 15 | "conditions": { 16 | "recipe": "advancedperipherals:nbt_storage" 17 | }, 18 | "trigger": "minecraft:recipe_unlocked" 19 | } 20 | }, 21 | "requirements": [ 22 | [ 23 | "has_the_recipe", 24 | "has_item" 25 | ] 26 | ], 27 | "rewards": { 28 | "recipes": [ 29 | "advancedperipherals:nbt_storage" 30 | ] 31 | } 32 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/overpowered_end_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_item": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": "advancedperipherals:end_automata_core" 9 | } 10 | ] 11 | }, 12 | "trigger": "minecraft:inventory_changed" 13 | }, 14 | "has_the_recipe": { 15 | "conditions": { 16 | "recipe": "advancedperipherals:overpowered_end_automata_core" 17 | }, 18 | "trigger": "minecraft:recipe_unlocked" 19 | } 20 | }, 21 | "requirements": [ 22 | [ 23 | "has_the_recipe", 24 | "has_item" 25 | ] 26 | ], 27 | "rewards": { 28 | "recipes": [ 29 | "advancedperipherals:overpowered_end_automata_core" 30 | ] 31 | } 32 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/overpowered_husbandry_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_item": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": "advancedperipherals:husbandry_automata_core" 9 | } 10 | ] 11 | }, 12 | "trigger": "minecraft:inventory_changed" 13 | }, 14 | "has_the_recipe": { 15 | "conditions": { 16 | "recipe": "advancedperipherals:overpowered_husbandry_automata_core" 17 | }, 18 | "trigger": "minecraft:recipe_unlocked" 19 | } 20 | }, 21 | "requirements": [ 22 | [ 23 | "has_the_recipe", 24 | "has_item" 25 | ] 26 | ], 27 | "rewards": { 28 | "recipes": [ 29 | "advancedperipherals:overpowered_husbandry_automata_core" 30 | ] 31 | } 32 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/overpowered_weak_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_item": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": "advancedperipherals:weak_automata_core" 9 | } 10 | ] 11 | }, 12 | "trigger": "minecraft:inventory_changed" 13 | }, 14 | "has_the_recipe": { 15 | "conditions": { 16 | "recipe": "advancedperipherals:overpowered_weak_automata_core" 17 | }, 18 | "trigger": "minecraft:recipe_unlocked" 19 | } 20 | }, 21 | "requirements": [ 22 | [ 23 | "has_the_recipe", 24 | "has_item" 25 | ] 26 | ], 27 | "rewards": { 28 | "recipes": [ 29 | "advancedperipherals:overpowered_weak_automata_core" 30 | ] 31 | } 32 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/peripheral_casing.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_item": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": "minecraft:redstone_block" 9 | } 10 | ] 11 | }, 12 | "trigger": "minecraft:inventory_changed" 13 | }, 14 | "has_the_recipe": { 15 | "conditions": { 16 | "recipe": "advancedperipherals:peripheral_casing" 17 | }, 18 | "trigger": "minecraft:recipe_unlocked" 19 | } 20 | }, 21 | "requirements": [ 22 | [ 23 | "has_the_recipe", 24 | "has_item" 25 | ] 26 | ], 27 | "rewards": { 28 | "recipes": [ 29 | "advancedperipherals:peripheral_casing" 30 | ] 31 | } 32 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/player_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_item": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": "advancedperipherals:peripheral_casing" 9 | } 10 | ] 11 | }, 12 | "trigger": "minecraft:inventory_changed" 13 | }, 14 | "has_the_recipe": { 15 | "conditions": { 16 | "recipe": "advancedperipherals:player_detector" 17 | }, 18 | "trigger": "minecraft:recipe_unlocked" 19 | } 20 | }, 21 | "requirements": [ 22 | [ 23 | "has_the_recipe", 24 | "has_item" 25 | ] 26 | ], 27 | "rewards": { 28 | "recipes": [ 29 | "advancedperipherals:player_detector" 30 | ] 31 | } 32 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/rs_bridge.json: -------------------------------------------------------------------------------- 1 | { 2 | "neoforge:conditions": [ 3 | { 4 | "type": "neoforge:mod_loaded", 5 | "modid": "refinedstorage" 6 | } 7 | ], 8 | "parent": "minecraft:recipes/root", 9 | "criteria": { 10 | "has_item": { 11 | "conditions": { 12 | "items": [ 13 | { 14 | "items": "advancedperipherals:peripheral_casing" 15 | } 16 | ] 17 | }, 18 | "trigger": "minecraft:inventory_changed" 19 | }, 20 | "has_the_recipe": { 21 | "conditions": { 22 | "recipe": "advancedperipherals:rs_bridge" 23 | }, 24 | "trigger": "minecraft:recipe_unlocked" 25 | } 26 | }, 27 | "requirements": [ 28 | [ 29 | "has_the_recipe", 30 | "has_item" 31 | ] 32 | ], 33 | "rewards": { 34 | "recipes": [ 35 | "advancedperipherals:rs_bridge" 36 | ] 37 | } 38 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/advancement/recipes/redstone/weak_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_item": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": "advancedperipherals:peripheral_casing" 9 | } 10 | ] 11 | }, 12 | "trigger": "minecraft:inventory_changed" 13 | }, 14 | "has_the_recipe": { 15 | "conditions": { 16 | "recipe": "advancedperipherals:weak_automata_core" 17 | }, 18 | "trigger": "minecraft:recipe_unlocked" 19 | } 20 | }, 21 | "requirements": [ 22 | [ 23 | "has_the_recipe", 24 | "has_item" 25 | ] 26 | ], 27 | "rewards": { 28 | "recipes": [ 29 | "advancedperipherals:weak_automata_core" 30 | ] 31 | } 32 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/pocket_upgrade/chatty_pocket.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:chatty_pocket", 3 | "item": "advancedperipherals:chat_box" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/pocket_upgrade/colony_pocket.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:colony_pocket", 3 | "item": "advancedperipherals:colony_integrator" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/pocket_upgrade/environment_pocket.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:environment_pocket", 3 | "item": "advancedperipherals:environment_detector" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/pocket_upgrade/geoscanner_pocket.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:geoscanner_pocket", 3 | "item": "advancedperipherals:geo_scanner" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/pocket_upgrade/player_pocket.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:player_pocket", 3 | "item": "advancedperipherals:player_detector" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/turtle_upgrade/chatty_turtle.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:chatty_turtle", 3 | "item": "advancedperipherals:chat_box" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/turtle_upgrade/chunky_turtle.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:chunky_turtle", 3 | "item": "advancedperipherals:chunk_controller" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/turtle_upgrade/compass_turtle.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:compass_turtle", 3 | "item": "minecraft:compass" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/turtle_upgrade/end_automata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:end_automata", 3 | "item": "advancedperipherals:end_automata_core" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/turtle_upgrade/environment_turtle.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:environment_turtle", 3 | "item": "advancedperipherals:environment_detector" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/turtle_upgrade/geoscanner_turtle.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:geoscanner_turtle", 3 | "item": "advancedperipherals:geo_scanner" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/turtle_upgrade/husbandry_automata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:husbandry_automata", 3 | "item": "advancedperipherals:husbandry_automata_core" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/turtle_upgrade/overpowered_end_automata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:overpowered_end_automata", 3 | "item": "advancedperipherals:overpowered_end_automata_core" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/turtle_upgrade/overpowered_husbandry_automata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:overpowered_husbandry_automata", 3 | "item": "advancedperipherals:overpowered_husbandry_automata_core" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/turtle_upgrade/overpowered_weak_automata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:overpowered_weak_automata", 3 | "item": "advancedperipherals:overpowered_weak_automata_core" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/turtle_upgrade/player_turtle.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:player_turtle", 3 | "item": "advancedperipherals:player_detector" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/computercraft/turtle_upgrade/weak_automata.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "advancedperipherals:weak_automata", 3 | "item": "advancedperipherals:weak_automata_core" 4 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/loot_table/blocks/block_reader.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | } 10 | ], 11 | "entries": [ 12 | { 13 | "type": "minecraft:item", 14 | "functions": [ 15 | { 16 | "function": "minecraft:copy_components", 17 | "include": [ 18 | "minecraft:custom_name" 19 | ], 20 | "source": "block_entity" 21 | } 22 | ], 23 | "name": "advancedperipherals:block_reader" 24 | } 25 | ], 26 | "rolls": 1.0 27 | } 28 | ], 29 | "random_sequence": "advancedperipherals:blocks/block_reader" 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/loot_table/blocks/chat_box.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | } 10 | ], 11 | "entries": [ 12 | { 13 | "type": "minecraft:item", 14 | "functions": [ 15 | { 16 | "function": "minecraft:copy_components", 17 | "include": [ 18 | "minecraft:custom_name" 19 | ], 20 | "source": "block_entity" 21 | } 22 | ], 23 | "name": "advancedperipherals:chat_box" 24 | } 25 | ], 26 | "rolls": 1.0 27 | } 28 | ], 29 | "random_sequence": "advancedperipherals:blocks/chat_box" 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/loot_table/blocks/colony_integrator.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | } 10 | ], 11 | "entries": [ 12 | { 13 | "type": "minecraft:item", 14 | "functions": [ 15 | { 16 | "function": "minecraft:copy_components", 17 | "include": [ 18 | "minecraft:custom_name" 19 | ], 20 | "source": "block_entity" 21 | } 22 | ], 23 | "name": "advancedperipherals:colony_integrator" 24 | } 25 | ], 26 | "rolls": 1.0 27 | } 28 | ], 29 | "random_sequence": "advancedperipherals:blocks/colony_integrator" 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/loot_table/blocks/energy_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | } 10 | ], 11 | "entries": [ 12 | { 13 | "type": "minecraft:item", 14 | "functions": [ 15 | { 16 | "function": "minecraft:copy_components", 17 | "include": [ 18 | "minecraft:custom_name" 19 | ], 20 | "source": "block_entity" 21 | } 22 | ], 23 | "name": "advancedperipherals:energy_detector" 24 | } 25 | ], 26 | "rolls": 1.0 27 | } 28 | ], 29 | "random_sequence": "advancedperipherals:blocks/energy_detector" 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/loot_table/blocks/environment_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | } 10 | ], 11 | "entries": [ 12 | { 13 | "type": "minecraft:item", 14 | "functions": [ 15 | { 16 | "function": "minecraft:copy_components", 17 | "include": [ 18 | "minecraft:custom_name" 19 | ], 20 | "source": "block_entity" 21 | } 22 | ], 23 | "name": "advancedperipherals:environment_detector" 24 | } 25 | ], 26 | "rolls": 1.0 27 | } 28 | ], 29 | "random_sequence": "advancedperipherals:blocks/environment_detector" 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/loot_table/blocks/geo_scanner.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | } 10 | ], 11 | "entries": [ 12 | { 13 | "type": "minecraft:item", 14 | "functions": [ 15 | { 16 | "function": "minecraft:copy_components", 17 | "include": [ 18 | "minecraft:custom_name" 19 | ], 20 | "source": "block_entity" 21 | } 22 | ], 23 | "name": "advancedperipherals:geo_scanner" 24 | } 25 | ], 26 | "rolls": 1.0 27 | } 28 | ], 29 | "random_sequence": "advancedperipherals:blocks/geo_scanner" 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/loot_table/blocks/inventory_manager.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | } 10 | ], 11 | "entries": [ 12 | { 13 | "type": "minecraft:item", 14 | "functions": [ 15 | { 16 | "function": "minecraft:copy_components", 17 | "include": [ 18 | "minecraft:custom_name" 19 | ], 20 | "source": "block_entity" 21 | } 22 | ], 23 | "name": "advancedperipherals:inventory_manager" 24 | } 25 | ], 26 | "rolls": 1.0 27 | } 28 | ], 29 | "random_sequence": "advancedperipherals:blocks/inventory_manager" 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/loot_table/blocks/me_bridge.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | } 10 | ], 11 | "entries": [ 12 | { 13 | "type": "minecraft:item", 14 | "functions": [ 15 | { 16 | "function": "minecraft:copy_components", 17 | "include": [ 18 | "minecraft:custom_name" 19 | ], 20 | "source": "block_entity" 21 | } 22 | ], 23 | "name": "advancedperipherals:me_bridge" 24 | } 25 | ], 26 | "rolls": 1.0 27 | } 28 | ], 29 | "random_sequence": "advancedperipherals:blocks/me_bridge" 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/loot_table/blocks/nbt_storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | } 10 | ], 11 | "entries": [ 12 | { 13 | "type": "minecraft:item", 14 | "functions": [ 15 | { 16 | "function": "minecraft:copy_components", 17 | "include": [ 18 | "minecraft:custom_name" 19 | ], 20 | "source": "block_entity" 21 | } 22 | ], 23 | "name": "advancedperipherals:nbt_storage" 24 | } 25 | ], 26 | "rolls": 1.0 27 | } 28 | ], 29 | "random_sequence": "advancedperipherals:blocks/nbt_storage" 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/loot_table/blocks/peripheral_casing.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | } 10 | ], 11 | "entries": [ 12 | { 13 | "type": "minecraft:item", 14 | "functions": [ 15 | { 16 | "function": "minecraft:copy_components", 17 | "include": [ 18 | "minecraft:custom_name" 19 | ], 20 | "source": "block_entity" 21 | } 22 | ], 23 | "name": "advancedperipherals:peripheral_casing" 24 | } 25 | ], 26 | "rolls": 1.0 27 | } 28 | ], 29 | "random_sequence": "advancedperipherals:blocks/peripheral_casing" 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/loot_table/blocks/player_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | } 10 | ], 11 | "entries": [ 12 | { 13 | "type": "minecraft:item", 14 | "functions": [ 15 | { 16 | "function": "minecraft:copy_components", 17 | "include": [ 18 | "minecraft:custom_name" 19 | ], 20 | "source": "block_entity" 21 | } 22 | ], 23 | "name": "advancedperipherals:player_detector" 24 | } 25 | ], 26 | "rolls": 1.0 27 | } 28 | ], 29 | "random_sequence": "advancedperipherals:blocks/player_detector" 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/loot_table/blocks/rs_bridge.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | } 10 | ], 11 | "entries": [ 12 | { 13 | "type": "minecraft:item", 14 | "functions": [ 15 | { 16 | "function": "minecraft:copy_components", 17 | "include": [ 18 | "minecraft:custom_name" 19 | ], 20 | "source": "block_entity" 21 | } 22 | ], 23 | "name": "advancedperipherals:rs_bridge" 24 | } 25 | ], 26 | "rolls": 1.0 27 | } 28 | ], 29 | "random_sequence": "advancedperipherals:blocks/rs_bridge" 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/block_reader.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "redstone", 4 | "key": { 5 | "A": { 6 | "item": "advancedperipherals:peripheral_casing" 7 | }, 8 | "I": { 9 | "tag": "c:ingots/iron" 10 | }, 11 | "M": { 12 | "item": "computercraft:wired_modem_full" 13 | }, 14 | "O": { 15 | "item": "minecraft:observer" 16 | }, 17 | "R": { 18 | "tag": "c:storage_blocks/redstone" 19 | } 20 | }, 21 | "pattern": [ 22 | "IRI", 23 | "MAO", 24 | "IRI" 25 | ], 26 | "result": { 27 | "count": 1, 28 | "id": "advancedperipherals:block_reader" 29 | } 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/chat_box.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "redstone", 4 | "key": { 5 | "A": { 6 | "item": "advancedperipherals:peripheral_casing" 7 | }, 8 | "G": { 9 | "tag": "c:ingots/gold" 10 | }, 11 | "P": { 12 | "tag": "minecraft:logs" 13 | } 14 | }, 15 | "pattern": [ 16 | "PPP", 17 | "PAP", 18 | "PGP" 19 | ], 20 | "result": { 21 | "count": 1, 22 | "id": "advancedperipherals:chat_box" 23 | } 24 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/chunk_controller.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "redstone", 4 | "key": { 5 | "A": { 6 | "item": "minecraft:ender_eye" 7 | }, 8 | "I": { 9 | "tag": "c:ingots/iron" 10 | }, 11 | "R": { 12 | "tag": "c:dusts/redstone" 13 | } 14 | }, 15 | "pattern": [ 16 | "IRI", 17 | "RAR", 18 | "IRI" 19 | ], 20 | "result": { 21 | "count": 1, 22 | "id": "advancedperipherals:chunk_controller" 23 | } 24 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/colony_integrator.json: -------------------------------------------------------------------------------- 1 | { 2 | "neoforge:conditions": [ 3 | { 4 | "type": "neoforge:mod_loaded", 5 | "modid": "minecolonies" 6 | } 7 | ], 8 | "type": "minecraft:crafting_shaped", 9 | "category": "redstone", 10 | "key": { 11 | "A": { 12 | "item": "advancedperipherals:peripheral_casing" 13 | }, 14 | "B": { 15 | "item": "minecolonies:build_goggles" 16 | }, 17 | "O": { 18 | "tag": "minecraft:logs" 19 | }, 20 | "R": { 21 | "item": "minecolonies:blockminecoloniesrack" 22 | }, 23 | "S": { 24 | "item": "structurize:sceptergold" 25 | } 26 | }, 27 | "pattern": [ 28 | "ORO", 29 | "BAS", 30 | "ORO" 31 | ], 32 | "result": { 33 | "count": 1, 34 | "id": "advancedperipherals:colony_integrator" 35 | } 36 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/computer_tool.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "redstone", 4 | "key": { 5 | "B": { 6 | "item": "minecraft:blue_terracotta" 7 | }, 8 | "I": { 9 | "tag": "c:ingots/iron" 10 | } 11 | }, 12 | "pattern": [ 13 | "I I", 14 | "IBI", 15 | " B " 16 | ], 17 | "result": { 18 | "count": 1, 19 | "id": "advancedperipherals:computer_tool" 20 | } 21 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/energy_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "redstone", 4 | "key": { 5 | "A": { 6 | "item": "advancedperipherals:peripheral_casing" 7 | }, 8 | "B": { 9 | "tag": "c:storage_blocks/redstone" 10 | }, 11 | "C": { 12 | "item": "minecraft:comparator" 13 | }, 14 | "G": { 15 | "tag": "c:ingots/gold" 16 | }, 17 | "R": { 18 | "item": "minecraft:redstone_torch" 19 | } 20 | }, 21 | "pattern": [ 22 | "BRB", 23 | "CAC", 24 | "BGB" 25 | ], 26 | "result": { 27 | "count": 1, 28 | "id": "advancedperipherals:energy_detector" 29 | } 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/environment_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "redstone", 4 | "key": { 5 | "A": { 6 | "item": "advancedperipherals:peripheral_casing" 7 | }, 8 | "C": { 9 | "tag": "c:crops" 10 | }, 11 | "L": { 12 | "tag": "minecraft:leaves" 13 | }, 14 | "S": { 15 | "tag": "minecraft:saplings" 16 | }, 17 | "W": { 18 | "tag": "minecraft:wool" 19 | } 20 | }, 21 | "pattern": [ 22 | "WSW", 23 | "LAL", 24 | "WCW" 25 | ], 26 | "result": { 27 | "count": 1, 28 | "id": "advancedperipherals:environment_detector" 29 | } 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/geo_scanner.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "redstone", 4 | "key": { 5 | "C": { 6 | "item": "advancedperipherals:peripheral_casing" 7 | }, 8 | "D": { 9 | "tag": "c:gems/diamond" 10 | }, 11 | "M": { 12 | "item": "computercraft:wired_modem_full" 13 | }, 14 | "O": { 15 | "item": "minecraft:observer" 16 | }, 17 | "R": { 18 | "tag": "c:storage_blocks/redstone" 19 | } 20 | }, 21 | "pattern": [ 22 | "DMD", 23 | "DCD", 24 | "ROR" 25 | ], 26 | "result": { 27 | "count": 1, 28 | "id": "advancedperipherals:geo_scanner" 29 | } 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/inventory_manager.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "redstone", 4 | "key": { 5 | "A": { 6 | "item": "advancedperipherals:peripheral_casing" 7 | }, 8 | "C": { 9 | "tag": "c:chests" 10 | }, 11 | "I": { 12 | "tag": "c:ingots/iron" 13 | } 14 | }, 15 | "pattern": [ 16 | "ICI", 17 | "CAC", 18 | "ICI" 19 | ], 20 | "result": { 21 | "count": 1, 22 | "id": "advancedperipherals:inventory_manager" 23 | } 24 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/me_bridge.json: -------------------------------------------------------------------------------- 1 | { 2 | "neoforge:conditions": [ 3 | { 4 | "type": "neoforge:mod_loaded", 5 | "modid": "ae2" 6 | } 7 | ], 8 | "type": "minecraft:crafting_shaped", 9 | "category": "redstone", 10 | "key": { 11 | "A": { 12 | "item": "advancedperipherals:peripheral_casing" 13 | }, 14 | "F": { 15 | "item": "ae2:fluix_block" 16 | }, 17 | "I": { 18 | "item": "ae2:interface" 19 | } 20 | }, 21 | "pattern": [ 22 | "FIF", 23 | "IAI", 24 | "FIF" 25 | ], 26 | "result": { 27 | "count": 1, 28 | "id": "advancedperipherals:me_bridge" 29 | } 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/memory_card.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "redstone", 4 | "key": { 5 | "G": { 6 | "tag": "c:ingots/gold" 7 | }, 8 | "I": { 9 | "tag": "c:ingots/iron" 10 | }, 11 | "O": { 12 | "item": "minecraft:observer" 13 | }, 14 | "W": { 15 | "tag": "c:glass_blocks/cheap" 16 | } 17 | }, 18 | "pattern": [ 19 | "IWI", 20 | "IOI", 21 | " G " 22 | ], 23 | "result": { 24 | "count": 1, 25 | "id": "advancedperipherals:memory_card" 26 | } 27 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/nbt_storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "redstone", 4 | "key": { 5 | "A": { 6 | "item": "advancedperipherals:peripheral_casing" 7 | }, 8 | "C": { 9 | "tag": "c:chests" 10 | }, 11 | "I": { 12 | "tag": "c:ingots/iron" 13 | }, 14 | "R": { 15 | "tag": "c:storage_blocks/redstone" 16 | } 17 | }, 18 | "pattern": [ 19 | "ICI", 20 | "CAC", 21 | "RCR" 22 | ], 23 | "result": { 24 | "count": 1, 25 | "id": "advancedperipherals:nbt_storage" 26 | } 27 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/overpowered_end_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shapeless", 3 | "category": "redstone", 4 | "ingredients": [ 5 | { 6 | "item": "advancedperipherals:end_automata_core" 7 | }, 8 | { 9 | "item": "minecraft:nether_star" 10 | } 11 | ], 12 | "result": { 13 | "count": 1, 14 | "id": "advancedperipherals:overpowered_end_automata_core" 15 | } 16 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/overpowered_husbandry_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shapeless", 3 | "category": "redstone", 4 | "ingredients": [ 5 | { 6 | "item": "advancedperipherals:husbandry_automata_core" 7 | }, 8 | { 9 | "item": "minecraft:nether_star" 10 | } 11 | ], 12 | "result": { 13 | "count": 1, 14 | "id": "advancedperipherals:overpowered_husbandry_automata_core" 15 | } 16 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/overpowered_weak_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shapeless", 3 | "category": "redstone", 4 | "ingredients": [ 5 | { 6 | "item": "advancedperipherals:weak_automata_core" 7 | }, 8 | { 9 | "item": "minecraft:nether_star" 10 | } 11 | ], 12 | "result": { 13 | "count": 1, 14 | "id": "advancedperipherals:overpowered_weak_automata_core" 15 | } 16 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/peripheral_casing.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "redstone", 4 | "key": { 5 | "I": { 6 | "tag": "c:ingots/iron" 7 | }, 8 | "R": { 9 | "tag": "c:storage_blocks/redstone" 10 | }, 11 | "i": { 12 | "item": "minecraft:iron_bars" 13 | } 14 | }, 15 | "pattern": [ 16 | "IiI", 17 | "iRi", 18 | "IiI" 19 | ], 20 | "result": { 21 | "count": 1, 22 | "id": "advancedperipherals:peripheral_casing" 23 | } 24 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/player_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "redstone", 4 | "key": { 5 | "A": { 6 | "item": "advancedperipherals:peripheral_casing" 7 | }, 8 | "R": { 9 | "tag": "c:storage_blocks/redstone" 10 | }, 11 | "S": { 12 | "item": "minecraft:smooth_stone" 13 | } 14 | }, 15 | "pattern": [ 16 | "SSS", 17 | "SAS", 18 | "SRS" 19 | ], 20 | "result": { 21 | "count": 1, 22 | "id": "advancedperipherals:player_detector" 23 | } 24 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/rs_bridge.json: -------------------------------------------------------------------------------- 1 | { 2 | "neoforge:conditions": [ 3 | { 4 | "type": "neoforge:mod_loaded", 5 | "modid": "refinedstorage" 6 | } 7 | ], 8 | "type": "minecraft:crafting_shaped", 9 | "category": "redstone", 10 | "key": { 11 | "C": { 12 | "item": "advancedperipherals:peripheral_casing" 13 | }, 14 | "E": { 15 | "tag": "refinedstorage:exporters" 16 | }, 17 | "I": { 18 | "item": "refinedstorage:interface" 19 | }, 20 | "P": { 21 | "item": "refinedstorage:advanced_processor" 22 | }, 23 | "R": { 24 | "tag": "refinedstorage:importers" 25 | }, 26 | "X": { 27 | "tag": "refinedstorage:external_storages" 28 | } 29 | }, 30 | "pattern": [ 31 | "PXP", 32 | "ECR", 33 | "PIP" 34 | ], 35 | "result": { 36 | "count": 1, 37 | "id": "advancedperipherals:rs_bridge" 38 | } 39 | } -------------------------------------------------------------------------------- /src/generated/resources/data/advancedperipherals/recipe/weak_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "redstone", 4 | "key": { 5 | "A": { 6 | "item": "advancedperipherals:peripheral_casing" 7 | }, 8 | "D": { 9 | "tag": "c:gems/diamond" 10 | }, 11 | "L": { 12 | "item": "minecraft:potion" 13 | }, 14 | "R": { 15 | "tag": "c:storage_blocks/redstone" 16 | }, 17 | "S": { 18 | "item": "minecraft:soul_lantern" 19 | } 20 | }, 21 | "pattern": [ 22 | "RAR", 23 | "DSD", 24 | "RLR" 25 | ], 26 | "result": { 27 | "count": 1, 28 | "id": "advancedperipherals:weak_automata_core" 29 | } 30 | } -------------------------------------------------------------------------------- /src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "advancedperipherals:environment_detector", 4 | "advancedperipherals:chat_box", 5 | "advancedperipherals:player_detector", 6 | "advancedperipherals:me_bridge", 7 | "advancedperipherals:rs_bridge", 8 | "advancedperipherals:energy_detector", 9 | "advancedperipherals:peripheral_casing", 10 | "advancedperipherals:inventory_manager", 11 | "advancedperipherals:block_reader", 12 | "advancedperipherals:geo_scanner", 13 | "advancedperipherals:nbt_storage", 14 | "advancedperipherals:colony_integrator" 15 | ] 16 | } -------------------------------------------------------------------------------- /src/generated/resources/data/minecraft/tags/blocks/needs_iron_tool.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "advancedperipherals:environment_detector", 4 | "advancedperipherals:chat_box", 5 | "advancedperipherals:player_detector", 6 | "advancedperipherals:me_bridge", 7 | "advancedperipherals:rs_bridge", 8 | "advancedperipherals:energy_detector", 9 | "advancedperipherals:inventory_manager", 10 | "advancedperipherals:block_reader", 11 | "advancedperipherals:geo_scanner", 12 | "advancedperipherals:nbt_storage", 13 | "advancedperipherals:colony_integrator" 14 | ] 15 | } -------------------------------------------------------------------------------- /src/generated/resources/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "advancedperipherals:computer_scientist" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/generated/resources/data/neoforge/tags/blocks/needs_wood_tool.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "advancedperipherals:peripheral_casing" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/client/KeyBindings.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.client; 2 | 3 | import net.minecraft.client.KeyMapping; 4 | import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent; 5 | import org.lwjgl.glfw.GLFW; 6 | 7 | public class KeyBindings { 8 | 9 | public static final KeyMapping DESCRIPTION_KEYBINDING = new KeyMapping("keybind.advancedperipherals.description", GLFW.GLFW_KEY_LEFT_CONTROL, "keybind.advancedperipherals.category"); 10 | 11 | public static void register(RegisterKeyMappingsEvent event) { 12 | event.register(DESCRIPTION_KEYBINDING); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/APAddon.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons; 2 | 3 | import net.neoforged.fml.ModList; 4 | 5 | import java.util.Arrays; 6 | 7 | public enum APAddon { 8 | 9 | AE2("ae2"), 10 | CURIOS("curios"), 11 | REFINEDSTORAGE("refinedstorage"), 12 | REFINEDSTORAGE_MEKANISM("refinedstorage_mekanism_integration"), 13 | MEKANISM("mekanism"), 14 | APP_MEKANISTICS("appmek"), 15 | MINECOLONIES("minecolonies"), 16 | PATCHOULI("patchouli"), 17 | POWAH("powah"); 18 | 19 | private final String modId; 20 | private boolean loaded; 21 | 22 | APAddon(String modId) { 23 | this.modId = modId; 24 | this.loaded = false; // Default to false will be updated by setup() 25 | } 26 | 27 | public String getModId() { 28 | return modId; 29 | } 30 | 31 | public boolean isLoaded() { 32 | return loaded; 33 | } 34 | 35 | public static void setup() { 36 | ModList modList = ModList.get(); 37 | for (APAddon addon : values()) { 38 | addon.loaded = modList.isLoaded(addon.getModId()); 39 | } 40 | } 41 | 42 | public static String[] getAllModIds() { 43 | return Arrays.stream(values()) 44 | .map(APAddon::getModId) 45 | .toArray(String[]::new); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/appliedenergistics/MEBridgeEntityListener.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.appliedenergistics; 2 | 3 | import appeng.api.networking.IGridNode; 4 | import appeng.api.networking.IGridNodeListener; 5 | import de.srendi.advancedperipherals.common.blocks.blockentities.MEBridgeEntity; 6 | 7 | //TODO: Maybe do something special with these methods? 8 | public class MEBridgeEntityListener implements IGridNodeListener { 9 | 10 | public static final MEBridgeEntityListener INSTANCE = new MEBridgeEntityListener(); 11 | 12 | @Override 13 | public void onSaveChanges(MEBridgeEntity nodeOwner, IGridNode node) { 14 | 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/integrations/BeaconIntegration.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.integrations; 2 | 3 | import dan200.computercraft.api.lua.LuaFunction; 4 | import de.srendi.advancedperipherals.lib.peripherals.APGenericPeripheral; 5 | import net.minecraft.world.level.block.entity.BeaconBlockEntity; 6 | 7 | public class BeaconIntegration implements APGenericPeripheral { 8 | @Override 9 | public String getPeripheralType() { 10 | return "beacon"; 11 | } 12 | 13 | @LuaFunction(mainThread = true) 14 | public final int getLevel(BeaconBlockEntity blockEntity) { 15 | return blockEntity.levels; 16 | } 17 | 18 | @LuaFunction(mainThread = true) 19 | public final String getPrimaryEffect(BeaconBlockEntity blockEntity) { 20 | return blockEntity.primaryPower == null ? "none" : blockEntity.primaryPower.getRegisteredName(); 21 | } 22 | 23 | @LuaFunction(mainThread = true) 24 | public final String getSecondaryEffect(BeaconBlockEntity blockEntity) { 25 | return blockEntity.secondaryPower == null ? "none" : blockEntity.secondaryPower.getRegisteredName(); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/operations/SingleOperationContext.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.operations; 2 | 3 | import java.io.Serializable; 4 | 5 | public class SingleOperationContext implements Serializable { 6 | private final int distance; 7 | private int count; 8 | 9 | public SingleOperationContext(int count, int distance) { 10 | this.count = count; 11 | this.distance = distance; 12 | } 13 | 14 | public int getCount() { 15 | return count; 16 | } 17 | 18 | public int getDistance() { 19 | return distance; 20 | } 21 | 22 | public SingleOperationContext extraCount(int extra) { 23 | this.count += extra; 24 | return new SingleOperationContext(extra, distance); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/operations/SphereOperationContext.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.operations; 2 | 3 | import java.io.Serializable; 4 | 5 | public class SphereOperationContext implements Serializable { 6 | private final int radius; 7 | 8 | public SphereOperationContext(int radius) { 9 | this.radius = radius; 10 | } 11 | 12 | public static SphereOperationContext of(int radius) { 13 | return new SphereOperationContext(radius); 14 | } 15 | 16 | public int getRadius() { 17 | return radius; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/owner/BasePeripheralOwner.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.owner; 2 | 3 | import org.jetbrains.annotations.Nullable; 4 | 5 | import java.util.Collection; 6 | import java.util.HashMap; 7 | import java.util.Map; 8 | 9 | public abstract class BasePeripheralOwner implements IPeripheralOwner { 10 | private final Map, IOwnerAbility> abilities; 11 | 12 | public BasePeripheralOwner() { 13 | abilities = new HashMap<>(); 14 | } 15 | 16 | @Override 17 | public void attachAbility(PeripheralOwnerAbility ability, T abilityImplementation) { 18 | abilities.put(ability, abilityImplementation); 19 | } 20 | 21 | @SuppressWarnings("unchecked") 22 | @Override 23 | @Nullable 24 | public T getAbility(PeripheralOwnerAbility ability) { 25 | return (T) abilities.get(ability); 26 | } 27 | 28 | @Override 29 | public Collection getAbilities() { 30 | return abilities.values(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/owner/IOwnerAbility.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.owner; 2 | 3 | import java.util.Map; 4 | 5 | public interface IOwnerAbility { 6 | default void collectConfiguration(Map dict) { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/owner/InfinitePocketFuelAbility.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.owner; 2 | 3 | import org.jetbrains.annotations.NotNull; 4 | 5 | /** 6 | * This is a copy of the FuelAbility class, but with the fuel consumption disabled. 7 | * This is used for the Pocket Computer. 8 | */ 9 | public class InfinitePocketFuelAbility extends FuelAbility { 10 | 11 | public InfinitePocketFuelAbility(@NotNull PocketPeripheralOwner owner) { 12 | super(owner); 13 | } 14 | 15 | @Override 16 | protected boolean consumeFuel(int count) { 17 | return true; 18 | } 19 | 20 | @Override 21 | protected int getMaxFuelConsumptionRate() { 22 | return Integer.MAX_VALUE; 23 | } 24 | 25 | @Override 26 | public boolean isFuelConsumptionDisable() { 27 | return true; 28 | } 29 | 30 | @Override 31 | public int getFuelCount() { 32 | return Integer.MAX_VALUE; 33 | } 34 | 35 | @Override 36 | public int getFuelMaxCount() { 37 | return Integer.MAX_VALUE; 38 | } 39 | 40 | @Override 41 | public void addFuel(int count) { 42 | // Not needed for infinite fuel 43 | } 44 | } 45 | 46 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/owner/PeripheralOwnerAbility.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.owner; 2 | 3 | @SuppressWarnings("InstantiationOfUtilityClass") 4 | public class PeripheralOwnerAbility { 5 | public static final PeripheralOwnerAbility> FUEL = new PeripheralOwnerAbility<>(); 6 | public static final PeripheralOwnerAbility OPERATION = new PeripheralOwnerAbility<>(); 7 | 8 | public PeripheralOwnerAbility() { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/owner/TurtleFuelAbility.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.owner; 2 | 3 | import org.jetbrains.annotations.NotNull; 4 | 5 | public class TurtleFuelAbility extends FuelAbility { 6 | private final int maxFuelConsumptionLevel; 7 | 8 | public TurtleFuelAbility(@NotNull TurtlePeripheralOwner owner, int maxFuelConsumptionLevel) { 9 | super(owner); 10 | this.maxFuelConsumptionLevel = maxFuelConsumptionLevel; 11 | } 12 | 13 | @Override 14 | protected boolean consumeFuel(int count) { 15 | return owner.turtle.consumeFuel(count); 16 | } 17 | 18 | @Override 19 | protected int getMaxFuelConsumptionRate() { 20 | return maxFuelConsumptionLevel; 21 | } 22 | 23 | @Override 24 | public boolean isFuelConsumptionDisable() { 25 | return !owner.getTurtle().isFuelNeeded(); 26 | } 27 | 28 | @Override 29 | public int getFuelCount() { 30 | return owner.turtle.getFuelLevel(); 31 | } 32 | 33 | @Override 34 | public int getFuelMaxCount() { 35 | return owner.turtle.getFuelLimit(); 36 | } 37 | 38 | @Override 39 | public void addFuel(int count) { 40 | owner.turtle.addFuel(count); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/CompassPeripheral.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.peripheral; 2 | 3 | import dan200.computercraft.api.lua.LuaFunction; 4 | import dan200.computercraft.api.turtle.ITurtleAccess; 5 | import dan200.computercraft.api.turtle.TurtleSide; 6 | import de.srendi.advancedperipherals.common.addons.computercraft.owner.TurtlePeripheralOwner; 7 | import de.srendi.advancedperipherals.common.configuration.APConfig; 8 | import de.srendi.advancedperipherals.lib.peripherals.BasePeripheral; 9 | 10 | public class CompassPeripheral extends BasePeripheral { 11 | 12 | public static final String PERIPHERAL_TYPE = "compass"; 13 | 14 | protected CompassPeripheral(TurtlePeripheralOwner owner) { 15 | super(PERIPHERAL_TYPE, owner); 16 | } 17 | 18 | public CompassPeripheral(ITurtleAccess turtle, TurtleSide side) { 19 | this(new TurtlePeripheralOwner(turtle, side)); 20 | } 21 | 22 | @Override 23 | public boolean isEnabled() { 24 | return APConfig.PERIPHERALS_CONFIG.enableCompassTurtle.get(); 25 | } 26 | 27 | @LuaFunction(mainThread = true) 28 | public String getFacing() { 29 | return owner.getFacing().toString(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/metaphysics/EndAutomataCorePeripheral.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.peripheral.metaphysics; 2 | 3 | import dan200.computercraft.api.turtle.ITurtleAccess; 4 | import dan200.computercraft.api.turtle.TurtleSide; 5 | import de.srendi.advancedperipherals.common.addons.computercraft.operations.AutomataCoreTier; 6 | import de.srendi.advancedperipherals.common.addons.computercraft.peripheral.plugins.AutomataWarpingPlugin; 7 | import de.srendi.advancedperipherals.common.configuration.APConfig; 8 | import de.srendi.advancedperipherals.lib.metaphysics.IAutomataCoreTier; 9 | 10 | 11 | public class EndAutomataCorePeripheral extends WeakAutomataCorePeripheral { 12 | 13 | public static final String TYPE = "end_automata"; 14 | 15 | public EndAutomataCorePeripheral(ITurtleAccess turtle, TurtleSide side) { 16 | this(TYPE, turtle, side, AutomataCoreTier.TIER2); 17 | } 18 | 19 | protected EndAutomataCorePeripheral(String type, ITurtleAccess turtle, TurtleSide side, IAutomataCoreTier tier) { 20 | super(type, turtle, side, tier); 21 | addPlugin(new AutomataWarpingPlugin(this)); 22 | } 23 | 24 | @Override 25 | public boolean isEnabled() { 26 | return APConfig.METAPHYSICS_CONFIG.enableEndAutomataCore.get(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/metaphysics/OverpoweredEndAutomataCorePeripheral.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.peripheral.metaphysics; 2 | 3 | import dan200.computercraft.api.turtle.ITurtleAccess; 4 | import dan200.computercraft.api.turtle.TurtleSide; 5 | import de.srendi.advancedperipherals.AdvancedPeripherals; 6 | import de.srendi.advancedperipherals.common.addons.computercraft.operations.AutomataCoreTier; 7 | import de.srendi.advancedperipherals.common.configuration.APConfig; 8 | 9 | public class OverpoweredEndAutomataCorePeripheral extends EndAutomataCorePeripheral { 10 | 11 | public static final String TYPE = "overpowered_end_automata"; 12 | 13 | public OverpoweredEndAutomataCorePeripheral(ITurtleAccess turtle, TurtleSide side) { 14 | super(TYPE, turtle, side, AutomataCoreTier.OVERPOWERED_TIER2); 15 | setAttribute(ATTR_STORING_TOOL_DURABILITY); 16 | } 17 | 18 | public void addRotationCycle(int count) { 19 | super.addRotationCycle(count); 20 | if (AdvancedPeripherals.RANDOM.nextDouble() <= APConfig.METAPHYSICS_CONFIG.overpoweredAutomataBreakChance.get()) 21 | owner.destroyUpgrade(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/metaphysics/OverpoweredHusbandryAutomataCorePeripheral.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.peripheral.metaphysics; 2 | 3 | import dan200.computercraft.api.turtle.ITurtleAccess; 4 | import dan200.computercraft.api.turtle.TurtleSide; 5 | import de.srendi.advancedperipherals.AdvancedPeripherals; 6 | import de.srendi.advancedperipherals.common.addons.computercraft.operations.AutomataCoreTier; 7 | import de.srendi.advancedperipherals.common.configuration.APConfig; 8 | 9 | public class OverpoweredHusbandryAutomataCorePeripheral extends HusbandryAutomataCorePeripheral { 10 | 11 | public static final String TYPE = "overpowered_husbandry_automata"; 12 | 13 | public OverpoweredHusbandryAutomataCorePeripheral(ITurtleAccess turtle, TurtleSide side) { 14 | super(TYPE, turtle, side, AutomataCoreTier.OVERPOWERED_TIER2); 15 | setAttribute(ATTR_STORING_TOOL_DURABILITY); 16 | } 17 | 18 | public void addRotationCycle(int count) { 19 | super.addRotationCycle(count); 20 | if (AdvancedPeripherals.RANDOM.nextDouble() <= APConfig.METAPHYSICS_CONFIG.overpoweredAutomataBreakChance.get()) 21 | owner.destroyUpgrade(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/metaphysics/OverpoweredWeakAutomataCorePeripheral.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.peripheral.metaphysics; 2 | 3 | import dan200.computercraft.api.turtle.ITurtleAccess; 4 | import dan200.computercraft.api.turtle.TurtleSide; 5 | import de.srendi.advancedperipherals.AdvancedPeripherals; 6 | import de.srendi.advancedperipherals.common.addons.computercraft.operations.AutomataCoreTier; 7 | import de.srendi.advancedperipherals.common.configuration.APConfig; 8 | 9 | public class OverpoweredWeakAutomataCorePeripheral extends WeakAutomataCorePeripheral { 10 | 11 | public static final String TYPE = "overpowered_weak_automata"; 12 | 13 | public OverpoweredWeakAutomataCorePeripheral(ITurtleAccess turtle, TurtleSide side) { 14 | super(TYPE, turtle, side, AutomataCoreTier.OVERPOWERED_TIER1); 15 | setAttribute(ATTR_STORING_TOOL_DURABILITY); 16 | } 17 | 18 | public void addRotationCycle(int count) { 19 | super.addRotationCycle(count); 20 | if (AdvancedPeripherals.RANDOM.nextDouble() <= APConfig.METAPHYSICS_CONFIG.overpoweredAutomataBreakChance.get()) 21 | owner.destroyUpgrade(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/plugins/AutomataCorePlugin.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.peripheral.plugins; 2 | 3 | import de.srendi.advancedperipherals.lib.peripherals.AutomataCorePeripheral; 4 | import de.srendi.advancedperipherals.lib.peripherals.IPeripheralPlugin; 5 | 6 | public class AutomataCorePlugin implements IPeripheralPlugin { 7 | 8 | protected final AutomataCorePeripheral automataCore; 9 | 10 | public AutomataCorePlugin(AutomataCorePeripheral automataCore) { 11 | this.automataCore = automataCore; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/pocket/PocketChatBoxUpgrade.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.pocket; 2 | 3 | import dan200.computercraft.api.pocket.IPocketAccess; 4 | import dan200.computercraft.api.pocket.IPocketUpgrade; 5 | import dan200.computercraft.api.upgrades.UpgradeType; 6 | import de.srendi.advancedperipherals.common.addons.computercraft.peripheral.ChatBoxPeripheral; 7 | import de.srendi.advancedperipherals.common.setup.CCRegistration; 8 | import de.srendi.advancedperipherals.lib.pocket.BasePocketUpgrade; 9 | import net.minecraft.world.item.ItemStack; 10 | import org.jetbrains.annotations.Nullable; 11 | 12 | public class PocketChatBoxUpgrade extends BasePocketUpgrade { 13 | 14 | public PocketChatBoxUpgrade(ItemStack stack) { 15 | super(CCRegistration.ID.CHATTY_POCKET, stack); 16 | } 17 | 18 | @Nullable 19 | @Override 20 | public ChatBoxPeripheral getPeripheral(IPocketAccess access) { 21 | return new ChatBoxPeripheral(access); 22 | } 23 | 24 | @Override 25 | public UpgradeType getType() { 26 | return CCRegistration.CHAT_BOX_POCKET.get(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/pocket/PocketColonyIntegratorUpgrade.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.pocket; 2 | 3 | import dan200.computercraft.api.pocket.IPocketAccess; 4 | import dan200.computercraft.api.pocket.IPocketUpgrade; 5 | import dan200.computercraft.api.upgrades.UpgradeType; 6 | import de.srendi.advancedperipherals.common.addons.computercraft.peripheral.ColonyPeripheral; 7 | import de.srendi.advancedperipherals.common.setup.CCRegistration; 8 | import de.srendi.advancedperipherals.lib.pocket.BasePocketUpgrade; 9 | import net.minecraft.world.item.ItemStack; 10 | 11 | public class PocketColonyIntegratorUpgrade extends BasePocketUpgrade { 12 | 13 | public PocketColonyIntegratorUpgrade(ItemStack stack) { 14 | super(CCRegistration.ID.COLONY_POCKET, stack); 15 | } 16 | 17 | @Override 18 | protected ColonyPeripheral getPeripheral(IPocketAccess access) { 19 | return new ColonyPeripheral(access); 20 | } 21 | 22 | @Override 23 | public UpgradeType getType() { 24 | return CCRegistration.COLONY_POCKET.get(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/pocket/PocketEnvironmentUpgrade.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.pocket; 2 | 3 | import dan200.computercraft.api.pocket.IPocketAccess; 4 | import dan200.computercraft.api.pocket.IPocketUpgrade; 5 | import dan200.computercraft.api.upgrades.UpgradeType; 6 | import de.srendi.advancedperipherals.common.addons.computercraft.peripheral.EnvironmentDetectorPeripheral; 7 | import de.srendi.advancedperipherals.common.setup.CCRegistration; 8 | import de.srendi.advancedperipherals.lib.pocket.BasePocketUpgrade; 9 | import net.minecraft.world.item.ItemStack; 10 | import org.jetbrains.annotations.NotNull; 11 | import org.jetbrains.annotations.Nullable; 12 | 13 | public class PocketEnvironmentUpgrade extends BasePocketUpgrade { 14 | 15 | public PocketEnvironmentUpgrade(ItemStack stack) { 16 | super(CCRegistration.ID.ENVIRONMENT_POCKET, stack); 17 | } 18 | 19 | @Nullable 20 | @Override 21 | public EnvironmentDetectorPeripheral getPeripheral(@NotNull IPocketAccess iPocketAccess) { 22 | return new EnvironmentDetectorPeripheral(iPocketAccess); 23 | } 24 | 25 | @Override 26 | public UpgradeType getType() { 27 | return CCRegistration.ENVIRONMENT_POCKET.get(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/pocket/PocketGeoScannerUpgrade.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.pocket; 2 | 3 | import dan200.computercraft.api.pocket.IPocketAccess; 4 | import dan200.computercraft.api.pocket.IPocketUpgrade; 5 | import dan200.computercraft.api.upgrades.UpgradeType; 6 | import de.srendi.advancedperipherals.common.addons.computercraft.peripheral.GeoScannerPeripheral; 7 | import de.srendi.advancedperipherals.common.setup.CCRegistration; 8 | import de.srendi.advancedperipherals.lib.pocket.BasePocketUpgrade; 9 | import net.minecraft.world.item.ItemStack; 10 | import org.jetbrains.annotations.NotNull; 11 | import org.jetbrains.annotations.Nullable; 12 | 13 | public class PocketGeoScannerUpgrade extends BasePocketUpgrade { 14 | 15 | public PocketGeoScannerUpgrade(ItemStack stack) { 16 | super(CCRegistration.ID.GEOSCANNER_POCKET, stack); 17 | } 18 | 19 | @Nullable 20 | @Override 21 | public GeoScannerPeripheral getPeripheral(@NotNull IPocketAccess iPocketAccess) { 22 | return new GeoScannerPeripheral(iPocketAccess); 23 | } 24 | 25 | @Override 26 | public UpgradeType getType() { 27 | return CCRegistration.GEO_SCANNER_POCKET.get(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/pocket/PocketPlayerDetectorUpgrade.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.computercraft.pocket; 2 | 3 | import dan200.computercraft.api.pocket.IPocketAccess; 4 | import dan200.computercraft.api.pocket.IPocketUpgrade; 5 | import dan200.computercraft.api.upgrades.UpgradeType; 6 | import de.srendi.advancedperipherals.common.addons.computercraft.peripheral.PlayerDetectorPeripheral; 7 | import de.srendi.advancedperipherals.common.setup.CCRegistration; 8 | import de.srendi.advancedperipherals.lib.pocket.BasePocketUpgrade; 9 | import net.minecraft.world.item.ItemStack; 10 | import org.jetbrains.annotations.NotNull; 11 | import org.jetbrains.annotations.Nullable; 12 | 13 | public class PocketPlayerDetectorUpgrade extends BasePocketUpgrade { 14 | 15 | public PocketPlayerDetectorUpgrade(ItemStack stack) { 16 | super(CCRegistration.ID.PLAYER_POCKET, stack); 17 | } 18 | 19 | @Nullable 20 | @Override 21 | public PlayerDetectorPeripheral getPeripheral(@NotNull IPocketAccess iPocketAccess) { 22 | return new PlayerDetectorPeripheral(iPocketAccess); 23 | } 24 | 25 | @Override 26 | public UpgradeType getType() { 27 | return CCRegistration.PLAYER_DETECTOR_POCKET.get(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/mekanism/EnvironmentRadiationPlugin.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.mekanism; 2 | 3 | import dan200.computercraft.api.lua.LuaFunction; 4 | import de.srendi.advancedperipherals.common.addons.computercraft.owner.IPeripheralOwner; 5 | import de.srendi.advancedperipherals.lib.peripherals.IPeripheralPlugin; 6 | 7 | public class EnvironmentRadiationPlugin implements IPeripheralPlugin { 8 | private final IPeripheralOwner owner; 9 | 10 | public EnvironmentRadiationPlugin(IPeripheralOwner owner) { 11 | this.owner = owner; 12 | } 13 | 14 | @LuaFunction(mainThread = true) 15 | public final Object getRadiation() { 16 | return Mekanism.getRadiation(owner.getLevel(), owner.getPos()); 17 | } 18 | 19 | @LuaFunction(mainThread = true) 20 | public final double getRadiationRaw() { 21 | return Mekanism.getRadiationRaw(owner.getLevel(), owner.getPos()); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/mekanism/Integration.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.mekanism; 2 | 3 | import de.srendi.advancedperipherals.common.addons.computercraft.peripheral.EnvironmentDetectorPeripheral; 4 | 5 | public class Integration implements Runnable { 6 | 7 | @Override 8 | public void run() { 9 | EnvironmentDetectorPeripheral.addIntegrationPlugin(EnvironmentRadiationPlugin::new); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/powah/EnergyCellIntegration.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.powah; 2 | 3 | import dan200.computercraft.api.lua.LuaFunction; 4 | import de.srendi.advancedperipherals.lib.peripherals.APGenericPeripheral; 5 | import owmii.powah.block.energycell.EnergyCellTile; 6 | 7 | public class EnergyCellIntegration implements APGenericPeripheral { 8 | 9 | @Override 10 | public String getPeripheralType() { 11 | return "energy_cell"; 12 | } 13 | 14 | @LuaFunction(mainThread = true) 15 | public final double getStoredEnergy(EnergyCellTile blockEntity) { 16 | return blockEntity.getEnergy().getEnergyStored(); 17 | } 18 | 19 | @LuaFunction(mainThread = true) 20 | public final double getMaxEnergy(EnergyCellTile blockEntity) { 21 | return blockEntity.getEnergy().getMaxEnergyStored(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/powah/Integration.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.powah; 2 | 3 | import dan200.computercraft.api.ComputerCraftAPI; 4 | 5 | public class Integration implements Runnable { 6 | 7 | @Override 8 | public void run() { 9 | ComputerCraftAPI.registerGenericSource(new ReactorIntegration()); 10 | ComputerCraftAPI.registerGenericSource(new EnergyCellIntegration()); 11 | ComputerCraftAPI.registerGenericSource(new EnderCellIntegration()); 12 | ComputerCraftAPI.registerGenericSource(new SolarPanelIntegration()); 13 | ComputerCraftAPI.registerGenericSource(new FurnatorIntegration()); 14 | ComputerCraftAPI.registerGenericSource(new MagmatorIntegration()); 15 | ComputerCraftAPI.registerGenericSource(new ThermoIntegration()); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/powah/MagmatorIntegration.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.powah; 2 | 3 | import dan200.computercraft.api.lua.LuaFunction; 4 | import de.srendi.advancedperipherals.common.util.LuaConverter; 5 | import de.srendi.advancedperipherals.lib.peripherals.APGenericPeripheral; 6 | import owmii.powah.block.magmator.MagmatorTile; 7 | 8 | public class MagmatorIntegration implements APGenericPeripheral { 9 | 10 | @Override 11 | public String getPeripheralType() { 12 | return "magmator"; 13 | } 14 | 15 | @LuaFunction(mainThread = true) 16 | public final double getStoredEnergy(MagmatorTile blockEntity) { 17 | return blockEntity.getEnergy().getEnergyStored(); 18 | } 19 | 20 | @LuaFunction(mainThread = true) 21 | public final double getMaxEnergy(MagmatorTile blockEntity) { 22 | return blockEntity.getEnergy().getMaxEnergyStored(); 23 | } 24 | 25 | @LuaFunction 26 | public final boolean isBurning(MagmatorTile blockEntity) { 27 | return blockEntity.isBurning(); 28 | } 29 | 30 | // getTank is thread safe 31 | @LuaFunction 32 | public final Object getFuelTank(MagmatorTile blockEntity) { 33 | return LuaConverter.fluidStackToObject(blockEntity.getTank().getFluid()); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/powah/SolarPanelIntegration.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.powah; 2 | 3 | import dan200.computercraft.api.lua.LuaFunction; 4 | import de.srendi.advancedperipherals.lib.peripherals.APGenericPeripheral; 5 | import owmii.powah.block.solar.SolarTile; 6 | 7 | public class SolarPanelIntegration implements APGenericPeripheral { 8 | 9 | @Override 10 | public String getPeripheralType() { 11 | return "solar_panel"; 12 | } 13 | 14 | @LuaFunction(mainThread = true) 15 | public final double getStoredEnergy(SolarTile blockEntity) { 16 | return blockEntity.getEnergy().getEnergyStored(); 17 | } 18 | 19 | @LuaFunction(mainThread = true) 20 | public final double getMaxEnergy(SolarTile blockEntity) { 21 | return blockEntity.getEnergy().getMaxEnergyStored(); 22 | } 23 | 24 | @LuaFunction 25 | public final boolean canSeeSky(SolarTile blockEntity) { 26 | return blockEntity.canSeeSky(); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/powah/ThermoIntegration.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.powah; 2 | 3 | import dan200.computercraft.api.lua.LuaFunction; 4 | import de.srendi.advancedperipherals.common.util.LuaConverter; 5 | import de.srendi.advancedperipherals.lib.peripherals.APGenericPeripheral; 6 | import owmii.powah.block.thermo.ThermoTile; 7 | 8 | public class ThermoIntegration implements APGenericPeripheral { 9 | 10 | @Override 11 | public String getPeripheralType() { 12 | return "thermo"; 13 | } 14 | 15 | @LuaFunction(mainThread = true) 16 | public final double getStoredEnergy(ThermoTile blockEntity) { 17 | return blockEntity.getEnergy().getEnergyStored(); 18 | } 19 | 20 | @LuaFunction(mainThread = true) 21 | public final double getMaxEnergy(ThermoTile blockEntity) { 22 | return blockEntity.getEnergy().getMaxEnergyStored(); 23 | } 24 | 25 | @LuaFunction 26 | public final Object getCoolantTank(ThermoTile blockEntity) { 27 | return LuaConverter.fluidStackToObject(blockEntity.getTank().getFluid()); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/addons/refinedstorage/RsStorageTypes.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.addons.refinedstorage; 2 | 3 | import com.refinedmods.refinedstorage.common.api.storage.StorageType; 4 | import com.refinedmods.refinedstorage.common.storage.StorageTypes; 5 | import com.refinedmods.refinedstorage.mekanism.ChemicalResourceType; 6 | import de.srendi.advancedperipherals.common.addons.APAddon; 7 | 8 | import java.util.function.Supplier; 9 | 10 | /** 11 | * To better support third party RS addons and to prevent any jvm loading issues when third party addons are not loaded 12 | */ 13 | public enum RsStorageTypes { 14 | 15 | ITEM(() -> StorageTypes.ITEM), 16 | FLUID(() -> StorageTypes.FLUID), 17 | CHEMICAL(() -> { 18 | if (APAddon.REFINEDSTORAGE_MEKANISM.isLoaded()) 19 | return ChemicalResourceType.STORAGE_TYPE; 20 | return null; 21 | }); 22 | 23 | private final Supplier storageType; 24 | 25 | RsStorageTypes(Supplier storageType) { 26 | this.storageType = storageType; 27 | } 28 | 29 | public StorageType getStorageType() { 30 | return storageType.get(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/blocks/base/ICapabilityProvider.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.blocks.base; 2 | 3 | import dan200.computercraft.api.peripheral.IPeripheral; 4 | import net.minecraft.core.Direction; 5 | import net.neoforged.neoforge.energy.IEnergyStorage; 6 | import net.neoforged.neoforge.fluids.capability.IFluidHandler; 7 | import net.neoforged.neoforge.items.IItemHandler; 8 | import org.jetbrains.annotations.Nullable; 9 | 10 | public interface ICapabilityProvider { 11 | 12 | @Nullable 13 | default IPeripheral createPeripheralCap(@Nullable Direction side) { 14 | return null; 15 | } 16 | 17 | @Nullable 18 | default IFluidHandler createFluidHandlerCap(@Nullable Direction side) { 19 | return null; 20 | } 21 | 22 | @Nullable 23 | default IItemHandler createItemHandlerCap(@Nullable Direction side) { 24 | return null; 25 | } 26 | 27 | @Nullable 28 | default IEnergyStorage createEnergyStorageCap(@Nullable Direction side) { 29 | return null; 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/blocks/base/IHarvestableBlock.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.blocks.base; 2 | 3 | import net.minecraft.tags.BlockTags; 4 | import net.minecraft.tags.TagKey; 5 | import net.minecraft.world.level.block.Block; 6 | 7 | public interface IHarvestableBlock { 8 | 9 | TagKey getHarvestTag(); 10 | 11 | default TagKey getToolTag() { 12 | return BlockTags.MINEABLE_WITH_PICKAXE; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/blocks/base/IInventoryBlock.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.blocks.base; 2 | 3 | import de.srendi.advancedperipherals.common.container.base.BaseContainer; 4 | import net.minecraft.core.BlockPos; 5 | import net.minecraft.network.chat.Component; 6 | import net.minecraft.world.entity.player.Inventory; 7 | import net.minecraft.world.level.Level; 8 | 9 | /** 10 | * Used to assign a container to a TileEntity 11 | * 12 | * @param The container related to this inventory 13 | * @deprecated Will be merged with the APBlock in 0.9 14 | */ 15 | 16 | @Deprecated(since = "0.7.16", forRemoval = true) 17 | public interface IInventoryBlock { 18 | 19 | Component getDisplayName(); 20 | 21 | T createContainer(int id, Inventory playerInventory, BlockPos pos, Level world); 22 | 23 | int getInvSize(); 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/blocks/blockentities/BlockReaderEntity.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.blocks.blockentities; 2 | 3 | import de.srendi.advancedperipherals.common.addons.computercraft.peripheral.BlockReaderPeripheral; 4 | import de.srendi.advancedperipherals.common.blocks.base.PeripheralBlockEntity; 5 | import de.srendi.advancedperipherals.common.setup.BlockEntityTypes; 6 | import net.minecraft.core.BlockPos; 7 | import net.minecraft.world.level.block.state.BlockState; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class BlockReaderEntity extends PeripheralBlockEntity { 11 | 12 | public BlockReaderEntity(BlockPos pos, BlockState state) { 13 | super(BlockEntityTypes.BLOCK_READER.get(), pos, state); 14 | } 15 | 16 | @NotNull 17 | @Override 18 | protected BlockReaderPeripheral createPeripheral() { 19 | return new BlockReaderPeripheral(this); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/blocks/blockentities/ChatBoxEntity.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.blocks.blockentities; 2 | 3 | import de.srendi.advancedperipherals.common.addons.computercraft.peripheral.ChatBoxPeripheral; 4 | import de.srendi.advancedperipherals.common.blocks.base.PeripheralBlockEntity; 5 | import de.srendi.advancedperipherals.common.setup.BlockEntityTypes; 6 | import net.minecraft.core.BlockPos; 7 | import net.minecraft.world.level.Level; 8 | import net.minecraft.world.level.block.entity.BlockEntity; 9 | import net.minecraft.world.level.block.entity.BlockEntityType; 10 | import net.minecraft.world.level.block.state.BlockState; 11 | import org.jetbrains.annotations.NotNull; 12 | 13 | public class ChatBoxEntity extends PeripheralBlockEntity { 14 | public ChatBoxEntity(BlockPos pos, BlockState state) { 15 | super(BlockEntityTypes.CHAT_BOX.get(), pos, state); 16 | } 17 | 18 | @NotNull 19 | @Override 20 | protected ChatBoxPeripheral createPeripheral() { 21 | return new ChatBoxPeripheral(this); 22 | } 23 | 24 | @Override 25 | public void handleTick(Level level, BlockState state, BlockEntityType type) { 26 | if (peripheral != null) { 27 | peripheral.update(); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/blocks/blockentities/ColonyIntegratorEntity.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.blocks.blockentities; 2 | 3 | import de.srendi.advancedperipherals.common.addons.computercraft.peripheral.ColonyPeripheral; 4 | import de.srendi.advancedperipherals.common.blocks.base.PeripheralBlockEntity; 5 | import de.srendi.advancedperipherals.common.setup.BlockEntityTypes; 6 | import net.minecraft.core.BlockPos; 7 | import net.minecraft.world.level.block.state.BlockState; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class ColonyIntegratorEntity extends PeripheralBlockEntity { 11 | 12 | public ColonyIntegratorEntity(BlockPos pos, BlockState state) { 13 | super(BlockEntityTypes.COLONY_INTEGRATOR.get(), pos, state); 14 | } 15 | 16 | @NotNull 17 | @Override 18 | protected ColonyPeripheral createPeripheral() { 19 | return new ColonyPeripheral(this); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/blocks/blockentities/EnvironmentDetectorEntity.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.blocks.blockentities; 2 | 3 | import de.srendi.advancedperipherals.common.addons.computercraft.peripheral.EnvironmentDetectorPeripheral; 4 | import de.srendi.advancedperipherals.common.blocks.base.PoweredPeripheralBlockEntity; 5 | import de.srendi.advancedperipherals.common.configuration.APConfig; 6 | import de.srendi.advancedperipherals.common.setup.BlockEntityTypes; 7 | import net.minecraft.core.BlockPos; 8 | import net.minecraft.world.level.block.state.BlockState; 9 | import org.jetbrains.annotations.NotNull; 10 | 11 | public class EnvironmentDetectorEntity extends PoweredPeripheralBlockEntity { 12 | 13 | public EnvironmentDetectorEntity(BlockPos pos, BlockState state) { 14 | super(BlockEntityTypes.ENVIRONMENT_DETECTOR.get(), pos, state); 15 | } 16 | 17 | @Override 18 | protected int getMaxEnergyStored() { 19 | return APConfig.PERIPHERALS_CONFIG.poweredPeripheralMaxEnergyStorage.get(); 20 | } 21 | 22 | @NotNull 23 | @Override 24 | protected EnvironmentDetectorPeripheral createPeripheral() { 25 | return new EnvironmentDetectorPeripheral(this); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/blocks/blockentities/GeoScannerEntity.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.blocks.blockentities; 2 | 3 | import de.srendi.advancedperipherals.common.addons.computercraft.peripheral.GeoScannerPeripheral; 4 | import de.srendi.advancedperipherals.common.blocks.base.PoweredPeripheralBlockEntity; 5 | import de.srendi.advancedperipherals.common.configuration.APConfig; 6 | import de.srendi.advancedperipherals.common.setup.BlockEntityTypes; 7 | import net.minecraft.core.BlockPos; 8 | import net.minecraft.world.level.block.state.BlockState; 9 | import org.jetbrains.annotations.NotNull; 10 | 11 | public class GeoScannerEntity extends PoweredPeripheralBlockEntity { 12 | 13 | public GeoScannerEntity(BlockPos pos, BlockState state) { 14 | super(BlockEntityTypes.GEO_SCANNER.get(), pos, state); 15 | } 16 | 17 | @Override 18 | protected int getMaxEnergyStored() { 19 | return APConfig.PERIPHERALS_CONFIG.poweredPeripheralMaxEnergyStorage.get(); 20 | } 21 | 22 | @Override 23 | protected @NotNull GeoScannerPeripheral createPeripheral() { 24 | return new GeoScannerPeripheral(this); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/configuration/IAPConfig.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.configuration; 2 | 3 | import de.srendi.advancedperipherals.lib.misc.IConfigHandler; 4 | import net.neoforged.fml.config.ModConfig; 5 | import net.neoforged.neoforge.common.ModConfigSpec; 6 | 7 | public interface IAPConfig { 8 | 9 | ModConfigSpec getConfigSpec(); 10 | 11 | String getFileName(); 12 | 13 | ModConfig.Type getType(); 14 | 15 | default void register(IConfigHandler[] data, final ModConfigSpec.Builder builder) { 16 | for (IConfigHandler handler : data) { 17 | handler.addToConfig(builder); 18 | } 19 | } 20 | 21 | default void pop(String name, ModConfigSpec.Builder builder) { 22 | builder.pop(); 23 | builder.push(name); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/configuration/UnsafeConfig.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.configuration; 2 | 3 | import net.neoforged.neoforge.common.ModConfigSpec; 4 | 5 | public class UnsafeConfig { 6 | 7 | private static ModConfigSpec.BooleanValue enableUnsafe; 8 | private static ModConfigSpec.BooleanValue ignoreTurtlePeripheralItemNBT; 9 | 10 | public static void build(final ModConfigSpec.Builder builder) { 11 | enableUnsafe = builder.comment("By setting this value to true, I understand all operations below are danger to my adventure, and if they caused unexpected behavior in my world, I will not consider it as AP's liability").define("enableUnsafe", false); 12 | ignoreTurtlePeripheralItemNBT = builder.comment("Ignore turtle peripheral item's NBT when equipping. **YOU WILL LOSE ALL NBT ON THE ITEM**").define("ignoreTurtlePeripheralItemNBT", false); 13 | } 14 | 15 | public static boolean enabled() { 16 | return enableUnsafe.get(); 17 | } 18 | 19 | public static boolean getIgnoreTurtlePeripheralItemNBT() { 20 | return enabled() && ignoreTurtlePeripheralItemNBT.get(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/container/InventoryManagerScreen.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.container; 2 | 3 | import de.srendi.advancedperipherals.AdvancedPeripherals; 4 | import de.srendi.advancedperipherals.common.container.base.BaseScreen; 5 | import net.minecraft.network.chat.Component; 6 | import net.minecraft.resources.ResourceLocation; 7 | import net.minecraft.world.entity.player.Inventory; 8 | 9 | public class InventoryManagerScreen extends BaseScreen { 10 | 11 | public InventoryManagerScreen(InventoryManagerContainer screenContainer, Inventory inv, Component titleIn) { 12 | super(screenContainer, inv, titleIn); 13 | } 14 | 15 | @Override 16 | public int getSizeX() { 17 | return 174; 18 | } 19 | 20 | @Override 21 | public int getSizeY() { 22 | return 165; 23 | } 24 | 25 | @Override 26 | public ResourceLocation getTexture() { 27 | return AdvancedPeripherals.getRL("textures/gui/inventory_manager_gui.png"); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/container/base/NamedContainerProvider.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.container.base; 2 | 3 | import net.minecraft.network.chat.Component; 4 | import net.minecraft.world.MenuProvider; 5 | import net.minecraft.world.entity.player.Inventory; 6 | import net.minecraft.world.entity.player.Player; 7 | import net.minecraft.world.inventory.AbstractContainerMenu; 8 | import net.minecraft.world.inventory.MenuConstructor; 9 | import org.jetbrains.annotations.Nullable; 10 | 11 | public class NamedContainerProvider implements MenuProvider { 12 | 13 | protected Component component; 14 | protected MenuConstructor containerProvider; 15 | 16 | public NamedContainerProvider(Component component, MenuConstructor containerProvider) { 17 | this.component = component; 18 | this.containerProvider = containerProvider; 19 | } 20 | 21 | @Override 22 | public Component getDisplayName() { 23 | return component; 24 | } 25 | 26 | @Nullable 27 | @Override 28 | public AbstractContainerMenu createMenu(int id, Inventory playerInventory, Player playerEntity) { 29 | return containerProvider.createMenu(id, playerInventory, playerEntity); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/container/base/SlotInputHandler.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.container.base; 2 | 3 | import net.minecraft.world.item.ItemStack; 4 | import net.neoforged.neoforge.items.IItemHandler; 5 | import net.neoforged.neoforge.items.SlotItemHandler; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | public class SlotInputHandler extends SlotItemHandler { 9 | 10 | SlotCondition condition; 11 | 12 | public SlotInputHandler(IItemHandler itemHandler, int index, int xPosition, int yPosition, SlotCondition condition) { 13 | super(itemHandler, index, xPosition, yPosition); 14 | this.condition = condition; 15 | } 16 | 17 | @Override 18 | public boolean mayPlace(@NotNull ItemStack stack) { 19 | return condition.isValid(stack); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/data/BlockLootTables.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.data; 2 | 3 | import de.srendi.advancedperipherals.common.setup.Registration; 4 | import net.minecraft.core.HolderLookup; 5 | import net.minecraft.data.loot.BlockLootSubProvider; 6 | import net.minecraft.world.flag.FeatureFlags; 7 | import net.minecraft.world.level.block.Block; 8 | import net.neoforged.neoforge.registries.DeferredHolder; 9 | import org.jetbrains.annotations.NotNull; 10 | 11 | import java.util.Set; 12 | 13 | public class BlockLootTables extends BlockLootSubProvider { 14 | 15 | protected BlockLootTables(HolderLookup.Provider provider) { 16 | super(Set.of(), FeatureFlags.REGISTRY.allFlags(), provider); 17 | } 18 | 19 | @Override 20 | protected void generate() { 21 | Registration.BLOCKS.getEntries().stream().map(DeferredHolder::get).forEach(registeredBlock -> { 22 | //Allow blocks to transfer their name to the dropped block when broken 23 | this.add(registeredBlock, this::createNameableBlockEntityTable); 24 | }); 25 | } 26 | 27 | @NotNull 28 | @Override 29 | protected Iterable getKnownBlocks() { 30 | return Registration.BLOCKS.getEntries().stream().map(DeferredHolder::get).map((block) -> (Block) block)::iterator; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/items/APBlockItem.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.items; 2 | 3 | import de.srendi.advancedperipherals.common.items.base.BaseBlockItem; 4 | import net.minecraft.world.level.block.Block; 5 | 6 | import java.util.function.Supplier; 7 | 8 | public class APBlockItem extends BaseBlockItem { 9 | 10 | private final Supplier enabledSup; 11 | 12 | public APBlockItem(Block blockIn, Properties properties, Supplier enabledSup) { 13 | super(blockIn, properties); 14 | this.enabledSup = enabledSup; 15 | } 16 | 17 | public APBlockItem(Block blockIn, Supplier enabledSup) { 18 | super(blockIn); 19 | this.enabledSup = enabledSup; 20 | } 21 | 22 | @Override 23 | public boolean isEnabled() { 24 | return enabledSup.get(); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/items/APItem.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.items; 2 | 3 | import de.srendi.advancedperipherals.common.items.base.BaseItem; 4 | 5 | import java.util.function.Supplier; 6 | 7 | public class APItem extends BaseItem { 8 | private final Supplier enabledSup; 9 | 10 | public APItem(Properties properties, Supplier enabledSup) { 11 | super(properties); 12 | this.enabledSup = enabledSup; 13 | } 14 | 15 | public APItem(Supplier enabledSup) { 16 | super(); 17 | this.enabledSup = enabledSup; 18 | } 19 | 20 | @Override 21 | public boolean isEnabled() { 22 | return enabledSup.get(); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/items/base/IInventoryItem.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.items.base; 2 | 3 | import net.minecraft.world.MenuProvider; 4 | import net.minecraft.world.entity.player.Player; 5 | import net.minecraft.world.item.ItemStack; 6 | 7 | public interface IInventoryItem { 8 | 9 | MenuProvider createContainer(Player playerEntity, ItemStack itemStack); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/setup/ContainerTypes.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.setup; 2 | 3 | import de.srendi.advancedperipherals.common.container.InventoryManagerContainer; 4 | import net.minecraft.core.BlockPos; 5 | import net.minecraft.world.inventory.MenuType; 6 | import net.minecraft.world.level.Level; 7 | import net.neoforged.neoforge.common.extensions.IMenuTypeExtension; 8 | import net.neoforged.neoforge.registries.DeferredHolder; 9 | 10 | public class ContainerTypes { 11 | 12 | public static final DeferredHolder, MenuType> INVENTORY_MANAGER_CONTAINER = Registration.CONTAINER_TYPES.register("memory_card_container", () -> IMenuTypeExtension.create((windowId, inv, data) -> { 13 | BlockPos pos = data.readBlockPos(); 14 | Level level = inv.player.getCommandSenderWorld(); 15 | return new InventoryManagerContainer(windowId, inv, pos, level); 16 | })); 17 | 18 | public static void register() { 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/setup/CreativeTabs.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.setup; 2 | 3 | import de.srendi.advancedperipherals.APCreativeTab; 4 | import de.srendi.advancedperipherals.AdvancedPeripherals; 5 | import net.minecraft.world.item.CreativeModeTab; 6 | import net.neoforged.neoforge.registries.DeferredHolder; 7 | 8 | public class CreativeTabs { 9 | 10 | public static final DeferredHolder AP_CREATIVE_MODE_TAB = Registration.CREATIVE_MODE_TABS.register(AdvancedPeripherals.MOD_ID, CreativeTabs::createCreativeTab); 11 | 12 | private static CreativeModeTab createCreativeTab() { 13 | CreativeModeTab.Builder builder = new CreativeModeTab.Builder(CreativeModeTab.Row.BOTTOM, -1); 14 | APCreativeTab.populateCreativeTabBuilder(builder); 15 | return builder.build(); 16 | } 17 | public static void register() { 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/setup/Villagers.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.setup; 2 | 3 | import com.google.common.collect.ImmutableSet; 4 | import dan200.computercraft.shared.ModRegistry; 5 | import de.srendi.advancedperipherals.AdvancedPeripherals; 6 | import net.minecraft.sounds.SoundEvents; 7 | import net.minecraft.world.entity.ai.village.poi.PoiType; 8 | import net.minecraft.world.entity.npc.VillagerProfession; 9 | 10 | import java.util.function.Supplier; 11 | 12 | public class Villagers { 13 | 14 | public static final Supplier COMPUTER_SCIENTIST_POI = Registration.POI_TYPES.register("computer_scientist", () -> new PoiType(ImmutableSet.copyOf(ModRegistry.Blocks.COMPUTER_ADVANCED.get().getStateDefinition().getPossibleStates()), 1, 1)); 15 | public static final Supplier COMPUTER_SCIENTIST = Registration.VILLAGER_PROFESSIONS.register("computer_scientist", () -> new VillagerProfession(AdvancedPeripherals.MOD_ID + ":computer_scientist", holder -> holder.is(AdvancedPeripherals.getRL("computer_scientist")), holder -> holder.is(AdvancedPeripherals.getRL("computer_scientist")), ImmutableSet.of(), ImmutableSet.of(ModRegistry.Blocks.COMPUTER_ADVANCED.get()), SoundEvents.VILLAGER_WORK_TOOLSMITH)); 16 | 17 | public static void register() { 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/util/CountingWipingStream.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.util; 2 | 3 | import java.io.IOException; 4 | import java.io.OutputStream; 5 | 6 | public class CountingWipingStream extends OutputStream { 7 | private int counter = 0; 8 | 9 | public int getWrittenBytes() { 10 | return counter; 11 | } 12 | 13 | @Override 14 | public void write(int i) throws IOException { 15 | counter += 1; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/util/DataComponentUtil.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.util; 2 | 3 | import net.minecraft.core.component.DataComponentPatch; 4 | import net.minecraft.nbt.NbtOps; 5 | import net.minecraft.nbt.Tag; 6 | import net.minecraft.resources.RegistryOps; 7 | import net.neoforged.neoforge.server.ServerLifecycleHooks; 8 | 9 | public class DataComponentUtil { 10 | 11 | public static Tag toNbt(DataComponentPatch patch) { 12 | return DataComponentPatch.CODEC.encodeStart(RegistryOps.create(NbtOps.INSTANCE, ServerLifecycleHooks.getCurrentServer().registryAccess()), patch).getOrThrow(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/util/ServerWorker.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.util; 2 | 3 | import de.srendi.advancedperipherals.AdvancedPeripherals; 4 | import net.neoforged.bus.api.SubscribeEvent; 5 | import net.neoforged.fml.common.EventBusSubscriber; 6 | import net.neoforged.neoforge.event.tick.ServerTickEvent; 7 | 8 | import java.util.Queue; 9 | import java.util.concurrent.ConcurrentLinkedQueue; 10 | 11 | @EventBusSubscriber(modid = AdvancedPeripherals.MOD_ID) 12 | public class ServerWorker { 13 | 14 | private static final Queue callQueue = new ConcurrentLinkedQueue<>(); 15 | 16 | public static void add(final Runnable call) { 17 | if (call != null) { 18 | callQueue.add(call); 19 | } 20 | } 21 | 22 | @SubscribeEvent 23 | public static void serverTick(ServerTickEvent.Post event) { 24 | while (true) { 25 | final Runnable runnable = callQueue.poll(); 26 | if (runnable == null) { 27 | return; 28 | } 29 | AdvancedPeripherals.debug("Running queued server worker call: " + runnable); 30 | runnable.run(); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/util/SideHelper.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.util; 2 | 3 | import net.minecraft.client.Minecraft; 4 | import net.minecraft.world.entity.LivingEntity; 5 | import net.minecraft.world.entity.player.Player; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | public class SideHelper { 9 | 10 | public static boolean isClientPlayer(@NotNull LivingEntity player) { 11 | return player.level().isClientSide && player instanceof Player && player.level().getServer() == null && player == Minecraft.getInstance().player; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/util/ToastUtil.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.util; 2 | 3 | import net.minecraft.client.Minecraft; 4 | import net.minecraft.client.gui.components.toasts.SystemToast; 5 | import net.minecraft.network.chat.Component; 6 | 7 | /** 8 | * Outsourced toast utilities to prevent client class loading on the server side 9 | */ 10 | public class ToastUtil { 11 | 12 | /** 13 | * Displays a toast on a players screen. 14 | * This is a client side operation! Don't execute this on the server side 15 | * 16 | * @param title the title of the toast 17 | * @param message the message of the toast 18 | */ 19 | public static void displayToast(Component title, Component message) { 20 | Minecraft minecraft = Minecraft.getInstance(); 21 | 22 | minecraft.getToasts().addToast(SystemToast.multiline(minecraft, 23 | SystemToast.SystemToastId.PERIODIC_NOTIFICATION, title, message)); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/common/util/TranslationUtil.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.common.util; 2 | 3 | import de.srendi.advancedperipherals.AdvancedPeripherals; 4 | import net.minecraft.network.chat.Component; 5 | 6 | public class TranslationUtil { 7 | 8 | public static Component itemTooltip(String descriptionId) { 9 | int lastIndex = descriptionId.lastIndexOf('.'); 10 | return Component.translatable(String.format("%s.tooltip.%s", descriptionId.substring(0, lastIndex).replaceFirst("^block", "item"), descriptionId.substring(lastIndex + 1))); 11 | } 12 | 13 | public static String turtle(String name) { 14 | return String.format("turtle.%s.%s", AdvancedPeripherals.MOD_ID, name); 15 | } 16 | 17 | public static String pocket(String name) { 18 | return String.format("pocket.%s.%s", AdvancedPeripherals.MOD_ID, name); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/lib/integrations/IPeripheralIntegration.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.lib.integrations; 2 | 3 | import dan200.computercraft.api.peripheral.IPeripheral; 4 | import net.minecraft.core.BlockPos; 5 | import net.minecraft.core.Direction; 6 | import net.minecraft.world.level.Level; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | public interface IPeripheralIntegration { 10 | boolean isSuitable(@NotNull Level level, @NotNull BlockPos blockPos, @NotNull Direction direction); 11 | 12 | @NotNull IPeripheral buildPeripheral(@NotNull Level level, @NotNull BlockPos blockPos, @NotNull Direction direction); 13 | 14 | /** 15 | * @return integration priority, lower priority is better 16 | */ 17 | int getPriority(); 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/lib/metaphysics/IAutomataCoreTier.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.lib.metaphysics; 2 | 3 | import de.srendi.advancedperipherals.lib.misc.IConfigHandler; 4 | 5 | public interface IAutomataCoreTier extends IConfigHandler { 6 | int getInteractionRadius(); 7 | 8 | int getMaxFuelConsumptionRate(); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/lib/metaphysics/IFeedableAutomataCore.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.lib.metaphysics; 2 | 3 | public interface IFeedableAutomataCore {} 4 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/lib/misc/IConfigHandler.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.lib.misc; 2 | 3 | import net.neoforged.neoforge.common.ModConfigSpec; 4 | 5 | import java.util.Arrays; 6 | import java.util.stream.Collectors; 7 | 8 | public interface IConfigHandler { 9 | void addToConfig(ModConfigSpec.Builder builder); 10 | 11 | String name(); 12 | 13 | default String settingsPostfix() { 14 | return ""; 15 | } 16 | 17 | default String settingsName() { 18 | String name = name(); 19 | String startName = Arrays.stream(name.toLowerCase().split("_")).map(s -> s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase()).collect(Collectors.joining()) + settingsPostfix(); 20 | return startName.substring(0, 1).toLowerCase() + startName.substring(1); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/lib/peripherals/APGenericPeripheral.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.lib.peripherals; 2 | 3 | import dan200.computercraft.api.peripheral.GenericPeripheral; 4 | import dan200.computercraft.api.peripheral.PeripheralType; 5 | import de.srendi.advancedperipherals.AdvancedPeripherals; 6 | 7 | public interface APGenericPeripheral extends GenericPeripheral { 8 | String getPeripheralType(); 9 | 10 | @Override 11 | default String id() { 12 | return AdvancedPeripherals.MOD_ID + ":" + getPeripheralType(); 13 | } 14 | 15 | @Override 16 | default PeripheralType getType() { 17 | return PeripheralType.ofType(getPeripheralType()); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/lib/peripherals/BlockEntityIntegrationPeripheral.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.lib.peripherals; 2 | 3 | import net.minecraft.world.level.block.entity.BlockEntity; 4 | import org.jetbrains.annotations.Nullable; 5 | 6 | public abstract class BlockEntityIntegrationPeripheral extends IntegrationPeripheral { 7 | 8 | protected final T blockEntity; 9 | 10 | protected BlockEntityIntegrationPeripheral(BlockEntity entity) { 11 | super(); 12 | this.blockEntity = (T) entity; 13 | } 14 | 15 | @Nullable 16 | @Override 17 | public Object getTarget() { 18 | return blockEntity; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/lib/peripherals/BlockIntegrationPeripheral.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.lib.peripherals; 2 | 3 | import net.minecraft.core.BlockPos; 4 | import net.minecraft.world.level.Level; 5 | import net.minecraft.world.level.block.Block; 6 | import org.jetbrains.annotations.Nullable; 7 | 8 | public abstract class BlockIntegrationPeripheral extends IntegrationPeripheral { 9 | 10 | protected final Level world; 11 | protected final BlockPos pos; 12 | 13 | protected BlockIntegrationPeripheral(Level world, BlockPos pos) { 14 | super(); 15 | this.world = world; 16 | this.pos = pos; 17 | } 18 | 19 | public Block getBlock() { 20 | return world.getBlockState(pos).getBlock(); 21 | } 22 | 23 | @Nullable 24 | @Override 25 | public Object getTarget() { 26 | return world.getBlockState(pos).getBlock(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/lib/peripherals/DisabledPeripheral.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.lib.peripherals; 2 | 3 | import dan200.computercraft.api.pocket.IPocketAccess; 4 | import de.srendi.advancedperipherals.common.addons.computercraft.owner.PocketPeripheralOwner; 5 | 6 | public class DisabledPeripheral extends BasePeripheral { 7 | public static final DisabledPeripheral INSTANCE = new DisabledPeripheral("disabledPeripheral", null); 8 | 9 | private DisabledPeripheral(String type, IPocketAccess access) { 10 | super(type, new PocketPeripheralOwner(access)); 11 | } 12 | 13 | @Override 14 | public boolean isEnabled() { 15 | return true; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/lib/peripherals/IBasePeripheral.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.lib.peripherals; 2 | 3 | import dan200.computercraft.api.peripheral.IComputerAccess; 4 | import dan200.computercraft.api.peripheral.IPeripheral; 5 | import de.srendi.advancedperipherals.common.addons.computercraft.owner.IPeripheralOwner; 6 | 7 | public interface IBasePeripheral extends IPeripheral { 8 | boolean isEnabled(); 9 | 10 | Iterable getConnectedComputers(); 11 | 12 | T getPeripheralOwner(); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/lib/peripherals/IDataComponentProvider.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.lib.peripherals; 2 | 3 | import net.minecraft.core.component.DataComponentType; 4 | 5 | public interface IDataComponentProvider { 6 | 7 | DataComponentType dataComponentType(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/lib/peripherals/IPeripheralCheck.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.lib.peripherals; 2 | 3 | import dan200.computercraft.api.lua.MethodResult; 4 | import org.jetbrains.annotations.Nullable; 5 | 6 | @FunctionalInterface 7 | public interface IPeripheralCheck { 8 | 9 | @Nullable MethodResult check(T context); 10 | 11 | default IPeripheralCheck checkAlso(IPeripheralCheck check) { 12 | return new ChainedPeripheralCheck<>(this, check); 13 | } 14 | 15 | class ChainedPeripheralCheck implements IPeripheralCheck { 16 | private final IPeripheralCheck first; 17 | private final IPeripheralCheck second; 18 | 19 | private ChainedPeripheralCheck(IPeripheralCheck first, IPeripheralCheck second) { 20 | this.first = first; 21 | this.second = second; 22 | } 23 | 24 | @Override 25 | public @Nullable MethodResult check(T1 context) { 26 | MethodResult firstCheck = first.check(context); 27 | if (firstCheck != null) return firstCheck; 28 | return second.check(context); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/lib/peripherals/IPeripheralFunction.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.lib.peripherals; 2 | 3 | import dan200.computercraft.api.lua.LuaException; 4 | 5 | @FunctionalInterface 6 | public interface IPeripheralFunction { 7 | R apply(T var1) throws LuaException; 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/lib/peripherals/IPeripheralOperation.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.lib.peripherals; 2 | 3 | import de.srendi.advancedperipherals.lib.misc.IConfigHandler; 4 | 5 | import java.util.Map; 6 | 7 | public interface IPeripheralOperation extends IConfigHandler, IDataComponentProvider { 8 | int getInitialCooldown(); 9 | 10 | int getCooldown(T context); 11 | 12 | int getCost(T context); 13 | 14 | Map computerDescription(); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/lib/peripherals/IPeripheralPlugin.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.lib.peripherals; 2 | 3 | import dan200.computercraft.api.peripheral.IPeripheral; 4 | import dan200.computercraft.shared.computer.core.ServerContext; 5 | import net.neoforged.neoforge.server.ServerLifecycleHooks; 6 | import org.jetbrains.annotations.Nullable; 7 | 8 | import java.util.List; 9 | import java.util.stream.Collectors; 10 | 11 | public interface IPeripheralPlugin { 12 | default List getMethods() { 13 | return ServerContext.get(ServerLifecycleHooks.getCurrentServer()).peripheralMethods().getSelfMethods(this).entrySet().stream().map( 14 | entry -> new BoundMethod(this, entry.getKey(), entry.getValue()) 15 | ).collect(Collectors.toList()); 16 | } 17 | 18 | default @Nullable IPeripheralOperation[] getOperations() { 19 | return null; 20 | } 21 | 22 | default boolean isSuitable(IPeripheral peripheral) { 23 | return true; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/lib/peripherals/IPeripheralTileEntity.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.lib.peripherals; 2 | 3 | import net.minecraft.nbt.CompoundTag; 4 | import net.minecraft.world.level.Level; 5 | import net.minecraft.world.level.block.entity.BlockEntity; 6 | import net.minecraft.world.level.block.entity.BlockEntityType; 7 | import net.minecraft.world.level.block.state.BlockState; 8 | 9 | public interface IPeripheralTileEntity { 10 | CompoundTag getPeripheralSettings(); 11 | 12 | void markSettingsChanged(); 13 | 14 | default void handleTick(Level level, BlockState state, BlockEntityType type) { 15 | 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/de/srendi/advancedperipherals/network/IAPPacket.java: -------------------------------------------------------------------------------- 1 | package de.srendi.advancedperipherals.network; 2 | 3 | import net.minecraft.network.protocol.common.custom.CustomPacketPayload; 4 | import net.neoforged.neoforge.network.handling.IPayloadContext; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public interface IAPPacket extends CustomPacketPayload { 8 | 9 | static void handlePacket(@NotNull MSG payload, @NotNull IPayloadContext context) { 10 | payload.handle(context); 11 | } 12 | 13 | void handle(IPayloadContext context); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/resources/META-INF/accesstransformer.cfg: -------------------------------------------------------------------------------- 1 | public net.minecraft.world.level.block.entity.BeaconBlockEntity primaryPower # primaryPower 2 | public net.minecraft.world.level.block.entity.BeaconBlockEntity secondaryPower # secondaryPower 3 | public net.minecraft.world.level.block.entity.BeaconBlockEntity levels # levels 4 | public net.minecraft.world.level.block.entity.BaseContainerBlockEntity name # name 5 | public-f net.minecraft.world.level.levelgen.structure.pools.StructureTemplatePool rawTemplates # rawTemplates 6 | public-f net.minecraft.world.level.levelgen.structure.pools.StructureTemplatePool templates # templates 7 | public-f net.minecraft.world.entity.Entity getEyeHeight(Lnet/minecraft/world/entity/Pose;)F # getEyeHeight -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/block/turtle_chatty_left.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "computercraft:block/turtle_upgrade_base_left", 3 | "textures": {"texture": "advancedperipherals:block/chat_box_front"} 4 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/block/turtle_chatty_right.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "computercraft:block/turtle_upgrade_base_right", 3 | "textures": {"texture": "advancedperipherals:block/chat_box_front"} 4 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/block/turtle_environment_left.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "computercraft:block/turtle_upgrade_base_left", 3 | "textures": {"texture": "advancedperipherals:block/environment_detector_front"} 4 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/block/turtle_environment_right.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "computercraft:block/turtle_upgrade_base_right", 3 | "textures": {"texture": "advancedperipherals:block/environment_detector_front"} 4 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/block/turtle_geoscanner_left.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "computercraft:block/turtle_upgrade_base_left", 3 | "textures": {"texture": "advancedperipherals:block/geo_scanner_front"} 4 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/block/turtle_geoscanner_right.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "computercraft:block/turtle_upgrade_base_right", 3 | "textures": {"texture": "advancedperipherals:block/geo_scanner_front"} 4 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/block/turtle_player_left.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "computercraft:block/turtle_upgrade_base_left", 3 | "textures": {"texture": "advancedperipherals:block/player_detector_front"} 4 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/block/turtle_player_right.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "computercraft:block/turtle_upgrade_base_right", 3 | "textures": {"texture": "advancedperipherals:block/player_detector_front"} 4 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/ar_controller.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/ar_controller" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/ar_goggles.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "advancedperipherals:item/ar_goggles" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/block_reader.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/block_reader" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/book.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "advancedperipherals:item/book" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/chat_box.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/chat_box" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/chunk_controller.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "advancedperipherals:item/chunk_controller" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/colony_integrator.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/colony_integrator" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/computer_tool.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "advancedperipherals:item/computer_tool" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/end_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "advancedperipherals:item/metaphysics/base_gear", 5 | "layer1": "advancedperipherals:item/metaphysics/fire_purple" 6 | } 7 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/energy_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/energy_detector" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/environment_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/environment_detector" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/geo_scanner.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/geo_scanner" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/husbandry_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "advancedperipherals:item/metaphysics/base_gear", 5 | "layer1": "advancedperipherals:item/metaphysics/fire_green" 6 | } 7 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/inventory_manager.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/inventory_manager" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/me_bridge.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/me_bridge" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/memory_card.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "advancedperipherals:item/memory_card" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/nbt_storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/nbt_storage" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/overpowered_end_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "advancedperipherals:item/metaphysics/base_gear", 5 | "layer1": "advancedperipherals:item/metaphysics/big_fire_purple" 6 | } 7 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/overpowered_husbandry_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "advancedperipherals:item/metaphysics/base_gear", 5 | "layer1": "advancedperipherals:item/metaphysics/big_fire_green" 6 | } 7 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/overpowered_weak_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "advancedperipherals:item/metaphysics/base_gear", 5 | "layer1": "advancedperipherals:item/metaphysics/big_fire" 6 | } 7 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/peripheral_casing.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/peripheral_casing" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/player_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/player_detector" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/redstone_integrator.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/redstone_integrator" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/rs_bridge.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/rs_bridge" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/turtle_chat_box_upgrade_left.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/turtle_upgrade_base_left", 3 | "textures": { 4 | "texture": "advancedperipherals:block/chat_box" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/turtle_chat_box_upgrade_right.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/turtle_upgrade_base_right", 3 | "textures": { 4 | "texture": "advancedperipherals:block/chat_box" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/turtle_environment_upgrade_left.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/turtle_upgrade_base_left", 3 | "textures": { 4 | "texture": "advancedperipherals:block/environment_detector" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/turtle_environment_upgrade_right.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/turtle_upgrade_base_right", 3 | "textures": { 4 | "texture": "advancedperipherals:block/environment_detector" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/turtle_geoscanner_upgrade_left.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/turtle_upgrade_base_left", 3 | "textures": { 4 | "texture": "advancedperipherals:block/geo_scanner" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/turtle_geoscanner_upgrade_right.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/turtle_upgrade_base_right", 3 | "textures": { 4 | "texture": "advancedperipherals:block/geo_scanner" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/turtle_player_upgrade_left.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/turtle_upgrade_base_left", 3 | "textures": { 4 | "texture": "advancedperipherals:block/player_detector_side" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/turtle_player_upgrade_right.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "advancedperipherals:block/turtle_upgrade_base_right", 3 | "textures": { 4 | "texture": "advancedperipherals:block/player_detector_side" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/models/item/weak_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "advancedperipherals:item/metaphysics/base_gear", 5 | "layer1": "advancedperipherals:item/metaphysics/fire" 6 | } 7 | } -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/categories/items.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Items", 3 | "description": "Advanced Peripherals adds some items that are used in combination with the peripherals, or as crafting ingredients to enhance turtles.", 4 | "icon": "advancedperipherals:memory_card" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/categories/metaphysics.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Metaphysics", 3 | "description": "What is the origin of the Universe? What is its first cause? Is its existence necessary? Is I am real?", 4 | "icon": "minecraft:soul_lantern" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/categories/peripherals.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Peripherals", 3 | "description": "All the peripherals added by this mod.$(p)Use them to interact with other mods, players, the world and the game chat.", 4 | "icon": "advancedperipherals:chat_box" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/items/chunk_controller.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Chunk Controller", 3 | "icon": "advancedperipherals:chunk_controller", 4 | "category": "advancedperipherals:items", 5 | "pages": [ 6 | { 7 | "type": "text", 8 | "text": "The Chunk Controller is a crafting ingredient for the Chunky Turtle.$(p)Combine with a turtle or advanced turtle to make it chunk-loading!$(p)For the full documentation please see the $(9)$(l:https://docs.intelligence-modding.de/items/chunk_controller/)official wiki page$(/l)$()!" 9 | }, 10 | { 11 | "type": "crafting", 12 | "recipe": "advancedperipherals:chunk_controller" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/items/computer_tool.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Computer Tool", 3 | "icon": "advancedperipherals:computer_tool", 4 | "category": "advancedperipherals:items", 5 | "pages": [ 6 | { 7 | "type": "text", 8 | "text": "The Computer Tool is a tool to open GUI's from our blocks. Currently, the Computer Tool is useless, it's just a wonderful item.$(p)For the full documentation please see the $(9)$(l:https://docs.intelligence-modding.de/items/computer_tool/)official wiki page$(/l)$()!" 9 | }, 10 | { 11 | "type": "crafting", 12 | "recipe": "advancedperipherals:computer_tool" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/items/memory_card.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Memory Card", 3 | "icon": "advancedperipherals:memory_card", 4 | "category": "advancedperipherals:items", 5 | "pages": [ 6 | { 7 | "type": "text", 8 | "text": "The $(9)$(l:items/ar_goggles)AR Goggles$(/l)$() can be used in combination with the $(9)$(l:peripherals/inventory_manager)Inventory Manager$(/l)$() to communicate with the player's inventory.$(p)Right click with the Memory Card in hand to assign it to yourself.$(p)For the full documentation please see the $(9)$(l:https://docs.intelligence-modding.de/items/ar_goggles/)official wiki page$(/l)$()!" 9 | }, 10 | { 11 | "type": "crafting", 12 | "recipe": "advancedperipherals:memory_card" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/items/pocket_computers.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Pocket Computer Addons", 3 | "icon": "computercraft:pocket_computer_advanced", 4 | "category": "advancedperipherals:items", 5 | "pages": [ 6 | { 7 | "type": "text", 8 | "text": "We provide Pocket Computer upgrades for the following peripherals:$(li)$(9)$(l:peripherals/environment_detector)Environment Detector$(/l)$()$(li)$(9)$(l:peripherals/player_detector)Player Detector$(/l)$()$(li)$(9)$(l:peripherals/chat_box)Chat Box$(/l)$()$(p)For the full documentation please see the $(9)$(l:https://docs.intelligence-modding.de/items/pocket_computer/)official wiki page$(/l)$()!" 9 | }, 10 | { 11 | "type": "text", 12 | "text": "Simply combine these with a pocket computer to add the peripheral to it. Note that you can't use the associated events." 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/metaphysics/end_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "End automata core", 3 | "icon": "advancedperipherals:end_automata_core", 4 | "category": "advancedperipherals:metaphysics", 5 | "advancement": "advancedperipherals:weak_automata_core", 6 | "pages": [ 7 | { 8 | "type": "spotlight", 9 | "title": "End automata core", 10 | "item": "advancedperipherals:end_automata_core", 11 | "text": "After consuming 10 endermans, weak automata core will be transformed to end automata core!$(p)In addition to be more powerful weak automata core variant, seems, this soul also provide some limited teleportation abilities for turtle itself." 12 | }, 13 | { 14 | "type": "link", 15 | "text": "In additions to weak automata core abilities, this soul also allow limited world-bound teleportation. Seems, you need to store points and then teleport to them!$(p)But be aware, any stored points will be lost after turtle is broken.", 16 | "url": "https://docs.intelligence-modding.de/metaphysics/end_automata/", 17 | "link_text": "API documentation" 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/metaphysics/husbandry_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Husbandry automata core", 3 | "icon": "advancedperipherals:husbandry_automata_core", 4 | "category": "advancedperipherals:metaphysics", 5 | "advancement": "advancedperipherals:weak_automata_core", 6 | "pages": [ 7 | { 8 | "type": "spotlight", 9 | "title": "Husbandry automata core", 10 | "item": "advancedperipherals:husbandry_automata_core", 11 | "text": "After consuming 3 chickens, 3 cows, 3 sheeps, weak automata core will be transformed to husbandry automata core!$(p)In addition to be more powerful weak automata core variant, seems, this soul also provide abilities to interact with animals!" 12 | }, 13 | { 14 | "type": "link", 15 | "text": "In additions to weak automata core abilities, this core also allow to interact with animals and even transfer them inside!$(p)But be aware, any stored animal will be lost after turtle is broken.", 16 | "url": "https://docs.intelligence-modding.de/metaphysics/husbandry_automata/", 17 | "link_text": "API documentation" 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/metaphysics/intro.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Intro", 3 | "icon": "advancedperipherals:weak_automata_core", 4 | "category": "advancedperipherals:metaphysics", 5 | "priority": true, 6 | "pages": [ 7 | { 8 | "type": "text", 9 | "text": "This world hold many secrets from you. You feel, that even simple turtle can become a powerful tool to control reality, you just need to put something real inside it. Something more like ... soul?" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/peripherals/block_reader.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Block reader", 3 | "icon": "advancedperipherals:block_reader", 4 | "category": "advancedperipherals:peripherals", 5 | "pages": [ 6 | { 7 | "type": "text", 8 | "text": "This block is able to read data of blocks and tile entities in front of it.$(p)For the full documentation please see the $(9)$(l:https://docs.intelligence-modding.de/peripherals/block_reader/)official wiki page$(/l)$()!" 9 | }, 10 | { 11 | "type": "crafting", 12 | "recipe": "advancedperipherals:block_reader" 13 | }, 14 | { 15 | "type": "multiblock", 16 | "multiblock": { 17 | "mapping": { 18 | "0": "computercraft:computer_advanced", 19 | "P": "advancedperipherals:block_reader", 20 | "T": "minecraft:dirt" 21 | }, 22 | "pattern": [ 23 | [ 24 | "0PT" 25 | ] 26 | ] 27 | }, 28 | "text": "Connect your Block reader to a computer and target block to make use of it!" 29 | } 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/peripherals/chat_box.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Chat Box", 3 | "icon": "advancedperipherals:chat_box", 4 | "category": "advancedperipherals:peripherals", 5 | "pages": [ 6 | { 7 | "type": "text", 8 | "text": "The Chat Box peripheral allows you to interact with the game chat by sending and receiving messages.$(p)You can even send messages that are only visible for the Chat Box if you start your message with a `$`.$(p)For the full documentation please see the $(9)$(l:https://docs.intelligence-modding.de/peripherals/chat_box/)official wiki page$(/l)$()!" 9 | }, 10 | { 11 | "type": "crafting", 12 | "recipe": "advancedperipherals:chat_box" 13 | }, 14 | { 15 | "type": "multiblock", 16 | "multiblock": { 17 | "mapping": { 18 | "0": "computercraft:computer_advanced", 19 | "P": "advancedperipherals:chat_box" 20 | }, 21 | "pattern": [ 22 | [ 23 | "0P" 24 | ] 25 | ] 26 | }, 27 | "text": "Connect your Chat Box to a computer to make use of it!" 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/peripherals/colony_integrator.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Colony integrator", 3 | "icon": "advancedperipherals:colony_integrator", 4 | "category": "advancedperipherals:peripherals", 5 | "pages": [ 6 | { 7 | "type": "text", 8 | "text": "The colony integrator can interact with a colony from MineColonies..$(p)For the full documentation please see the $(9)$(l:https://docs.intelligence-modding.de/peripherals/colony_integrator/)official wiki page$(/l)$()!" 9 | }, 10 | { 11 | "type": "crafting", 12 | "recipe": "advancedperipherals:colony_integrator" 13 | }, 14 | { 15 | "type": "multiblock", 16 | "multiblock": { 17 | "mapping": { 18 | "0": "computercraft:computer_advanced", 19 | "P": "advancedperipherals:colony_integrator" 20 | }, 21 | "pattern": [ 22 | [ 23 | "0P" 24 | ] 25 | ] 26 | }, 27 | "text": "Connect your Colony integrator to a computer in area of village to make use of it!" 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/peripherals/energy_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Energy Detector", 3 | "icon": "advancedperipherals:energy_detector", 4 | "category": "advancedperipherals:peripherals", 5 | "pages": [ 6 | { 7 | "type": "text", 8 | "text": "The Energy Detector can detect energy flow and acts as a resistor. You can define the max flow rate to use it as a resistor.$(p)For the full documentation please see the $(9)$(l:https://docs.intelligence-modding.de/peripherals/energy_detector/)official wiki page$(/l)$()!" 9 | }, 10 | { 11 | "type": "crafting", 12 | "recipe": "advancedperipherals:energy_detector" 13 | }, 14 | { 15 | "type": "multiblock", 16 | "multiblock": { 17 | "mapping": { 18 | "0": "computercraft:computer_advanced", 19 | "P": "advancedperipherals:energy_detector" 20 | }, 21 | "pattern": [ 22 | [ 23 | "0P" 24 | ] 25 | ] 26 | }, 27 | "text": "Connect your Energy Detector to a computer to make use of it!" 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/peripherals/environment_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Environment Detector", 3 | "icon": "advancedperipherals:environment_detector", 4 | "category": "advancedperipherals:peripherals", 5 | "pages": [ 6 | { 7 | "type": "text", 8 | "text": "The Environment Detector is able to receive information from the environment like the current time, the current moon phase, the light level of the block and many more.$(p)For the full documentation please see the $(9)$(l:https://docs.intelligence-modding.de/peripherals/environment_detector/)official wiki page$(/l)$()!" 9 | }, 10 | { 11 | "type": "crafting", 12 | "recipe": "advancedperipherals:environment_detector" 13 | }, 14 | { 15 | "type": "multiblock", 16 | "multiblock": { 17 | "mapping": { 18 | "0": "computercraft:computer_advanced", 19 | "P": "advancedperipherals:environment_detector" 20 | }, 21 | "pattern": [ 22 | [ 23 | "0P" 24 | ] 25 | ] 26 | }, 27 | "text": "Connect your Environment Detector to a computer to make use of it!" 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/peripherals/geo_scanner.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Geo Scanner", 3 | "icon": "advancedperipherals:geo_scanner", 4 | "category": "advancedperipherals:peripherals", 5 | "pages": [ 6 | { 7 | "type": "text", 8 | "text": "The Geo Scanner provides information about blocks around and chunk where scanner located. Geo scanner has delay between scans, so you should be ready for this.$(p)For the full documentation please see the $(9)$(l:https://docs.intelligence-modding.de/peripherals/geo_scanner/)official wiki page$(/l)$()!" 9 | }, 10 | { 11 | "type": "crafting", 12 | "recipe": "advancedperipherals:geo_scanner" 13 | }, 14 | { 15 | "type": "multiblock", 16 | "multiblock": { 17 | "mapping": { 18 | "0": "computercraft:computer_advanced", 19 | "P": "advancedperipherals:geo_scanner" 20 | }, 21 | "pattern": [ 22 | [ 23 | "0P" 24 | ] 25 | ] 26 | }, 27 | "text": "Connect your Geo Scanner to a computer to make use of it!" 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/peripherals/inventory_manager.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Inventory Manager", 3 | "icon": "advancedperipherals:inventory_manager", 4 | "category": "advancedperipherals:peripherals", 5 | "pages": [ 6 | { 7 | "type": "text", 8 | "text": "The Inventory Manager can communicate with the player's inventory. You need to right click a Memory Card and put the card into the manager to use it.$(p)For the full documentation please see the $(9)$(l:https://docs.intelligence-modding.de/peripherals/inventory_manager/)official wiki page$(/l)$()!" 9 | }, 10 | { 11 | "type": "crafting", 12 | "recipe": "advancedperipherals:inventory_manager" 13 | }, 14 | { 15 | "type": "multiblock", 16 | "multiblock": { 17 | "mapping": { 18 | "0": "computercraft:computer_advanced", 19 | "P": "advancedperipherals:inventory_manager" 20 | }, 21 | "pattern": [ 22 | [ 23 | "0P" 24 | ] 25 | ] 26 | }, 27 | "text": "Connect your Inventory Manager to a computer to make use of it!" 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/peripherals/me_bridge.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ME Bridge", 3 | "icon": "advancedperipherals:me_bridge", 4 | "category": "advancedperipherals:peripherals", 5 | "pages": [ 6 | { 7 | "type": "text", 8 | "text": "The ME Bridge is able to interact with Applied Energistics 2. You can retrieve items, craft items, get all items as a list and more. The Me Bridge uses one channel.$(p)For the full documentation please see the $(9)$(l:https://docs.intelligence-modding.de/peripherals/me_bridge/)official wiki page$(/l)$()!" 9 | }, 10 | { 11 | "type": "crafting", 12 | "recipe": "advancedperipherals:me_bridge" 13 | }, 14 | { 15 | "type": "multiblock", 16 | "multiblock": { 17 | "mapping": { 18 | "0": "computercraft:computer_advanced", 19 | "P": "advancedperipherals:me_bridge" 20 | }, 21 | "pattern": [ 22 | [ 23 | "0P" 24 | ] 25 | ] 26 | }, 27 | "text": "Connect your ME Bridge to a computer to make use of it!" 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/peripherals/nbt_storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "NBT Storage", 3 | "icon": "advancedperipherals:nbt_storage", 4 | "category": "advancedperipherals:peripherals", 5 | "pages": [ 6 | { 7 | "type": "text", 8 | "text": "NBT Storage is custom block that allow input/output custom data to block. Mostly provided for ID support.$(p)For the full documentation please see the $(9)$(l:https://docs.intelligence-modding.de/peripherals/nbt_storage/)official wiki page$(/l)$()!" 9 | }, 10 | { 11 | "type": "crafting", 12 | "recipe": "advancedperipherals:nbt_storage" 13 | }, 14 | { 15 | "type": "multiblock", 16 | "multiblock": { 17 | "mapping": { 18 | "0": "computercraft:computer_advanced", 19 | "P": "advancedperipherals:nbt_storage" 20 | }, 21 | "pattern": [ 22 | [ 23 | "0P" 24 | ] 25 | ] 26 | }, 27 | "text": "Connect your NBT Storage to a computer to make use of it!" 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/peripherals/player_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Player Detector", 3 | "icon": "advancedperipherals:player_detector", 4 | "category": "advancedperipherals:peripherals", 5 | "pages": [ 6 | { 7 | "type": "text", 8 | "text": "The Player Detector is able to recognize players within a certain range. In addition, it recognizes the player who clicks on him.$(p)For the full documentation please see the $(9)$(l:https://docs.intelligence-modding.de/peripherals/player_detector/)official wiki page$(/l)$()!" 9 | }, 10 | { 11 | "type": "crafting", 12 | "recipe": "advancedperipherals:player_detector" 13 | }, 14 | { 15 | "type": "multiblock", 16 | "multiblock": { 17 | "mapping": { 18 | "0": "computercraft:computer_advanced", 19 | "P": "advancedperipherals:player_detector" 20 | }, 21 | "pattern": [ 22 | [ 23 | "0P" 24 | ] 25 | ] 26 | }, 27 | "text": "Connect your Player Detector to a computer to make use of it!" 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/patchouli_books/manual/en_us/entries/peripherals/rs_bridge.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "RS Bridge", 3 | "icon": "advancedperipherals:rs_bridge", 4 | "category": "advancedperipherals:peripherals", 5 | "pages": [ 6 | { 7 | "type": "text", 8 | "text": "The RS Bridge is able to interact with Refined Storage. You can retrieve items, craft items, get all items as a list and more.$(p)For the full documentation please see the $(9)$(l:https://docs.intelligence-modding.de/peripherals/rs_bridge/)official wiki page$(/l)$()!" 9 | }, 10 | { 11 | "type": "crafting", 12 | "recipe": "advancedperipherals:rs_bridge" 13 | }, 14 | { 15 | "type": "multiblock", 16 | "multiblock": { 17 | "mapping": { 18 | "0": "computercraft:computer_advanced", 19 | "P": "advancedperipherals:rs_bridge" 20 | }, 21 | "pattern": [ 22 | [ 23 | "0P" 24 | ] 25 | ] 26 | }, 27 | "text": "Connect your RS Bridge to a computer to make use of it!" 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/block_reader_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/block_reader_down.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/block_reader_east.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/block_reader_east.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/block_reader_north.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/block_reader_north.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/block_reader_north.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "interpolate": true, 4 | "frametime": 2 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/block_reader_south.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/block_reader_south.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/block_reader_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/block_reader_up.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/block_reader_west.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/block_reader_west.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/bottom.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/chat_box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/chat_box.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/chat_box_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/chat_box_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/chat_box_front.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "interpolate": false, 4 | "frametime": 2 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/chat_box_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/chat_box_top.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/colony_integrator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/colony_integrator.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/colony_integrator_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/colony_integrator_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/colony_integrator_front.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "interpolate": false, 4 | "frametime": 4 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/colony_integrator_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/colony_integrator_top.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/energy_detector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/energy_detector.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/energy_detector_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/energy_detector_back.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/energy_detector_east.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/energy_detector_east.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/energy_detector_east.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "interpolate": false, 4 | "frametime": 2 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/energy_detector_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/energy_detector_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/energy_detector_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/energy_detector_top.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/environment_detector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/environment_detector.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/environment_detector_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/environment_detector_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/environment_detector_front.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "interpolate": false, 4 | "frametime": 4 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/environment_detector_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/environment_detector_top.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/geo_scanner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/geo_scanner.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/geo_scanner_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/geo_scanner_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/geo_scanner_front.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "interpolate": true, 4 | "frametime": 4 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/geo_scanner_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/geo_scanner_top.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/inventory_manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/inventory_manager.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/inventory_manager_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/inventory_manager_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/inventory_manager_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/inventory_manager_top.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/me_bridge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/me_bridge.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/me_bridge_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/me_bridge_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/me_bridge_front.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "interpolate": false, 4 | "frametime": 2 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/me_bridge_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/me_bridge_top.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/nbt_storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/nbt_storage.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/nbt_storage_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/nbt_storage_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/nbt_storage_front.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "interpolate": false, 4 | "frametime": 2 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/nbt_storage_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/nbt_storage_top.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/peripheral_casing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/peripheral_casing.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/player_detector_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/player_detector_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/player_detector_side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/player_detector_side.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/player_detector_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/player_detector_top.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/redstone_integrator_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/redstone_integrator_bottom.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/redstone_integrator_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/redstone_integrator_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/redstone_integrator_front.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "interpolate": false, 4 | "frametime": 2 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/redstone_integrator_side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/redstone_integrator_side.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/redstone_integrator_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/redstone_integrator_top.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/rs_bridge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/rs_bridge.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/rs_bridge_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/rs_bridge_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/rs_bridge_front.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "interpolate": false, 4 | "frametime": 2 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/block/rs_bridge_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/block/rs_bridge_top.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/entity/villager/profession/computer_scientist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/entity/villager/profession/computer_scientist.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/entity/zombie_villager/profession/computer_scientist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/entity/zombie_villager/profession/computer_scientist.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/gui/inventory_manager_gui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/gui/inventory_manager_gui.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/item/book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/item/book.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/item/chunk_controller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/item/chunk_controller.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/item/computer_tool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/item/computer_tool.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/item/memory_card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/item/memory_card.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/item/metaphysics/base_gear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/item/metaphysics/base_gear.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/item/metaphysics/big_fire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/item/metaphysics/big_fire.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/item/metaphysics/big_fire_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/item/metaphysics/big_fire_green.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/item/metaphysics/big_fire_purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/item/metaphysics/big_fire_purple.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/item/metaphysics/fire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/item/metaphysics/fire.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/item/metaphysics/fire_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/item/metaphysics/fire_green.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/item/metaphysics/fire_purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/item/metaphysics/fire_purple.png -------------------------------------------------------------------------------- /src/main/resources/assets/advancedperipherals/textures/models/ar_goggles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/assets/advancedperipherals/textures/models/ar_goggles.png -------------------------------------------------------------------------------- /src/main/resources/data/advancedperipherals/advancements/base_toolkit.json: -------------------------------------------------------------------------------- 1 | { 2 | "display": { 3 | "icon": { 4 | "item": "advancedperipherals:redstone_integrator" 5 | }, 6 | "title": { 7 | "translate": "advancements.advancedperipherals.base_toolkit" 8 | }, 9 | "description": { 10 | "translate": "advancements.advancedperipherals.base_toolkit.description" 11 | } 12 | }, 13 | "parent": "advancedperipherals:root", 14 | "criteria": { 15 | "redstone_integrator_in_inventory": { 16 | "trigger": "minecraft:inventory_changed", 17 | "conditions": { 18 | "items": [ 19 | { 20 | "items": ["advancedperipherals:redstone_integrator"] 21 | } 22 | ] 23 | } 24 | }, 25 | "energy_detector_in_inventory": { 26 | "trigger": "minecraft:inventory_changed", 27 | "conditions": { 28 | "items": [ 29 | { 30 | "items": ["advancedperipherals:energy_detector"] 31 | } 32 | ] 33 | } 34 | }, 35 | "inventory_manager_in_inventory": { 36 | "trigger": "minecraft:inventory_changed", 37 | "conditions": { 38 | "items": [ 39 | { 40 | "items": ["advancedperipherals:inventory_manager"] 41 | } 42 | ] 43 | } 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /src/main/resources/data/advancedperipherals/advancements/end_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "display": { 3 | "frame": "challenge", 4 | "icon": { 5 | "item": "advancedperipherals:end_automata_core" 6 | }, 7 | "title": { 8 | "translate": "advancements.advancedperipherals.end_automata_core" 9 | }, 10 | "description": { 11 | "translate": "advancements.advancedperipherals.end_automata_core.description" 12 | } 13 | }, 14 | "parent": "advancedperipherals:weak_automata_core", 15 | "criteria": { 16 | "controller_in_inventory": { 17 | "trigger": "minecraft:inventory_changed", 18 | "conditions": { 19 | "items": [ 20 | { 21 | "items": ["advancedperipherals:end_automata_core"] 22 | } 23 | ] 24 | } 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /src/main/resources/data/advancedperipherals/advancements/husbandry_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "display": { 3 | "frame": "challenge", 4 | "icon": { 5 | "item": "advancedperipherals:husbandry_automata_core" 6 | }, 7 | "title": { 8 | "translate": "advancements.advancedperipherals.husbandry_automata_core" 9 | }, 10 | "description": { 11 | "translate": "advancements.advancedperipherals.husbandry_automata_core.description" 12 | } 13 | }, 14 | "parent": "advancedperipherals:weak_automata_core", 15 | "criteria": { 16 | "item_in_inventory": { 17 | "trigger": "minecraft:inventory_changed", 18 | "conditions": { 19 | "items": [ 20 | { 21 | "items": ["advancedperipherals:husbandry_automata_core"] 22 | } 23 | ] 24 | } 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /src/main/resources/data/advancedperipherals/advancements/nbt_toolkit.json: -------------------------------------------------------------------------------- 1 | { 2 | "display": { 3 | "icon": { 4 | "item": "advancedperipherals:nbt_storage" 5 | }, 6 | "title": { 7 | "translate": "advancements.advancedperipherals.nbt_toolkit" 8 | }, 9 | "description": { 10 | "translate": "advancements.advancedperipherals.nbt_toolkit.description" 11 | } 12 | }, 13 | "parent": "advancedperipherals:base_toolkit", 14 | "criteria": { 15 | "reader_in_inventory": { 16 | "trigger": "minecraft:inventory_changed", 17 | "conditions": { 18 | "items": [ 19 | { 20 | "items": ["advancedperipherals:block_reader"] 21 | } 22 | ] 23 | } 24 | }, 25 | "writer_in_inventory": { 26 | "trigger": "minecraft:inventory_changed", 27 | "conditions": { 28 | "items": [ 29 | { 30 | "items": ["advancedperipherals:nbt_storage"] 31 | } 32 | ] 33 | } 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/resources/data/advancedperipherals/advancements/root.json: -------------------------------------------------------------------------------- 1 | { 2 | "display": { 3 | "icon": { 4 | "item": "advancedperipherals:peripheral_casing" 5 | }, 6 | "title": { 7 | "translate": "advancements.advancedperipherals.root" 8 | }, 9 | "description": { 10 | "translate": "advancements.advancedperipherals.root.description" 11 | }, 12 | "background": "minecraft:textures/gui/advancements/backgrounds/stone.png" 13 | }, 14 | "criteria": { 15 | "item_in_inventory": { 16 | "trigger": "minecraft:inventory_changed", 17 | "conditions": { 18 | "items": [ 19 | { 20 | "items": ["advancedperipherals:peripheral_casing"] 21 | } 22 | ] 23 | } 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /src/main/resources/data/advancedperipherals/advancements/sense_toolkit.json: -------------------------------------------------------------------------------- 1 | { 2 | "display": { 3 | "icon": { 4 | "item": "advancedperipherals:geo_scanner" 5 | }, 6 | "title": { 7 | "translate": "advancements.advancedperipherals.sense_toolkit" 8 | }, 9 | "description": { 10 | "translate": "advancements.advancedperipherals.sense_toolkit.description" 11 | } 12 | }, 13 | "parent": "advancedperipherals:base_toolkit", 14 | "criteria": { 15 | "block_in_inventory": { 16 | "trigger": "minecraft:inventory_changed", 17 | "conditions": { 18 | "items": [ 19 | { 20 | "items": ["advancedperipherals:geo_scanner"] 21 | } 22 | ] 23 | } 24 | }, 25 | "environment_in_inventory": { 26 | "trigger": "minecraft:inventory_changed", 27 | "conditions": { 28 | "items": [ 29 | { 30 | "items": ["advancedperipherals:environment_detector"] 31 | } 32 | ] 33 | } 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/resources/data/advancedperipherals/advancements/weak_automata_core.json: -------------------------------------------------------------------------------- 1 | { 2 | "display": { 3 | "icon": { 4 | "item": "advancedperipherals:weak_automata_core" 5 | }, 6 | "title": { 7 | "translate": "advancements.advancedperipherals.weak_automata_core" 8 | }, 9 | "description": { 10 | "translate": "advancements.advancedperipherals.weak_automata_core.description" 11 | } 12 | }, 13 | "parent": "advancedperipherals:root", 14 | "criteria": { 15 | "item_in_inventory": { 16 | "trigger": "minecraft:inventory_changed", 17 | "conditions": { 18 | "items": [ 19 | { 20 | "items": ["advancedperipherals:weak_automata_core"] 21 | } 22 | ] 23 | } 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /src/main/resources/data/advancedperipherals/patchouli_books/manual/book.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Advanced Peripherals", 3 | "landing_text": "This manual provides basic information about all the peripherals added by this mod.$(p)For more information please see $(9)$(l:https://docs.intelligence-modding.de/)the official documentation$(/l)$().", 4 | "book_texture": "patchouli:textures/gui/book_blue.png", 5 | "model": "advancedperipherals:book", 6 | "creative_tab": "advancedperipheralstab", 7 | "version": 1, 8 | "use_resource_pack": true 9 | } 10 | -------------------------------------------------------------------------------- /src/main/resources/data/advancedperipherals/recipes/guide_book.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "pattern": [ 4 | "BM ", 5 | " ", 6 | " " 7 | ], 8 | "conditions": [ 9 | { 10 | "type": "forge:mod_loaded", 11 | "modid": "patchouli" 12 | } 13 | ], 14 | "key": { 15 | "B": { 16 | "item": "minecraft:book" 17 | }, 18 | "M": { 19 | "tag": "computercraft:wired_modem" 20 | } 21 | }, 22 | "result": { 23 | "item": "patchouli:guide_book", 24 | "nbt": { 25 | "patchouli:book": "advancedperipherals:manual" 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/main/resources/data/advancedperipherals/structures/villages/scientist_desert.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/data/advancedperipherals/structures/villages/scientist_desert.nbt -------------------------------------------------------------------------------- /src/main/resources/data/advancedperipherals/structures/villages/scientist_plains.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/data/advancedperipherals/structures/villages/scientist_plains.nbt -------------------------------------------------------------------------------- /src/main/resources/data/advancedperipherals/structures/villages/scientist_savanna.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/data/advancedperipherals/structures/villages/scientist_savanna.nbt -------------------------------------------------------------------------------- /src/main/resources/data/advancedperipherals/structures/villages/scientist_snowy.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/data/advancedperipherals/structures/villages/scientist_snowy.nbt -------------------------------------------------------------------------------- /src/main/resources/data/advancedperipherals/structures/villages/scientist_taiga.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/data/advancedperipherals/structures/villages/scientist_taiga.nbt -------------------------------------------------------------------------------- /src/main/resources/pack.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "pack": { 3 | "description": "Advanced peripherals resources", 4 | "pack_format": 8, 5 | "_comment": "A pack_format of 6 requires json lang files and some texture changes from 1.16.2. Note: we require v6 pack meta for all mods." 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/resources/pack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/main/resources/pack.png -------------------------------------------------------------------------------- /src/testMod/resources/META-INF/accesstransformer.cfg: -------------------------------------------------------------------------------- 1 | public net.minecraft.gametest.framework.TestCommand m_128010_(Lnet/minecraft/commands/CommandSourceStack;Ljava/lang/String;)I # exportTestStructure 2 | 3 | public net.minecraft.gametest.framework.GameTestHelper m_177448_()Lnet/minecraft/world/phys/AABB; # getBounds 4 | public net.minecraft.gametest.framework.GameTestHelper f_127595_ # testInfo 5 | 6 | public net.minecraft.gametest.framework.GameTestSequence f_127774_ # parent 7 | public net.minecraft.gametest.framework.MultipleTestTracker f_127798_ # tests -------------------------------------------------------------------------------- /src/testMod/resources/META-INF/mods.toml: -------------------------------------------------------------------------------- 1 | modLoader = "javafml" 2 | loaderVersion = "[30,)" 3 | 4 | issueTrackerURL = "https://github.com/SquidDev-CC/CC-Tweaked/issues" 5 | displayURL = "https://github.com/SquidDev-CC/CC-Tweaked" 6 | logoFile = "pack.png" 7 | 8 | credits = "Created by Daniel Ratcliffe (@DanTwoHundred)" 9 | authors = "Daniel Ratcliffe, Aaron Mills, SquidDev" 10 | license = "ComputerCraft Public License (https://raw.githubusercontent.com/dan200/ComputerCraft/master/LICENSE)" 11 | 12 | [[mods]] 13 | modId = "aptest" 14 | version = "1.0.0" 15 | displayName = "CC: Tweaked test framework" 16 | description = ''' 17 | A test framework for ensuring AP works correctly. Copied from CC:T code 18 | ''' 19 | -------------------------------------------------------------------------------- /src/testMod/resources/pack.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "pack": { 3 | "pack_format": 4, 4 | "description": "CC: Test" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/testMod/server-files/computers/computer/0/startup.lua: -------------------------------------------------------------------------------- 1 | local label = os.getComputerLabel() 2 | if label == nil then return test.fail("Label a computer to use it.") end 3 | 4 | local fn, err = loadfile("tests/" .. label .. ".lua", nil, _ENV) 5 | if not fn then return test.fail(err) end 6 | 7 | local ok, err = pcall(fn) 8 | if not ok then return test.fail(err) end 9 | 10 | print("Run " .. label) 11 | test.ok() 12 | -------------------------------------------------------------------------------- /src/testMod/server-files/computers/computer/0/tests/botania.manapool.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntelligenceModding/AdvancedPeripherals/c4904bafa0b50c93dcb834dd6b147d7ed296517b/src/testMod/server-files/computers/computer/0/tests/botania.manapool.lua -------------------------------------------------------------------------------- /src/testMod/server-files/computers/computer/0/tests/peripherals.geoscanner.lua: -------------------------------------------------------------------------------- 1 | local p = peripheral.find("geoScanner") 2 | test.assert(p, "There is no scanner") 3 | local result, err = p.scan(3) 4 | test.eq(nil, err, "Err should be nil") 5 | test.assert(result, "There is no scan result") 6 | sleep(2.5) 7 | result, err = p.chunkAnalyze() 8 | test.eq(nil, err, "Err should be nil") 9 | test.eq(result, {}, "Chunk analyze result should be empty") 10 | -------------------------------------------------------------------------------- /src/testMod/server-files/computers/ids.json: -------------------------------------------------------------------------------- 1 | { 2 | "computer": 0, 3 | "peripheral.monitor": 1, 4 | "peripheral.printer": 1 5 | } 6 | -------------------------------------------------------------------------------- /src/testMod/server-files/eula.txt: -------------------------------------------------------------------------------- 1 | # Automatically generated EULA. Please don't use this for a real server. 2 | eula=true 3 | -------------------------------------------------------------------------------- /src/testMod/server-files/server.properties: -------------------------------------------------------------------------------- 1 | # Minecraft server properties 2 | allow-flight=false 3 | allow-nether=true 4 | broadcast-console-to-ops=true 5 | broadcast-rcon-to-ops=true 6 | difficulty=easy 7 | enable-command-block=true 8 | enable-query=false 9 | enable-rcon=false 10 | enforce-whitelist=false 11 | force-gamemode=false 12 | function-permission-level=2 13 | gamemode=creative 14 | generate-structures=false 15 | generator-settings= 16 | hardcore=false 17 | level-name=world 18 | level-seed= 19 | level-type=flat 20 | max-build-height=256 21 | max-players=20 22 | max-tick-time=60000 23 | max-world-size=29999984 24 | motd=A testing server 25 | network-compression-threshold=256 26 | online-mode=false 27 | op-permission-level=4 28 | player-idle-timeout=0 29 | prevent-proxy-connections=false 30 | pvp=true 31 | query.port=25565 32 | rcon.password= 33 | rcon.port=25575 34 | resource-pack= 35 | resource-pack-sha1= 36 | server-ip= 37 | server-port=25565 38 | snooper-enabled=true 39 | spawn-animals=true 40 | spawn-monsters=true 41 | spawn-npcs=true 42 | spawn-protection=16 43 | use-native-transport=true 44 | view-distance=10 45 | white-list=false 46 | -------------------------------------------------------------------------------- /src/testMod/server-files/structures/dummytest.passing.snbt: -------------------------------------------------------------------------------- 1 | { 2 | DataVersion: 2730, 3 | size: [1, 1, 1], 4 | data: [ 5 | {pos: [0, 0, 0], state: "minecraft:cobblestone"}, 6 | ], 7 | entities: [], 8 | palette: [ 9 | "minecraft:cobblestone" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/testMod/server-files/structures/peripherals.geoscanner.snbt: -------------------------------------------------------------------------------- 1 | { 2 | DataVersion: 2730, 3 | size: [2, 2, 2], 4 | data: [ 5 | {pos: [0, 0, 0], state: "computercraft:computer_advanced{facing:north,state:blinking}", nbt: {ComputerId: 0, Label: "peripherals.geoscanner", On: 1b, id: "computercraft:computer_advanced"}}, 6 | {pos: [1, 0, 0], state: "advancedperipherals:geo_scanner"}, 7 | {pos: [0, 1, 0], state: "minecraft:air"}, 8 | {pos: [0, 0, 1], state: "minecraft:air"}, 9 | {pos: [1, 1, 0], state: "minecraft:air"}, 10 | {pos: [1, 0, 1], state: "minecraft:air"}, 11 | {pos: [0, 1, 1], state: "minecraft:air"}, 12 | {pos: [1, 1, 1], state: "minecraft:air"}, 13 | ], 14 | entities: [], 15 | palette: [ 16 | "computercraft:computer_advanced{facing:north,state:blinking}", 17 | "advancedperipherals:geo_scanner", 18 | "minecraft:air" 19 | ] 20 | } --------------------------------------------------------------------------------