diff options
author | Maxim <maxim235@gmx.de> | 2022-09-25 10:47:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-25 10:47:17 +0200 |
commit | 38cda9c58ff3762479dbf47fc66351b8ad92f4d0 (patch) | |
tree | 7dcf4847353011c21824545a7fb4b5c32e6901d2 /src/main | |
parent | 63ce07c54c6c2af6c74aa81722b0b0135915e6be (diff) | |
download | GT5-Unofficial-38cda9c58ff3762479dbf47fc66351b8ad92f4d0.tar.gz GT5-Unofficial-38cda9c58ff3762479dbf47fc66351b8ad92f4d0.tar.bz2 GT5-Unofficial-38cda9c58ff3762479dbf47fc66351b8ad92f4d0.zip |
Rebuild turbine distribution to respect stocking input bus (#369)
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GregtechMetaTileEntity_LargerTurbineBase.java | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GregtechMetaTileEntity_LargerTurbineBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GregtechMetaTileEntity_LargerTurbineBase.java index 5fd95667d3..e49605e838 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GregtechMetaTileEntity_LargerTurbineBase.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GregtechMetaTileEntity_LargerTurbineBase.java @@ -294,16 +294,21 @@ public abstract class GregtechMetaTileEntity_LargerTurbineBase } protected ArrayList<ItemStack> getAllBufferedTurbines() { + startRecipeProcessing(); ArrayList<ItemStack> aTurbinesInStorage = new ArrayList<>(); - for (GT_MetaTileEntity_Hatch_InputBus aBus : this.mInputBusses) { - if (isValidMetaTileEntity(aBus)) { - for (ItemStack aContent : aBus.mInventory) { - if (isValidTurbine(aContent)) { - aTurbinesInStorage.add(aContent); - } + for (ItemStack aStack : getStoredInputs()) { + if (isValidTurbine(aStack)) { + int stackSize = aStack.stackSize; + while (stackSize > 0) { + int tmpStackSize = Math.min(stackSize, aStack.getMaxStackSize()); + ItemStack copy = aStack.copy(); + copy.stackSize = tmpStackSize; + aTurbinesInStorage.add(copy); + stackSize -= tmpStackSize; } } } + endRecipeProcessing(); return aTurbinesInStorage; } @@ -391,16 +396,22 @@ public abstract class GregtechMetaTileEntity_LargerTurbineBase } protected boolean depleteTurbineFromStock(ItemStack aTurbine) { + if (aTurbine == null) { + return false; + } + startRecipeProcessing(); for (GT_MetaTileEntity_Hatch_InputBus aInputBus : this.mInputBusses) { - for (int slot = 0; slot < aInputBus.mInventory.length; slot++) { + for (int slot = aInputBus.getSizeInventory() - 1; slot >= 0; slot--) { ItemStack aStack = aInputBus.getStackInSlot(slot); if (aStack != null && GT_Utility.areStacksEqual(aStack, aTurbine)) { - aInputBus.setInventorySlotContents(slot, null); + aStack.stackSize -= aTurbine.stackSize; updateSlots(); + endRecipeProcessing(); return true; } } } + endRecipeProcessing(); return false; } |