aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities/machines
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common/tileentities/machines')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/MTEDistillationTower.java6
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationUnitBase.java33
2 files changed, 22 insertions, 17 deletions
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() {