From 4173505dc44a75ef0df9fcd0ca81a6df40cb5140 Mon Sep 17 00:00:00 2001 From: Alexandre Tardif Date: Mon, 1 Aug 2022 05:44:44 -0400 Subject: Allow databanks to be daisy chained --- .../multi/GT_MetaTileEntity_EM_dataBank.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java index a606e4163c..00efac0828 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java @@ -21,6 +21,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_DataAccess; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; @@ -40,7 +41,8 @@ import static net.minecraft.util.StatCollector.translateToLocal; public class GT_MetaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockBase_EM implements IConstructable { //region variables private final ArrayList eStacksDataOutputs = new ArrayList<>(); - private final ArrayList eDataAccessHatches = new ArrayList<>(); + private final ArrayList eDataAccessHatches = new ArrayList<>(); + private boolean slave = false; //endregion //region structure @@ -99,13 +101,14 @@ public class GT_MetaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) { eDataAccessHatches.clear(); eStacksDataOutputs.clear(); + slave = false; return structureCheck_EM("main", 2, 1, 0); } @Override public boolean checkRecipe_EM(ItemStack itemStack) { if (eDataAccessHatches.size() > 0 && eStacksDataOutputs.size() > 0) { - mEUt = -(int) V[4]; + mEUt = -(int) V[slave ? 6 : 4]; eAmpereFlow = 1 + eStacksDataOutputs.size() * eDataAccessHatches.size(); mMaxProgresstime = 20; mEfficiencyIncrease = 10000; @@ -117,7 +120,7 @@ public class GT_MetaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB @Override public void outputAfterRecipe_EM() { ArrayList stacks = new ArrayList<>(); - for (GT_MetaTileEntity_Hatch_DataAccess dataAccess : eDataAccessHatches) { + for (IInventory dataAccess : eDataAccessHatches) { int count = dataAccess.getSizeInventory(); for (int i = 0; i < count; i++) { ItemStack stack = dataAccess.getStackInSlot(i); @@ -177,7 +180,11 @@ public class GT_MetaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB return eStacksDataOutputs.add((GT_MetaTileEntity_Hatch_OutputDataItems) aMetaTileEntity); } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DataAccess && !(aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputDataItems)) { ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return eDataAccessHatches.add((GT_MetaTileEntity_Hatch_DataAccess) aMetaTileEntity); + return eDataAccessHatches.add(aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputDataItems) { + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); + slave = true; + return eDataAccessHatches.add(aMetaTileEntity); } return false; } -- cgit