diff options
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/gregtech/common')
-rw-r--r-- | src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java | 45 |
1 files changed, 26 insertions, 19 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java index c515369abb..290c52ece8 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java @@ -46,6 +46,7 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase< public static String mCasingName = "Sterile Farm Casing"; // public static TreeGenerator mTreeData; public static HashMap<String, ItemStack> sLogCache = new HashMap<>(); + private static final int TICKS_PER_OPERATION = 100; private int mCasing; private IStructureDefinition<GregtechMetaTileEntityTreeFarm> STRUCTURE_DEFINITION = null; @@ -174,33 +175,39 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase< long tVoltage = getMaxInputVoltage(); byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage)); - this.mMaxProgresstime = 100; - this.mEUt = (int) tVoltage; - - this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); - this.mEfficiencyIncrease = 10000; - - if (this.mEUt > 0) { - this.mEUt = (-this.mEUt); - } - - int aOutputAmount = ((2 * (tTier * tTier)) - (2 * tTier) + 5) * (mMaxProgresstime / 20) * getSawBoost(mToolType); + int aOutputAmount = ((2 * (tTier * tTier)) - (2 * tTier) + 5) * (TICKS_PER_OPERATION / 20) * getSawBoost(mToolType); int aFert = hasLiquidFert(); + ItemStack[] toOutput; if (aFert > 0) { //Sapling - if (aFert < aOutputAmount) { aOutputAmount /= 10; - } else { - tryConsumeLiquidFert(aOutputAmount); } - - aOutputAmount = (int) (aOutputAmount * saplingsModifier); - this.mOutputItems = new ItemStack[]{ItemUtils.getSimpleStack(mSapling, aOutputAmount)}; + int amplifiedOutputAmount = (int) (aOutputAmount * saplingsModifier); + toOutput = new ItemStack[]{ItemUtils.getSimpleStack(mSapling, amplifiedOutputAmount)}; } else { //Log + int amplifiedOutputAmount = (int) (aOutputAmount * heightModifier * girthModifier); + toOutput = new ItemStack[]{ItemUtils.getSimpleStack(mWood, amplifiedOutputAmount)}; + } - aOutputAmount = (int) (aOutputAmount * heightModifier * girthModifier); - this.mOutputItems = new ItemStack[]{ItemUtils.getSimpleStack(mWood, aOutputAmount)}; + if (canBufferOutputs(toOutput, new FluidStack[]{}, 1) == 0) { + return false; + } + + if (aFert > 0 && aFert >= aOutputAmount) { + tryConsumeLiquidFert(aOutputAmount); + } + + this.mOutputItems = toOutput; + + this.mMaxProgresstime = TICKS_PER_OPERATION; + this.mEUt = (int) tVoltage; + + this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); + this.mEfficiencyIncrease = 10000; + + if (this.mEUt > 0) { + this.mEUt = (-this.mEUt); } this.tryDamageTool(); |