From 213b43d21362b8519fcd94279f6a59edc9dee4b5 Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Sun, 12 Jun 2022 23:30:30 +0800 Subject: [PATCH 1/5] allow code fluid container --- .../github/client/gui/GuiFCBaseMonitor.java | 13 ++++++++++++- .../container/ContainerFluidPatternTerminal.java | 14 +++++++++----- .../container/ContainerFluidPatternTerminalEx.java | 8 ++++++++ 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFCBaseMonitor.java b/src/main/java/com/glodblock/github/client/gui/GuiFCBaseMonitor.java index ba7f3a50..64f9f6c4 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFCBaseMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFCBaseMonitor.java @@ -376,7 +376,18 @@ public class GuiFCBaseMonitor extends AEBaseMEGui implements ISortSource, IConfi if( slot instanceof SlotFake) { - final InventoryAction action = ctrlDown == 1 ? InventoryAction.SPLIT_OR_PLACE_SINGLE : InventoryAction.PICKUP_OR_SET_DOWN; + InventoryAction action = ctrlDown == 1 ? InventoryAction.SPLIT_OR_PLACE_SINGLE : InventoryAction.PICKUP_OR_SET_DOWN; + + if (Keyboard.isKeyDown(Keyboard.KEY_LMENU) || Keyboard.isKeyDown(Keyboard.KEY_RMENU)) { + if (action == InventoryAction.SPLIT_OR_PLACE_SINGLE) { + action = InventoryAction.MOVE_REGION; + } + else { + action = InventoryAction.PICKUP_SINGLE; + } + } + + System.out.print(action + "\n"); if( Ae2ReflectClient.getDragClick(this).size() > 1 ) { diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminal.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminal.java index a86e0bb0..489a0bad 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminal.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminal.java @@ -140,6 +140,7 @@ public class ContainerFluidPatternTerminal extends FCBasePartContainer implement @Override public void doAction(EntityPlayerMP player, InventoryAction action, int slotId, long id) { + System.out.print(action + "\n"); if (this.isCraftingMode()) { super.doAction(player, action, slotId, id); return; @@ -148,6 +149,14 @@ public class ContainerFluidPatternTerminal extends FCBasePartContainer implement super.doAction(player, action, slotId, id); return; } + if (action == InventoryAction.MOVE_REGION) { + super.doAction(player, InventoryAction.SPLIT_OR_PLACE_SINGLE, slotId, id); + return; + } + if (action == InventoryAction.PICKUP_SINGLE) { + super.doAction(player, InventoryAction.PICKUP_OR_SET_DOWN, slotId, id); + return; + } Slot slot = getSlot(slotId); ItemStack stack = player.inventory.getItemStack(); if (Util.getFluidFromItem(stack) == null || Util.getFluidFromItem(stack).amount <= 0) { @@ -177,11 +186,6 @@ public class ContainerFluidPatternTerminal extends FCBasePartContainer implement } return; } - if (action == InventoryAction.SPLIT_OR_PLACE_SINGLE) { - if (stack == null && slot.getStack() != null && slot.getStack().getItem() instanceof ItemFluidPacket) { - return; - } - } super.doAction(player, action, slotId, id); } diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminalEx.java index 4ba4fb91..100c7381 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminalEx.java @@ -141,6 +141,14 @@ public class ContainerFluidPatternTerminalEx extends FCBasePartContainerEx imple super.doAction(player, action, slotId, id); return; } + if (action == InventoryAction.MOVE_REGION) { + super.doAction(player, InventoryAction.SPLIT_OR_PLACE_SINGLE, slotId, id); + return; + } + if (action == InventoryAction.PICKUP_SINGLE) { + super.doAction(player, InventoryAction.PICKUP_OR_SET_DOWN, slotId, id); + return; + } Slot slot = getSlot(slotId); ItemStack stack = player.inventory.getItemStack(); if (Util.getFluidFromItem(stack) == null || Util.getFluidFromItem(stack).amount <= 0) { From 12565b1389ecf0557652117e9a8af9813b12eb81 Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Mon, 13 Jun 2022 10:24:38 +0800 Subject: [PATCH 2/5] fluid display --- .../github/client/gui/GuiFCBaseMonitor.java | 2 - .../client/gui/GuiFluidCraftConfirm.java | 7 ++- .../container/ContainerFluidConfigurable.java | 5 +- .../ContainerFluidPatternTerminal.java | 1 - .../github/common/item/ItemFluidPacket.java | 29 ++++++++++ .../common/parts/PartSharedFluidBus.java | 5 +- .../github/coremod/FCClassTransformer.java | 9 +-- .../github/coremod/hooker/CoreModHooks.java | 10 ++++ .../transform/GuiCraftingTransformer.java | 58 +++++++++++++++++++ 9 files changed, 108 insertions(+), 18 deletions(-) create mode 100644 src/main/java/com/glodblock/github/coremod/transform/GuiCraftingTransformer.java diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFCBaseMonitor.java b/src/main/java/com/glodblock/github/client/gui/GuiFCBaseMonitor.java index 64f9f6c4..4eb35203 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFCBaseMonitor.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFCBaseMonitor.java @@ -387,8 +387,6 @@ public class GuiFCBaseMonitor extends AEBaseMEGui implements ISortSource, IConfi } } - System.out.print(action + "\n"); - if( Ae2ReflectClient.getDragClick(this).size() > 1 ) { return; diff --git a/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftConfirm.java b/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftConfirm.java index 13aca3f4..465b915c 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftConfirm.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiFluidCraftConfirm.java @@ -13,6 +13,7 @@ import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.ContainerFluidCraftConfirm; import com.glodblock.github.common.parts.PartFluidPatternTerminal; import com.glodblock.github.common.parts.PartFluidPatternTerminalEx; +import com.glodblock.github.coremod.hooker.CoreModHooks; import com.glodblock.github.inventory.gui.GuiType; import com.glodblock.github.network.CPacketFluidPatternTermBtns; import com.glodblock.github.network.CPacketSwitchGuis; @@ -252,7 +253,7 @@ public class GuiFluidCraftConfirm extends AEBaseGui { if( this.tooltip == z - viewStart ) { - lineList.add( GuiText.FromStorage.getLocal() + ": " + Long.toString( stored.getStackSize() ) ); + lineList.add( GuiText.FromStorage.getLocal() + ": " + stored.getStackSize()); } downY += 5; @@ -277,7 +278,7 @@ public class GuiFluidCraftConfirm extends AEBaseGui { if( this.tooltip == z - viewStart ) { - lineList.add( GuiText.Missing.getLocal() + ": " + Long.toString( missingStack.getStackSize() ) ); + lineList.add( GuiText.Missing.getLocal() + ": " + missingStack.getStackSize()); } red = true; @@ -310,7 +311,7 @@ public class GuiFluidCraftConfirm extends AEBaseGui { final int posX = x * ( 1 + sectionLength ) + xo + sectionLength - 19; final int posY = y * offY + yo; - final ItemStack is = refStack.copy().getItemStack(); + final ItemStack is = CoreModHooks.displayFluid(refStack.copy()); if( this.tooltip == z - viewStart ) { diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidConfigurable.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidConfigurable.java index bddb43f2..b9739e6e 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidConfigurable.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidConfigurable.java @@ -131,10 +131,7 @@ public abstract class ContainerFluidConfigurable extends ContainerUpgradeable { public void setFluid(int id, IAEFluidStack fluidStack) { final AppEngInternalAEInventory inv = this.getFakeFluidInv(); if (inv != null && this.isValidForConfig(id, AEFluidStack.create(fluidStack))) { - ItemStack tmp = ItemFluidPacket.newStack(fluidStack.getFluidStack()); - if (tmp != null) { - tmp.setStackDisplayName(fluidStack.getFluidStack().getLocalizedName()); - } + ItemStack tmp = ItemFluidPacket.newDisplayStack(fluidStack.getFluidStack()); inv.setInventorySlotContents(id, tmp); } } diff --git a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminal.java b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminal.java index 489a0bad..bbc35d7b 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminal.java +++ b/src/main/java/com/glodblock/github/client/gui/container/ContainerFluidPatternTerminal.java @@ -140,7 +140,6 @@ public class ContainerFluidPatternTerminal extends FCBasePartContainer implement @Override public void doAction(EntityPlayerMP player, InventoryAction action, int slotId, long id) { - System.out.print(action + "\n"); if (this.isCraftingMode()) { super.doAction(player, action, slotId, id); return; diff --git a/src/main/java/com/glodblock/github/common/item/ItemFluidPacket.java b/src/main/java/com/glodblock/github/common/item/ItemFluidPacket.java index 47f64fdb..7cd67416 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemFluidPacket.java +++ b/src/main/java/com/glodblock/github/common/item/ItemFluidPacket.java @@ -34,6 +34,10 @@ public class ItemFluidPacket extends Item { @Override public String getItemStackDisplayName(ItemStack stack) { FluidStack fluid = getFluidStack(stack); + boolean display = isDisplay(stack); + if (display) { + return fluid != null ? fluid.getLocalizedName() : super.getItemStackDisplayName(stack); + } return fluid != null ? String.format("%s, %,d mB", fluid.getLocalizedName(), fluid.amount) : super.getItemStackDisplayName(stack); } @@ -42,6 +46,8 @@ public class ItemFluidPacket extends Item { @SuppressWarnings("unchecked") public void addInformation(ItemStack stack, EntityPlayer player, List tooltip, boolean flags) { FluidStack fluid = getFluidStack(stack); + boolean display = isDisplay(stack); + if (display) return; if (fluid != null) { for (String line : StatCollector.translateToLocalFormatted(NameConst.TT_FLUID_PACKET).split("\\\\n")) { tooltip.add(EnumChatFormatting.GRAY + line); @@ -51,6 +57,13 @@ public class ItemFluidPacket extends Item { } } + public static boolean isDisplay(ItemStack stack) { + if (stack == null || !stack.hasTagCompound() || stack.getTagCompound() == null) { + return false; + } + return stack.getTagCompound().getBoolean("DisplayOnly"); + } + public static FluidStack getFluidStack(ItemStack stack) { if (stack == null || !stack.hasTagCompound()) { return null; @@ -76,6 +89,22 @@ public class ItemFluidPacket extends Item { return stack; } + public static ItemStack newDisplayStack(@Nullable FluidStack fluid) { + if (fluid == null) { + return null; + } + FluidStack copy = fluid.copy(); + copy.amount = 1000; + ItemStack stack = new ItemStack(ItemAndBlockHolder.PACKET); + NBTTagCompound tag = new NBTTagCompound(); + NBTTagCompound fluidTag = new NBTTagCompound(); + copy.writeToNBT(fluidTag); + tag.setTag("FluidStack", fluidTag); + tag.setBoolean("DisplayOnly", true); + stack.setTagCompound(tag); + return stack; + } + @Nullable public static IAEItemStack newAeStack(@Nullable FluidStack fluid) { return AEItemStack.create(newStack(fluid)); diff --git a/src/main/java/com/glodblock/github/common/parts/PartSharedFluidBus.java b/src/main/java/com/glodblock/github/common/parts/PartSharedFluidBus.java index 5b09226f..281edde8 100644 --- a/src/main/java/com/glodblock/github/common/parts/PartSharedFluidBus.java +++ b/src/main/java/com/glodblock/github/common/parts/PartSharedFluidBus.java @@ -163,10 +163,7 @@ public abstract class PartSharedFluidBus extends PartUpgradeable implements IGri } public void setFluidInSlot(int id, IAEFluidStack fluid) { - ItemStack tmp = ItemFluidPacket.newStack(fluid == null ? null : fluid.getFluidStack()); - if (tmp != null) { - tmp.setStackDisplayName(fluid.getFluidStack().getLocalizedName()); - } + ItemStack tmp = ItemFluidPacket.newDisplayStack(fluid == null ? null : fluid.getFluidStack()); this.config.setInventorySlotContents(id, tmp); } diff --git a/src/main/java/com/glodblock/github/coremod/FCClassTransformer.java b/src/main/java/com/glodblock/github/coremod/FCClassTransformer.java index 304af551..e13c9dc6 100644 --- a/src/main/java/com/glodblock/github/coremod/FCClassTransformer.java +++ b/src/main/java/com/glodblock/github/coremod/FCClassTransformer.java @@ -1,9 +1,6 @@ package com.glodblock.github.coremod; -import com.glodblock.github.coremod.transform.ContainerInterfaceTerminalTransformer; -import com.glodblock.github.coremod.transform.CraftingCpuTransformer; -import com.glodblock.github.coremod.transform.CraftingTreeNodeTransformer; -import com.glodblock.github.coremod.transform.DualityInterfaceTransformer; +import com.glodblock.github.coremod.transform.*; import net.minecraft.launchwrapper.IClassTransformer; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassVisitor; @@ -27,6 +24,10 @@ public class FCClassTransformer implements IClassTransformer { case "appeng.container.implementations.ContainerInterfaceTerminal": tform = ContainerInterfaceTerminalTransformer.INSTANCE; break; + case "appeng.client.gui.implementations.GuiCraftingCPU": + case "appeng.client.gui.implementations.GuiCraftConfirm": + tform = GuiCraftingTransformer.INSTANCE; + break; default: return code; } 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 5b777cd4..21bae394 100644 --- a/src/main/java/com/glodblock/github/coremod/hooker/CoreModHooks.java +++ b/src/main/java/com/glodblock/github/coremod/hooker/CoreModHooks.java @@ -21,8 +21,10 @@ import com.glodblock.github.util.SetBackedMachineSet; import com.glodblock.github.util.Util; import com.google.common.collect.Sets; import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; import javax.annotation.Nullable; import java.util.HashSet; @@ -88,4 +90,12 @@ public class CoreModHooks { } } + public static ItemStack displayFluid(IAEItemStack aeStack) { + if (aeStack.getItemStack() != null && aeStack.getItemStack().getItem() instanceof ItemFluidDrop) { + FluidStack fluid = ItemFluidDrop.getFluidStack(aeStack.getItemStack()); + return ItemFluidPacket.newDisplayStack(fluid); + } + else return aeStack.getItemStack(); + } + } diff --git a/src/main/java/com/glodblock/github/coremod/transform/GuiCraftingTransformer.java b/src/main/java/com/glodblock/github/coremod/transform/GuiCraftingTransformer.java new file mode 100644 index 00000000..5fb3344d --- /dev/null +++ b/src/main/java/com/glodblock/github/coremod/transform/GuiCraftingTransformer.java @@ -0,0 +1,58 @@ +package com.glodblock.github.coremod.transform; + +import com.glodblock.github.coremod.FCClassTransformer; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; + +public class GuiCraftingTransformer extends FCClassTransformer.ClassMapper { + + public static final GuiCraftingTransformer INSTANCE = new GuiCraftingTransformer(); + + private GuiCraftingTransformer() { + // NO-OP + } + + @Override + protected ClassVisitor getClassMapper(ClassVisitor downstream) { + return new TransformGuiCrafting(Opcodes.ASM5, downstream); + } + + private static class TransformGuiCrafting extends ClassVisitor { + + TransformGuiCrafting(int api, ClassVisitor cv) { + super(api, cv); + } + + @Override + public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { + if ("drawFG".equals(name)) { + return new TransformFluidIcon(api, super.visitMethod(access, name, desc, signature, exceptions)); + } + return super.visitMethod(access, name, desc, signature, exceptions); + } + + } + + private static class TransformFluidIcon extends MethodVisitor { + + TransformFluidIcon(int api, MethodVisitor mv) { + super(api, mv); + } + + @Override + public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) { + if (opcode == Opcodes.INVOKEINTERFACE && owner.equals("appeng/api/storage/data/IAEItemStack") && name.equals("getItemStack")) { + super.visitMethodInsn(Opcodes.INVOKESTATIC, + "com/glodblock/github/coremod/hooker/CoreModHooks", + "displayFluid", + "(Lappeng/api/storage/data/IAEItemStack;)Lnet/minecraft/item/ItemStack;", + false); + } + else { + super.visitMethodInsn(opcode, owner, name, desc, itf); + } + } + + } +} From e1213b2d5a0a4d91ba45c2c5390ce19cb495db48 Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Mon, 13 Jun 2022 10:36:41 +0800 Subject: [PATCH 3/5] small clean up --- .../gui/GuiBaseFluidPatternTerminalEx.java | 5 ---- .../gui/container/FCBasePartContainerEx.java | 23 ++++--------------- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java b/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java index da71136d..701b86da 100644 --- a/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java +++ b/src/main/java/com/glodblock/github/client/gui/GuiBaseFluidPatternTerminalEx.java @@ -6,11 +6,9 @@ import appeng.api.config.Settings; import appeng.api.storage.ITerminalHost; import appeng.client.gui.widgets.GuiImgButton; import appeng.container.slot.AppEngSlot; -import appeng.core.localization.GuiText; import com.glodblock.github.FluidCraft; import com.glodblock.github.client.gui.container.FCBasePartContainerEx; import com.glodblock.github.network.CPacketFluidPatternTermBtns; -import com.glodblock.github.util.Ae2Reflect; import com.glodblock.github.util.Ae2ReflectClient; import com.glodblock.github.util.ModAndClassUtil; import com.glodblock.github.util.NameConst; @@ -24,9 +22,6 @@ public class GuiBaseFluidPatternTerminalEx extends GuiFCBaseMonitor { private static final String SUBSITUTION_DISABLE = "0"; private static final String SUBSITUTION_ENABLE = "1"; - private static final String CRAFTMODE_CRFTING = "1"; - private static final String CRAFTMODE_PROCESSING = "0"; - public FCBasePartContainerEx container; private GuiImgButton substitutionsEnabledBtn; diff --git a/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java b/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java index 6592b23c..77f6b15a 100644 --- a/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java +++ b/src/main/java/com/glodblock/github/client/gui/container/FCBasePartContainerEx.java @@ -6,7 +6,6 @@ import appeng.api.storage.ITerminalHost; import appeng.container.guisync.GuiSync; import appeng.container.slot.*; import appeng.helpers.IContainerCraftingPacket; -import appeng.tile.inventory.AppEngInternalInventory; import appeng.tile.inventory.IAEAppEngInventory; import appeng.tile.inventory.InvOperation; import appeng.util.Platform; @@ -16,7 +15,9 @@ import com.glodblock.github.common.parts.PartFluidPatternTerminalEx; import com.glodblock.github.util.Util; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.*; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; @@ -32,8 +33,6 @@ import java.util.stream.Collectors; public class FCBasePartContainerEx extends FCBaseMonitorContain implements IAEAppEngInventory, IOptionalSlotHost, IContainerCraftingPacket { private final PartFluidPatternTerminalEx patternTerminal; - private final AppEngInternalInventory cOut = new AppEngInternalInventory( null, 1 ); - private final IInventory crafting; protected final SlotFakeCraftingMatrix[] craftingSlots = new SlotFakeCraftingMatrix[16]; protected final OptionalSlotFake[] outputSlots = new OptionalSlotFake[4]; protected final SlotRestrictedInput patternSlotIN; @@ -49,13 +48,13 @@ public class FCBasePartContainerEx extends FCBaseMonitorContain implements IAEAp final IInventory patternInv = this.getPatternTerminal().getInventoryByName( "pattern" ); final IInventory output = this.getPatternTerminal().getInventoryByName( "output" ); - this.crafting = this.getPatternTerminal().getInventoryByName( "crafting" ); + IInventory crafting = this.getPatternTerminal().getInventoryByName("crafting"); for( int y = 0; y < 4; y++ ) { for( int x = 0; x < 4; x++ ) { - this.addSlotToContainer( this.craftingSlots[x + y * 4] = new SlotFakeCraftingMatrix( this.crafting, x + y * 4, 15 + x * 18, -83 + y * 18 ) ); + this.addSlotToContainer( this.craftingSlots[x + y * 4] = new SlotFakeCraftingMatrix(crafting, x + y * 4, 15 + x * 18, -83 + y * 18 ) ); } } @@ -323,13 +322,6 @@ public class FCBasePartContainerEx extends FCBaseMonitorContain implements IAEAp return false; } - public void toggleSubstitute() - { - this.substitute = !this.substitute; - - this.detectAndSendChanges(); - } - public PartFluidPatternTerminalEx getPatternTerminal() { return this.patternTerminal; @@ -340,11 +332,6 @@ public class FCBasePartContainerEx extends FCBaseMonitorContain implements IAEAp return this.substitute; } - public void setSubstitute( final boolean substitute ) - { - this.substitute = substitute; - } - static boolean canDoubleStacks(SlotFake[] slots) { List enabledSlots = Arrays.stream(slots).filter(SlotFake::isEnabled).collect(Collectors.toList()); From bb600eed3f2936c059ac6fef7dae6930454c2906 Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Sat, 18 Jun 2022 17:18:24 +0800 Subject: [PATCH 4/5] imp inventory for decoder --- .../common/tile/TileFluidPacketDecoder.java | 62 ++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/glodblock/github/common/tile/TileFluidPacketDecoder.java b/src/main/java/com/glodblock/github/common/tile/TileFluidPacketDecoder.java index 0aea4e25..c31ce0da 100644 --- a/src/main/java/com/glodblock/github/common/tile/TileFluidPacketDecoder.java +++ b/src/main/java/com/glodblock/github/common/tile/TileFluidPacketDecoder.java @@ -22,12 +22,13 @@ import appeng.tile.inventory.InvOperation; import appeng.util.Platform; import appeng.util.item.AEFluidStack; import com.glodblock.github.common.item.ItemFluidPacket; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; -public class TileFluidPacketDecoder extends AENetworkTile implements IGridTickable, IAEAppEngInventory { +public class TileFluidPacketDecoder extends AENetworkTile implements IGridTickable, IAEAppEngInventory, IInventory { private final AppEngInternalInventory inventory = new AppEngInternalInventory(this, 1); private final BaseActionSource ownActionSource = new MachineSource(this); @@ -99,4 +100,63 @@ public class TileFluidPacketDecoder extends AENetworkTile implements IGridTickab inventory.readFromNBT(data, "Inventory"); } + @Override + public int getSizeInventory() { + return inventory.getSizeInventory(); + } + + @Override + public ItemStack getStackInSlot(int slot) { + return inventory.getStackInSlot(slot); + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + return inventory.decrStackSize(slot, amount); + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + return inventory.getStackInSlotOnClosing(slot); + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + inventory.setInventorySlotContents(slot, stack); + } + + @Override + public String getInventoryName() { + return inventory.getInventoryName(); + } + + @Override + public boolean hasCustomInventoryName() { + return inventory.hasCustomInventoryName(); + } + + @Override + public int getInventoryStackLimit() { + return inventory.getInventoryStackLimit(); + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + return inventory.isUseableByPlayer(player); + } + + @Override + public void openInventory() { + inventory.openInventory(); + } + + @Override + public void closeInventory() { + inventory.openInventory(); + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return inventory.isItemValidForSlot(slot, stack); + } } From 0845c251906bfd32c4418ff8b5350498e2350e08 Mon Sep 17 00:00:00 2001 From: GlodBlock <1356392126@qq.com> Date: Tue, 21 Jun 2022 21:12:30 +0800 Subject: [PATCH 5/5] remove unnecessary null fail --- dependencies.gradle | 1 - .../com/glodblock/github/util/FluidPatternDetails.java | 10 ---------- 2 files changed, 11 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index e2576511..e8069690 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -1,7 +1,6 @@ // Add your dependencies here dependencies { - compile('com.github.GTNewHorizons:NotEnoughItems:2.2.12-GTNH:dev') compile('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-75-GTNH:dev') compile('curse.maven:cofh-core-69162:2388751') diff --git a/src/main/java/com/glodblock/github/util/FluidPatternDetails.java b/src/main/java/com/glodblock/github/util/FluidPatternDetails.java index fe2038fe..ff0836d1 100644 --- a/src/main/java/com/glodblock/github/util/FluidPatternDetails.java +++ b/src/main/java/com/glodblock/github/util/FluidPatternDetails.java @@ -63,11 +63,6 @@ public class FluidPatternDetails implements ICraftingPatternDetails, Comparable< } public boolean setInputs(IAEItemStack[] inputs) { - for (IAEItemStack stack : inputs) { // see note at top of class - if (stack == null) { - return false; - } - } IAEItemStack[] condensed = condenseStacks(inputs); if (condensed.length == 0) { return false; @@ -88,11 +83,6 @@ public class FluidPatternDetails implements ICraftingPatternDetails, Comparable< } public boolean setOutputs(IAEItemStack[] outputs) { - for (IAEItemStack stack : outputs) { // see note at top of class - if (stack == null) { - return false; - } - } IAEItemStack[] condensed = condenseStacks(outputs); if (condensed.length == 0) { return false;