diff options
Diffstat (limited to 'src/main/java/gregtech/common/tileentities')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java | 25 |
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]); |