From 16003b93ba283393931e13f84f6ccd68c35b410c Mon Sep 17 00:00:00 2001 From: asdflj <854865755@qq.com> Date: Wed, 26 Oct 2022 10:54:28 +0800 Subject: [PATCH] update lang and fix dual interface infinity export fluid bug --- .../github/coremod/hooker/CoreModHooks.java | 9 ++++++--- .../DualityInterfaceTransformer.java | 19 +++++++++++++++++-- .../FluidConvertingInventoryAdaptor.java | 6 ++---- .../resources/assets/ae2fc/lang/zh_CN.lang | 5 +++++ 4 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/glodblock/github/coremod/hooker/CoreModHooks.java b/src/main/java/com/glodblock/github/coremod/hooker/CoreModHooks.java index 3b2e3d21..6f7da80e 100644 --- a/src/main/java/com/glodblock/github/coremod/hooker/CoreModHooks.java +++ b/src/main/java/com/glodblock/github/coremod/hooker/CoreModHooks.java @@ -9,8 +9,6 @@ import appeng.api.networking.storage.IStorageGrid; import appeng.api.storage.IMEInventory; import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; -import appeng.client.gui.implementations.GuiCraftConfirm; -import appeng.client.gui.implementations.GuiCraftingCPU; import appeng.crafting.MECraftingInventory; import appeng.me.MachineSet; import appeng.me.cluster.implementations.CraftingCPUCluster; @@ -189,9 +187,14 @@ public class CoreModHooks { public static boolean shouldShowTooltip(GuiContainer gui) { if (gui instanceof GuiFluidCraftConfirm) { - return ((GuiFluidCraftConfirm)gui).getHoveredStack() == null; + return ((GuiFluidCraftConfirm) gui).getHoveredStack() == null; } return true; } + public static void updateFluidTag(ItemStack whatToSend, ItemStack Result) { + if (Result != null && Result.getItem() instanceof ItemFluidPacket) { + whatToSend.setTagCompound(Result.getTagCompound()); + } + } } diff --git a/src/main/java/com/glodblock/github/coremod/transform/DualityInterfaceTransformer.java b/src/main/java/com/glodblock/github/coremod/transform/DualityInterfaceTransformer.java index 00cf5131..14dd6d67 100644 --- a/src/main/java/com/glodblock/github/coremod/transform/DualityInterfaceTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/transform/DualityInterfaceTransformer.java @@ -30,7 +30,7 @@ public class DualityInterfaceTransformer extends FCClassTransformer.ClassMapper case "pushItemsOut": case "pushPattern": case "isBusy": - return new TransformInvAdaptorCalls(api, super.visitMethod(access, name, desc, signature, exceptions)); + return new TransformInvAdaptorCalls(api, super.visitMethod(access, name, desc, signature, exceptions), name); default: return super.visitMethod(access, name, desc, signature, exceptions); } @@ -39,9 +39,24 @@ public class DualityInterfaceTransformer extends FCClassTransformer.ClassMapper } private static class TransformInvAdaptorCalls extends MethodVisitor { + private final String name; + private int const_1 = 0; - TransformInvAdaptorCalls(int api, MethodVisitor mv) { + private TransformInvAdaptorCalls(int api, MethodVisitor mv, String name) { super(api, mv); + this.name = name; + } + + @Override + public void visitFieldInsn(int opcode, String owner, String name, String desc) { + super.visitFieldInsn(opcode, owner, name, desc); + if (this.name.equals("pushItemsOut") && opcode == Opcodes.PUTFIELD && const_1 == 0) { +// update fluid tag + super.visitVarInsn(Opcodes.ALOAD, 5); + super.visitVarInsn(Opcodes.ALOAD, 10); + super.visitMethodInsn(Opcodes.INVOKESTATIC, "com/glodblock/github/coremod/hooker/CoreModHooks", "updateFluidTag", "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V", false); + const_1++; + } } @Override diff --git a/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryAdaptor.java b/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryAdaptor.java index 7ba7ac1b..ebf9cd5b 100644 --- a/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryAdaptor.java +++ b/src/main/java/com/glodblock/github/inventory/FluidConvertingInventoryAdaptor.java @@ -29,12 +29,10 @@ import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; import javax.annotation.Nullable; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import java.util.Collections; import java.util.Iterator; -import java.util.List; import java.util.LinkedList; +import java.util.List; public class FluidConvertingInventoryAdaptor extends InventoryAdaptor { @@ -84,7 +82,7 @@ public class FluidConvertingInventoryAdaptor extends InventoryAdaptor { fluid = ItemFluidDrop.getFluidStack(toBeAdded); } - if (fluid != null) { + if (fluid != null && invFluids.canFill(side, fluid.getFluid())) { int filled = invFluids.fill(side, fluid, true); if (filled > 0) { fluid.amount -= filled; diff --git a/src/main/resources/assets/ae2fc/lang/zh_CN.lang b/src/main/resources/assets/ae2fc/lang/zh_CN.lang index 04f3755a..a12846d5 100644 --- a/src/main/resources/assets/ae2fc/lang/zh_CN.lang +++ b/src/main/resources/assets/ae2fc/lang/zh_CN.lang @@ -1,5 +1,6 @@ item.fluid_drop.name=%s液滴 item.fluid_encoded_pattern.name=编码样板 +item.part_fluid_terminal.name=ME流体终端 item.part_fluid_pattern_terminal.name=ME流体样板终端 item.part_fluid_pattern_terminal_ex.name=ME增广流体样板终端 item.part_fluid_interface.name=ME二合一接口 @@ -63,4 +64,8 @@ ae2fc.gui.oc_pattern_editor=OC样板编辑器 ae2fc.gui.button.set=设置 ae2fc.gui.part_fluid_import=ME流体输入总线 ae2fc.gui.part_fluid_export=ME流体输出总线 +ae2fc.gui.part_fluid_terminal=流体终端 + +error.unknown=未知流体 + itemGroup.ae2fc=AE2流体合成套件重置