aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod/gregtech/common
diff options
context:
space:
mode:
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.java45
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();