diff options
author | botn365 <42187820+botn365@users.noreply.github.com> | 2020-09-15 20:11:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-15 20:11:57 +0200 |
commit | 68dd34753ccf0d8d646a57e5384122234359cf1c (patch) | |
tree | e9e02c1ac51f68b7f9a4e8671330fc9729bacf6a /src/main/java/gregtech/common/tileentities/machines | |
parent | 1af71cbcb6cfd20e4e509d911dc6a6fcbeff446c (diff) | |
download | GT5-Unofficial-68dd34753ccf0d8d646a57e5384122234359cf1c.tar.gz GT5-Unofficial-68dd34753ccf0d8d646a57e5384122234359cf1c.tar.bz2 GT5-Unofficial-68dd34753ccf0d8d646a57e5384122234359cf1c.zip |
fix horibe tps lag on multie smelter
Diffstat (limited to 'src/main/java/gregtech/common/tileentities/machines')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java | 47 |
1 files changed, 40 insertions, 7 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java index b21d8fe73c..1bb610e5a0 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java @@ -82,15 +82,48 @@ public class GT_MetaTileEntity_MultiFurnace ArrayList<ItemStack> tInputList = getStoredInputs(); if (!tInputList.isEmpty()) { int mVolatage=GT_Utility.safeInt(getMaxInputVoltage()); - - int j = 0; - this.mOutputItems = new ItemStack[8 * this.mLevel]; - for (int i = 0; (i < 256) && (j < this.mOutputItems.length); i++) { - if (null != (this.mOutputItems[j] = GT_ModHandler.getSmeltingOutput((ItemStack) tInputList.get(i % tInputList.size()), true, null))) { - j++; + int tMaxParrallel = 8 * this.mLevel; + int tCurrenParrallel = 0; + ItemStack tSmeltStack = tInputList.get(0); + ItemStack tOutputStack = GT_ModHandler.getSmeltingOutput(tSmeltStack,false,null); + if (tOutputStack == null) + return false; + for (int i = 0;i<tInputList.size();i++) + { + ItemStack item = tInputList.get(i); + if (tSmeltStack.isItemEqual(item)) + { + if (item.stackSize<(tMaxParrallel-tCurrenParrallel)) + { + tCurrenParrallel += item.stackSize; + item.stackSize = 0; + } + else + { + item.stackSize = (tCurrenParrallel + item.stackSize) - tMaxParrallel; + tCurrenParrallel = tMaxParrallel; + break; + } } } - if (j > 0) { +// this.mOutputItems = new ItemStack[8 * this.mLevel]; +// for (int i = 0; (i < 256) && (j < this.mOutputItems.length); i++) { +// if (null != (this.mOutputItems[j] = GT_ModHandler.getSmeltingOutput((ItemStack) tInputList.get(i % tInputList.size()), true, null))) { +// j++; +// } +// } + this.mOutputItems = new ItemStack[(tCurrenParrallel/64)+1]; + for (int i = 0; i<this.mOutputItems.length;i++) + { + ItemStack tNewStack = tOutputStack.copy(); + int size = tCurrenParrallel>64 ? 64 : tCurrenParrallel; + tNewStack.stackSize = size; + tCurrenParrallel -= size; + this.mOutputItems[i] = tNewStack; + } + + + if (this.mOutputItems != null && this.mOutputItems.length > 0) { this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); this.mEfficiencyIncrease = 10000; calculateOverclockedNessMulti(4, 512, 1, mVolatage); |