diff options
Diffstat (limited to 'src/main/java/gregtech/common/tileentities/machines')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java | 20 |
1 files changed, 12 insertions, 8 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 d909dd4de7..2f74adea64 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 @@ -543,10 +543,10 @@ public class GT_MetaTileEntity_PCBFactory return false; } - if (((recipeBitMap & mTier1BitMap) == 1 - || (recipeBitMap & mTier2BitMap) == 1 - || (recipeBitMap & mTier3BitMap) == 1) - && ((recipeBitMap & mBioBitMap) == 0 || (recipeBitMap & mBioBitMap) == 1 == mBioUpgrade)) { + if (((recipeBitMap & mTier1BitMap) == 1 && (mTier >= 1) + || (recipeBitMap & mTier2BitMap) == 1 && (mTier >= 2) + || (recipeBitMap & mTier3BitMap) == 1 && (mTier == 3)) + && ((recipeBitMap & mBioBitMap) == 0 || (recipeBitMap & mBioBitMap) == 1 && mBioUpgrade)) { int aCurrentParallel = 0; for (int i = 0; i < aMaxParallel; i++) { @@ -580,7 +580,7 @@ public class GT_MetaTileEntity_PCBFactory mOutputItems = new ItemStack[tRecipe.mOutputs.length]; ArrayList<ItemStack> tOutputs = new ArrayList<ItemStack>(); - int remainingEfficiency = getMaxEfficiency(aStack); + int remainingEfficiency = getMaxEfficiency(aStack) < 10000 ? 10000 : getMaxEfficiency(aStack); int repeats = (int) Math.ceil(getMaxEfficiency(aStack) / 10000); for (int j = 0; j < repeats; j++) { int chanced = getBaseMetaTileEntity().getRandomNumber(10000); @@ -614,7 +614,9 @@ public class GT_MetaTileEntity_PCBFactory if (ticker % 20 == 0) { if (mOCTier1) { - if (!depleteInput(GT_ModHandler.getDistilledWater(COOLANT_CONSUMED_PER_SEC))) { + FluidStack tFluid = GT_ModHandler.getDistilledWater(COOLANT_CONSUMED_PER_SEC); + FluidStack tLiquid = mCoolantInputHatch.drain(tFluid.amount, true); + if (tLiquid == null || tLiquid.amount < tFluid.amount) { criticalStopMachine(); return false; } @@ -622,7 +624,9 @@ public class GT_MetaTileEntity_PCBFactory if (mOCTier2) { Fluid superCoolant = FluidRegistry.getFluid("supercoolant"); - if (!depleteInput(new FluidStack(superCoolant, COOLANT_CONSUMED_PER_SEC))) { + FluidStack tFluid = new FluidStack(superCoolant, COOLANT_CONSUMED_PER_SEC); + FluidStack tLiquid = mCoolantInputHatch.drain(tFluid.amount, true); + if (tLiquid == null || tLiquid.amount < tFluid.amount) { criticalStopMachine(); return false; } @@ -726,7 +730,7 @@ public class GT_MetaTileEntity_PCBFactory if (aMetaTileEntity == null) return false; if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - ((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity).mRecipeMap = getRecipeMap(); + ((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity).mRecipeMap = null; mCoolantInputHatch = (GT_MetaTileEntity_Hatch_Input) aMetaTileEntity; return true; } |