diff options
6 files changed, 40 insertions, 29 deletions
diff --git a/src/main/java/bartworks/common/tileentities/multis/mega/MTEMegaDistillTower.java b/src/main/java/bartworks/common/tileentities/multis/mega/MTEMegaDistillTower.java index dec5ff55da..2158436f1e 100644 --- a/src/main/java/bartworks/common/tileentities/multis/mega/MTEMegaDistillTower.java +++ b/src/main/java/bartworks/common/tileentities/multis/mega/MTEMegaDistillTower.java @@ -417,9 +417,9 @@ public class MTEMegaDistillTower extends MegaMultiBlockBase<MTEMegaDistillTower> } @Override - protected void addFluidOutputs(FluidStack[] mOutputFluids2) { - for (int i = 0; i < mOutputFluids2.length && i < this.mOutputHatchesByLayer.size(); i++) { - FluidStack tStack = mOutputFluids2[i].copy(); + protected void addFluidOutputs(FluidStack[] outputFluids) { + for (int i = 0; i < outputFluids.length && i < this.mOutputHatchesByLayer.size(); i++) { + FluidStack tStack = outputFluids[i].copy(); if (!dumpFluid(this.mOutputHatchesByLayer.get(i), tStack, true)) dumpFluid(this.mOutputHatchesByLayer.get(i), tStack, false); } diff --git a/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java index ce508433ec..d250943a23 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java @@ -1287,8 +1287,8 @@ public abstract class MTEMultiBlockBase extends MetaTileEntity return false; } - protected void addFluidOutputs(FluidStack[] mOutputFluids2) { - for (FluidStack outputFluidStack : mOutputFluids2) { + protected void addFluidOutputs(FluidStack[] outputFluids) { + for (FluidStack outputFluidStack : outputFluids) { addOutput(outputFluidStack); } } @@ -1337,6 +1337,12 @@ public abstract class MTEMultiBlockBase extends MetaTileEntity return outputSuccess; } + public void addItemOutputs(ItemStack[] outputItems) { + for (ItemStack outputItemStack : outputItems) { + addOutput(outputItemStack); + } + } + private boolean dumpItem(List<MTEHatchOutputBus> outputBuses, ItemStack itemStack, boolean restrictiveBusesOnly) { for (MTEHatchOutputBus outputBus : outputBuses) { if (restrictiveBusesOnly && !outputBus.isLocked()) { diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/MTEDistillationTower.java b/src/main/java/gregtech/common/tileentities/machines/multi/MTEDistillationTower.java index 2fb630d8f8..93b64c16a8 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/MTEDistillationTower.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/MTEDistillationTower.java @@ -283,9 +283,9 @@ public class MTEDistillationTower extends MTEEnhancedMultiBlockBase<MTEDistillat } @Override - protected void addFluidOutputs(FluidStack[] mOutputFluids2) { - for (int i = 0; i < mOutputFluids2.length && i < mOutputHatchesByLayer.size(); i++) { - final FluidStack fluidStack = mOutputFluids2[i]; + protected void addFluidOutputs(FluidStack[] outputFluids) { + for (int i = 0; i < outputFluids.length && i < mOutputHatchesByLayer.size(); i++) { + final FluidStack fluidStack = outputFluids[i]; if (fluidStack == null) continue; FluidStack tStack = fluidStack.copy(); if (!dumpFluid(mOutputHatchesByLayer.get(i), tStack, true)) diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitBase.java index b43421bd82..5276607c9a 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitBase.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitBase.java @@ -357,6 +357,7 @@ public abstract class MTEPurificationUnitBase<T extends MTEExtendedPowerMultiBlo * @param progressTime Current progress time */ public void startCycle(int cycleTime, int progressTime) { + ThreadLocalRandom random = ThreadLocalRandom.current(); startRecipeProcessing(); // Important to calculate this before depleting inputs, otherwise we may get issues with boost items // disappearing. @@ -385,34 +386,38 @@ public abstract class MTEPurificationUnitBase<T extends MTEExtendedPowerMultiBlo fluidOutputs[i] = this.currentRecipe.mFluidOutputs[i].copy(); fluidOutputs[i].amount *= effectiveParallel; } - this.mOutputFluids = fluidOutputs; - this.mOutputItems = this.currentRecipe.mOutputs; - // Set this value, so it can be displayed in Waila. Note that the logic for the units is - // specifically overridden so setting this value does not actually drain power. - // Instead, power is drained by the main purification plant controller. - this.lEUt = -this.getActualPowerUsage(); - endRecipeProcessing(); - } - public void addRecipeOutputs() { - ThreadLocalRandom random = ThreadLocalRandom.current(); - this.addFluidOutputs(mOutputFluids); - // If this recipe has random item outputs, roll on it and add outputs + ItemStack[] itemOutputs = new ItemStack[this.currentRecipe.mOutputs.length]; + + // If this recipe has random item outputs, roll on it and add to outputs if (this.currentRecipe.mChances != null) { // Roll on each output individually for (int i = 0; i < this.currentRecipe.mOutputs.length; ++i) { // Recipes store probabilities as a value ranging from 1-10000 int roll = random.nextInt(10000); if (roll <= this.currentRecipe.mChances[i]) { - this.addOutput(this.currentRecipe.mOutputs[i]); + itemOutputs[i] = this.currentRecipe.mOutputs[i].copy(); } } } else { // Guaranteed item output for (int i = 0; i < this.currentRecipe.mOutputs.length; ++i) { - this.addOutput(this.currentRecipe.mOutputs[i]); + itemOutputs[i] = this.currentRecipe.mOutputs[i].copy(); } } + + this.mOutputFluids = fluidOutputs; + this.mOutputItems = itemOutputs; + // Set this value, so it can be displayed in Waila. Note that the logic for the units is + // specifically overridden so setting this value does not actually drain power. + // Instead, power is drained by the main purification plant controller. + this.lEUt = -this.getActualPowerUsage(); + endRecipeProcessing(); + } + + public void addRecipeOutputs() { + this.addFluidOutputs(mOutputFluids); + this.addItemOutputs(mOutputItems); } public void endCycle() { diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTESpargeTower.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTESpargeTower.java index f8e60dd677..be510e8ea5 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTESpargeTower.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTESpargeTower.java @@ -393,9 +393,9 @@ public class MTESpargeTower extends GTPPMultiBlockBase<MTESpargeTower> implement } @Override - protected void addFluidOutputs(FluidStack[] mOutputFluids2) { - for (int i = 0; i < mOutputFluids2.length && i < mOutputHatchesByLayer.size(); i++) { - FluidStack tStack = mOutputFluids2[i] != null ? mOutputFluids2[i].copy() : null; + protected void addFluidOutputs(FluidStack[] outputFluids) { + for (int i = 0; i < outputFluids.length && i < mOutputHatchesByLayer.size(); i++) { + FluidStack tStack = outputFluids[i] != null ? outputFluids[i].copy() : null; if (tStack == null) { continue; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/MTEAdvDistillationTower.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/MTEAdvDistillationTower.java index 059bfdc507..46a8d8fe3d 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/MTEAdvDistillationTower.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/MTEAdvDistillationTower.java @@ -355,17 +355,17 @@ public class MTEAdvDistillationTower extends GTPPMultiBlockBase<MTEAdvDistillati } @Override - protected void addFluidOutputs(FluidStack[] mOutputFluids2) { + protected void addFluidOutputs(FluidStack[] outputFluids) { if (mMode == Mode.DistillationTower) { // dt mode - for (int i = 0; i < mOutputFluids2.length && i < mOutputHatchesByLayer.size(); i++) { - FluidStack tStack = mOutputFluids2[i].copy(); + for (int i = 0; i < outputFluids.length && i < mOutputHatchesByLayer.size(); i++) { + FluidStack tStack = outputFluids[i].copy(); if (!dumpFluid(mOutputHatchesByLayer.get(i), tStack, true)) dumpFluid(mOutputHatchesByLayer.get(i), tStack, false); } } else { // distillery mode - for (FluidStack outputFluidStack : mOutputFluids2) { + for (FluidStack outputFluidStack : outputFluids) { addOutput(outputFluidStack); } } |