From 891ab02fcad4f8f8f13ba07b1792d2d67023c5fa Mon Sep 17 00:00:00 2001 From: 初夏同学 <30284813+wohaopa@users.noreply.github.com> Date: Tue, 4 Jul 2023 00:01:26 +0800 Subject: Fix the shadow ItemStack bug of multi-InputBus_ME (#2104) * Fix the shadow ItemStack bug of multi-InputBus_ME * resolve code style --- .../GT_MetaTileEntity_MultiBlockBase.java | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/main/java/gregtech/api/metatileentity') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index 8f5f3ee48c..7cefae41e5 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -8,6 +8,7 @@ import static mcp.mobius.waila.api.SpecialChars.RESET; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; @@ -75,6 +76,7 @@ import gregtech.api.util.VoidProtectionHelper; import gregtech.client.GT_SoundLoop; import gregtech.common.GT_Pollution; import gregtech.common.items.GT_MetaGenerated_Tool_01; +import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_InputBus_ME; import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_OutputBus_ME; import gregtech.common.tileentities.machines.GT_MetaTileEntity_Hatch_Output_ME; import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_DrillerBase; @@ -1086,21 +1088,27 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity public ArrayList getStoredInputs() { ArrayList rList = new ArrayList<>(); + HashMap rInputBusMeList = new HashMap<>(); for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses) { tHatch.mRecipeMap = getRecipeMap(); if (isValidMetaTileEntity(tHatch)) { - for (int i = tHatch.getBaseMetaTileEntity() - .getSizeInventory() - 1; i >= 0; i--) { - if (tHatch.getBaseMetaTileEntity() - .getStackInSlot(i) != null) - rList.add( - tHatch.getBaseMetaTileEntity() - .getStackInSlot(i)); + IGregTechTileEntity tileEntity = tHatch.getBaseMetaTileEntity(); + if (tHatch instanceof GT_MetaTileEntity_Hatch_InputBus_ME) { + for (int i = tileEntity.getSizeInventory() - 1; i >= 0; i--) { + ItemStack itemStack = tileEntity.getStackInSlot(i); + if (itemStack != null) rInputBusMeList.put(itemStack.toString(), itemStack); + } + } else { + for (int i = tileEntity.getSizeInventory() - 1; i >= 0; i--) { + ItemStack itemStack = tileEntity.getStackInSlot(i); + if (itemStack != null) rList.add(itemStack); + } } } } if (getStackInSlot(1) != null && getStackInSlot(1).getUnlocalizedName() .startsWith("gt.integrated_circuit")) rList.add(getStackInSlot(1)); + if (!rInputBusMeList.isEmpty()) rList.addAll(rInputBusMeList.values()); return rList; } -- cgit