aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common/tileentities')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java
index 7d12b28218..df878d8050 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java
@@ -587,18 +587,23 @@ public class GT_MetaTileEntity_PCBFactory extends
mOutputItems = new ItemStack[tRecipe.mOutputs.length];
ArrayList<ItemStack> tOutputs = new ArrayList<ItemStack>();
- int repeats = (int) Math.ceil(getMaxEfficiency(aStack) / 10000.0f);
- for (int k = 0; k < mCurrentParallel; k++) {
- int remainingEfficiency = getMaxEfficiency(aStack) < 10000 ? 10000 : getMaxEfficiency(aStack);
- for (int j = 0; j < repeats; j++) {
- int chanced = getBaseMetaTileEntity().getRandomNumber(10000);
- for (int i = 0; i < tRecipe.mOutputs.length; i++) {
- if (chanced < remainingEfficiency) {
- tOutputs.add(tRecipe.getOutput(i));
- }
+ int remainingEfficiency = getMaxEfficiency(aStack);
+ for (int j = 0; j < (int) Math.ceil(getMaxEfficiency(aStack) / 10000.0f); j++) {
+ int chanced = getBaseMetaTileEntity().getRandomNumber(10000);
+ if (chanced >= remainingEfficiency) {
+ continue;
+ }
+ for (ItemStack tOutput : tRecipe.mOutputs) {
+ if (tOutput == null) {
+ break;
}
- remainingEfficiency -= 10000;
+ tOutputs.add(tOutput);
}
+ remainingEfficiency -= 10000;
+ }
+
+ for (ItemStack itemStack : tOutputs) {
+ itemStack.stackSize *= mCurrentParallel;
}
mOutputItems = tOutputs.toArray(new ItemStack[0]);