aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMaxim <maxim235@gmx.de>2022-09-25 10:47:17 +0200
committerGitHub <noreply@github.com>2022-09-25 10:47:17 +0200
commit38cda9c58ff3762479dbf47fc66351b8ad92f4d0 (patch)
tree7dcf4847353011c21824545a7fb4b5c32e6901d2 /src/main
parent63ce07c54c6c2af6c74aa81722b0b0135915e6be (diff)
downloadGT5-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.java27
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;
}