diff --git a/src/generated/resources/assets/gregiceng/lang/en_ud.json b/src/generated/resources/assets/gregiceng/lang/en_ud.json index 8d2ff28..1391ea3 100644 --- a/src/generated/resources/assets/gregiceng/lang/en_ud.json +++ b/src/generated/resources/assets/gregiceng/lang/en_ud.json @@ -1,8 +1,14 @@ { "block.gregiceng.adv_stocking_bus": "snᗺ ʇnduI buıʞɔoʇS pǝɔuɐʌpⱯ ƎW", + "block.gregiceng.adv_stocking_bus.desc.0": "sǝɹnʇɔnɹʇs ʞɔoןq ıʇןnɯ oʇ sɯǝʇı ǝpıʌoɹd oʇ ʞɹoʍʇǝu ƎW ǝɥʇ uı sɯǝʇı buıs∩", + "block.gregiceng.adv_stocking_bus.desc.1": "ǝpoɯ ןןnd ɔıʇɐɯoʇnⱯ sɐH", "block.gregiceng.adv_stocking_hatch": "ɥɔʇɐH ʇnduI buıʞɔoʇS pǝɔuɐʌpⱯ ƎW", + "block.gregiceng.adv_stocking_hatch.desc.0": "sǝɹnʇɔnɹʇs ʞɔoןq ıʇןnɯ oʇ spınןɟ ǝpıʌoɹd oʇ ʞɹoʍʇǝu ƎW ǝɥʇ uı spınןɟ buıs∩", + "block.gregiceng.adv_stocking_hatch.desc.1": "ǝpoɯ ןןnd ɔıʇɐɯoʇnⱯ sɐH", "block.gregiceng.crafting_io_buffer": "ɹǝɟɟnᗺ OI buıʇɟɐɹƆ ƎW", - "block.gregiceng.crafting_io_buffer.desc.0": "", + "block.gregiceng.crafting_io_buffer.desc.0": "uǝʇʇɐd ㄣϛ uıɐʇuoɔ uɐɔ puɐ ʞɹoʍʇǝu ƎW ǝɥʇ oʇ pǝʇɔǝuuoɔ ǝq ʇsnW", + "block.gregiceng.crafting_io_buffer.desc.1": "sʇoןs ʇsʎןɐʇɐɔ pınןɟ puɐ sɯǝʇı 6 buıʌɐH", + "block.gregiceng.crafting_io_buffer.desc.2": "ʞɹoʍʇǝu ǝɥʇ oʇ ʞɔɐq ʍoןɟ ʍoןןⱯ", "block.gregiceng.crafting_io_slave": "ǝʌɐןS OI buıʇɟɐɹƆ ƎW", "block.gregiceng.crafting_io_slave.desc.0": "", "block.gregiceng.ev_input_buffer": "ɹǝɟɟnᗺ ʇnduI ΛƎϛ§", @@ -18,7 +24,9 @@ "block.gregiceng.opv_output_buffer": "ɹǝɟɟnᗺ ʇndʇnO ΛdOן§6§", "block.gregiceng.output_buffer.desc": "sʞɔoןqıʇןnW ɹoɟ ʇndʇnO pınןℲ puɐ ɯǝʇI", "block.gregiceng.stocking_bus": "snᗺ ʇnduI buıʞɔoʇS ƎW", + "block.gregiceng.stocking_bus.desc.0": "sǝɹnʇɔnɹʇs ʞɔoןq ıʇןnɯ oʇ sɯǝʇı ǝpıʌoɹd oʇ ʞɹoʍʇǝu ƎW ǝɥʇ uı sɯǝʇı buıs∩", "block.gregiceng.stocking_hatch": "ɥɔʇɐH ʇnduI buıʞɔoʇS ƎW", + "block.gregiceng.stocking_hatch.desc.0": "sǝɹnʇɔnɹʇs ʞɔoןq ıʇןnɯ oʇ spınןɟ ǝpıʌoɹd oʇ ʞɹoʍʇǝu ƎW ǝɥʇ uı spınןɟ buıs∩", "block.gregiceng.uev_input_buffer": "ɹǝɟɟnᗺ ʇnduI ΛƎ∩ɐ§", "block.gregiceng.uev_output_buffer": "ɹǝɟɟnᗺ ʇndʇnO ΛƎ∩ɐ§", "block.gregiceng.uhv_input_buffer": "ɹǝɟɟnᗺ ʇnduI ΛH∩ㄣ§", @@ -33,8 +41,8 @@ "block.gregiceng.zpm_output_buffer": "ɹǝɟɟnᗺ ʇndʇnO WԀZɔ§", "config.gregiceng.option.enableMoreAbility": "ǝʌɐןS/ɹǝɟɟnᗺ OI buıʇɟɐɹƆ ɹoɟ ʎʇıןıqⱯ ǝɹoW ǝןqɐuƎ", "config.jade.plugin_gregiceng.crafting_io_buffer": "ɹǝɟɟnᗺ OI buıʇɟɐɹƆ", - "gui.gregiceng.auto_pull_me.desc.disabled": "pǝןqɐsıp sı uɹnʇǝᴚ ɔıʇɐɯoʇnⱯ", - "gui.gregiceng.auto_pull_me.desc.enabled": "uo sı uɹnʇǝᴚ ɔıʇɐɯoʇnⱯ", + "gui.gregiceng.auto_pull_me.desc.disabled": "pǝןqɐsıp sı ןןnd ɔıʇɐɯoʇnⱯ", + "gui.gregiceng.auto_pull_me.desc.enabled": "uo sı ןןnd ɔıʇɐɯoʇnⱯ", "gui.gregiceng.automatic_return.desc.disabled": "pǝןqɐsıp sı uɹnʇǝᴚ ɔıʇɐɯoʇnⱯ", "gui.gregiceng.automatic_return.desc.enabled": "uo sı uɹnʇǝᴚ ɔıʇɐɯoʇnⱯ", "gui.gregiceng.refund_all.desc": "ןןnɟ uı sןɐıɹǝʇɐɯ ʍɐɹ punɟǝᴚ", diff --git a/src/generated/resources/assets/gregiceng/lang/en_us.json b/src/generated/resources/assets/gregiceng/lang/en_us.json index c163bc2..919e6f4 100644 --- a/src/generated/resources/assets/gregiceng/lang/en_us.json +++ b/src/generated/resources/assets/gregiceng/lang/en_us.json @@ -1,8 +1,14 @@ { "block.gregiceng.adv_stocking_bus": "ME Advanced Stocking Input Bus", + "block.gregiceng.adv_stocking_bus.desc.0": "Using items in the ME network to provide items to multi block structures", + "block.gregiceng.adv_stocking_bus.desc.1": "Has Automatic pull mode", "block.gregiceng.adv_stocking_hatch": "ME Advanced Stocking Input Hatch", + "block.gregiceng.adv_stocking_hatch.desc.0": "Using fluids in the ME network to provide fluids to multi block structures", + "block.gregiceng.adv_stocking_hatch.desc.1": "Has Automatic pull mode", "block.gregiceng.crafting_io_buffer": "ME Crafting IO Buffer", - "block.gregiceng.crafting_io_buffer.desc.0": "", + "block.gregiceng.crafting_io_buffer.desc.0": "Must be connected to the ME network and can contain 54 patten", + "block.gregiceng.crafting_io_buffer.desc.1": "Having 9 items and fluid catalyst slots", + "block.gregiceng.crafting_io_buffer.desc.2": "Allow flow back to the network", "block.gregiceng.crafting_io_slave": "ME Crafting IO Slave", "block.gregiceng.crafting_io_slave.desc.0": "", "block.gregiceng.ev_input_buffer": "§5EV Input Buffer", @@ -18,7 +24,9 @@ "block.gregiceng.opv_output_buffer": "§9§lOpV Output Buffer", "block.gregiceng.output_buffer.desc": "Item and Fluid Output for Multiblocks", "block.gregiceng.stocking_bus": "ME Stocking Input Bus", + "block.gregiceng.stocking_bus.desc.0": "Using items in the ME network to provide items to multi block structures", "block.gregiceng.stocking_hatch": "ME Stocking Input Hatch", + "block.gregiceng.stocking_hatch.desc.0": "Using fluids in the ME network to provide fluids to multi block structures", "block.gregiceng.uev_input_buffer": "§aUEV Input Buffer", "block.gregiceng.uev_output_buffer": "§aUEV Output Buffer", "block.gregiceng.uhv_input_buffer": "§4UHV Input Buffer", @@ -33,8 +41,8 @@ "block.gregiceng.zpm_output_buffer": "§cZPM Output Buffer", "config.gregiceng.option.enableMoreAbility": "Enable More Ability for Crafting IO Buffer/Slave", "config.jade.plugin_gregiceng.crafting_io_buffer": "Crafting IO Buffer", - "gui.gregiceng.auto_pull_me.desc.disabled": "Automatic Return is disabled", - "gui.gregiceng.auto_pull_me.desc.enabled": "Automatic Return is on", + "gui.gregiceng.auto_pull_me.desc.disabled": "Automatic pull is disabled", + "gui.gregiceng.auto_pull_me.desc.enabled": "Automatic pull is on", "gui.gregiceng.automatic_return.desc.disabled": "Automatic Return is disabled", "gui.gregiceng.automatic_return.desc.enabled": "Automatic Return is on", "gui.gregiceng.refund_all.desc": "Refund raw materials in full", diff --git a/src/generated/resources/assets/gregiceng/lang/zh_cn.json b/src/generated/resources/assets/gregiceng/lang/zh_cn.json index a381a11..70d0f97 100644 --- a/src/generated/resources/assets/gregiceng/lang/zh_cn.json +++ b/src/generated/resources/assets/gregiceng/lang/zh_cn.json @@ -1,10 +1,14 @@ { "block.gregiceng.adv_stocking_bus": "ME进阶存储输入总线", + "block.gregiceng.adv_stocking_bus.desc.0": "使用ME网络中的物品向多方块结构提供物品", + "block.gregiceng.adv_stocking_bus.desc.1": "拥有自动拉取功能", "block.gregiceng.adv_stocking_hatch": "ME进阶存储输入仓", + "block.gregiceng.adv_stocking_hatch.desc.0": "使用ME网络中的流体向多方块结构提供流体", + "block.gregiceng.adv_stocking_hatch.desc.1": "拥有自动拉取功能", "block.gregiceng.crafting_io_buffer": "ME样板IO总成", - "block.gregiceng.crafting_io_buffer.desc.0": "需与ME网络连接,可容纳54个样板,支持流体与物品的处理样板", - "block.gregiceng.crafting_io_buffer.desc.1": "分别拥有9个物品和流体的不消耗品槽", - "block.gregiceng.crafting_io_buffer.desc.2": "允许产物直接回流至网络", + "block.gregiceng.crafting_io_buffer.desc.0": "需与ME网络连接,可容纳54个样板", + "block.gregiceng.crafting_io_buffer.desc.1": "拥有9个物品和流体催化剂槽", + "block.gregiceng.crafting_io_buffer.desc.2": "允许回流至网络", "block.gregiceng.crafting_io_slave": "ME样板IO镜像", "block.gregiceng.crafting_io_slave.desc.0": "无需与ME网络连接,ME样板IO总成的镜像端", "block.gregiceng.crafting_io_slave.desc.1": "拥有被复制ME样板IO总成的所有配置,包括不消耗品和处理样板", @@ -23,7 +27,9 @@ "block.gregiceng.opv_output_buffer": "§9§lOpV§r输出总成", "block.gregiceng.output_buffer.desc": "为多方块结构输出物品和流体", "block.gregiceng.stocking_bus": "ME存储输入总线", + "block.gregiceng.stocking_bus.desc.0": "使用ME网络中的物品向多方块结构提供物品", "block.gregiceng.stocking_hatch": "ME存储输入仓", + "block.gregiceng.stocking_hatch.desc.0": "使用ME网络中的流体向多方块结构提供流体", "block.gregiceng.uev_input_buffer": "§aUEV§r输入总成", "block.gregiceng.uev_output_buffer": "§aUEV§r输出总成", "block.gregiceng.uhv_input_buffer": "§4UHV§r输入总成", @@ -38,8 +44,8 @@ "block.gregiceng.zpm_output_buffer": "§cZPM§r输出总成", "config.gregiceng.option.enableMoreAbility": "为样板IO总成/镜像启用更多能力", "config.jade.plugin_gregiceng.crafting_io_buffer": "样板IO总成", - "gui.gregiceng.auto_pull_me.desc.disabled": "自动回流已禁用", - "gui.gregiceng.auto_pull_me.desc.enabled": "自动回流已开启", + "gui.gregiceng.auto_pull_me.desc.disabled": "自动拉取已禁用", + "gui.gregiceng.auto_pull_me.desc.enabled": "自动拉取已开启", "gui.gregiceng.automatic_return.desc.disabled": "自动回流已禁用", "gui.gregiceng.automatic_return.desc.enabled": "自动回流已开启", "gui.gregiceng.refund_all.desc": "退回所有材料", diff --git a/src/main/java/com/epimorphismmc/gregiceng/api/misc/IConfigurableAESlotList.java b/src/main/java/com/epimorphismmc/gregiceng/api/misc/IConfigurableAESlotList.java index fa8dd3e..664d347 100644 --- a/src/main/java/com/epimorphismmc/gregiceng/api/misc/IConfigurableAESlotList.java +++ b/src/main/java/com/epimorphismmc/gregiceng/api/misc/IConfigurableAESlotList.java @@ -3,9 +3,22 @@ import appeng.api.stacks.AEKey; import org.jetbrains.annotations.Nullable; +import java.util.HashSet; +import java.util.Set; + public interface IConfigurableAESlotList { IConfigurableAESlot getAESlot(int index); int getSlots(); boolean hasConfig(@Nullable K key); void clearConfig(); + default Set getAEKeySet() { + Set keys = new HashSet<>(); + for (int i = 0; i < getSlots(); i++) { + var key = getAESlot(i).getConfig(); + if (key != null) { + keys.add(key); + } + } + return keys; + } } diff --git a/src/main/java/com/epimorphismmc/gregiceng/common/data/GEMachines.java b/src/main/java/com/epimorphismmc/gregiceng/common/data/GEMachines.java index 4e4a826..0f12581 100644 --- a/src/main/java/com/epimorphismmc/gregiceng/common/data/GEMachines.java +++ b/src/main/java/com/epimorphismmc/gregiceng/common/data/GEMachines.java @@ -58,7 +58,10 @@ public class GEMachines { .rotationState(RotationState.ALL) .abilities(PartAbility.IMPORT_ITEMS) .overlayTieredHullRenderer("adv_stocking_bus") - .tooltips(Component.translatable("block.gregiceng.adv_stocking_bus.desc.0")) + .tooltips( + Component.translatable("block.gregiceng.adv_stocking_bus.desc.0"), + Component.translatable("block.gregiceng.adv_stocking_bus.desc.1") + ) .register(); public static final MachineDefinition ADV_STOCKING_HATCH = registrate().machine("adv_stocking_hatch", AdvStockingHatchPartMachine::new) @@ -66,7 +69,10 @@ public class GEMachines { .rotationState(RotationState.ALL) .abilities(PartAbility.IMPORT_FLUIDS) .overlayTieredHullRenderer("adv_stocking_hatch") - .tooltips(Component.translatable("block.gregiceng.adv_stocking_hatch.desc.0")) + .tooltips( + Component.translatable("block.gregiceng.adv_stocking_hatch.desc.0"), + Component.translatable("block.gregiceng.adv_stocking_hatch.desc.1") + ) .register(); public static final MachineDefinition CRAFTING_IO_BUFFER = registrate().machine("crafting_io_buffer", CraftingIOBufferPartMachine::new) diff --git a/src/main/java/com/epimorphismmc/gregiceng/common/machine/multiblock/part/appeng/StockingBusPartMachine.java b/src/main/java/com/epimorphismmc/gregiceng/common/machine/multiblock/part/appeng/StockingBusPartMachine.java index 5b7cf74..883fc7b 100644 --- a/src/main/java/com/epimorphismmc/gregiceng/common/machine/multiblock/part/appeng/StockingBusPartMachine.java +++ b/src/main/java/com/epimorphismmc/gregiceng/common/machine/multiblock/part/appeng/StockingBusPartMachine.java @@ -1,8 +1,11 @@ package com.epimorphismmc.gregiceng.common.machine.multiblock.part.appeng; import appeng.api.networking.IGridNodeListener; +import appeng.api.networking.IStackWatcher; import appeng.api.networking.security.IActionSource; +import appeng.api.networking.storage.IStorageWatcherNode; import appeng.api.stacks.AEItemKey; +import appeng.api.stacks.AEKey; import appeng.me.ManagedGridNode; import com.epimorphismmc.gregiceng.api.machine.feature.multiblock.IMEStockingBus; import com.epimorphismmc.gregiceng.api.misc.ConfigurableAESlot; @@ -179,6 +182,20 @@ protected class ExportOnlyAEItemList extends NotifiableRecipeHandlerTrait implements IItemTransfer { diff --git a/src/main/java/com/epimorphismmc/gregiceng/common/machine/multiblock/part/appeng/StockingHatchPartMachine.java b/src/main/java/com/epimorphismmc/gregiceng/common/machine/multiblock/part/appeng/StockingHatchPartMachine.java index 93f1392..f1ade34 100644 --- a/src/main/java/com/epimorphismmc/gregiceng/common/machine/multiblock/part/appeng/StockingHatchPartMachine.java +++ b/src/main/java/com/epimorphismmc/gregiceng/common/machine/multiblock/part/appeng/StockingHatchPartMachine.java @@ -1,8 +1,11 @@ package com.epimorphismmc.gregiceng.common.machine.multiblock.part.appeng; import appeng.api.networking.IGridNodeListener; +import appeng.api.networking.IStackWatcher; import appeng.api.networking.security.IActionSource; +import appeng.api.networking.storage.IStorageWatcherNode; import appeng.api.stacks.AEFluidKey; +import appeng.api.stacks.AEKey; import appeng.me.ManagedGridNode; import com.epimorphismmc.gregiceng.api.machine.feature.multiblock.IMEStockingHatch; import com.epimorphismmc.gregiceng.api.misc.ConfigurableAESlot; @@ -124,6 +127,20 @@ protected class ExportOnlyAEFluidList extends NotifiableRecipeHandlerTrait