aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxim <maxim235@gmx.de>2023-01-07 13:31:29 +0100
committerGitHub <noreply@github.com>2023-01-07 13:31:29 +0100
commit97df769701737dab869d5120aeadae5a8670c5c6 (patch)
treeeea70ee27f3e661cdbee920f4c695f955e2bf25f /src
parent302709099ae506ccee8f1183f89826b9472d0ad8 (diff)
downloadGT5-Unofficial-97df769701737dab869d5120aeadae5a8670c5c6.tar.gz
GT5-Unofficial-97df769701737dab869d5120aeadae5a8670c5c6.tar.bz2
GT5-Unofficial-97df769701737dab869d5120aeadae5a8670c5c6.zip
Switched from internal OC calc function to new GT_OverclockCalculator (#259)
* Switched from internal OC calc function to new GT_OverclockCalculator * Spotless * Removed try-catch Former-commit-id: 554533aa8c7a6f88dc2ef7e71d3dc583d02fc212
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java22
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaChemicalReactor.java13
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaDistillTower.java11
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaMultiBlockBase.java32
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaOilCracker.java14
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaVacuumFreezer.java13
6 files changed, 87 insertions, 18 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java
index 1402c4614a..845ba95beb 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaBlastFurnace.java
@@ -54,6 +54,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.*;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
+import gregtech.api.util.GT_OverclockCalculator;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
import java.util.*;
@@ -429,22 +430,25 @@ public class GT_TileEntity_MegaBlastFurnace extends GT_TileEntity_MegaMultiBlock
this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000);
this.mEfficiencyIncrease = 10000;
- long actualEUT = precutRecipeVoltage * processed;
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator()
+ .setRecipeEUt(tRecipe.mEUt)
+ .setParallel(processed)
+ .setDuration(tRecipe.mDuration)
+ .setEUt(nominalV)
+ .setRecipeHeat(tRecipe.mSpecialValue)
+ .setMultiHeat(mHeatingCapacity)
+ .enableHeatOC()
+ .enableHeatDiscount()
+ .calculate();
- byte overclockCount =
- this.calculateOverclockedNessMultiInternal(actualEUT, tRecipe.mDuration, nominalV, false);
+ this.mMaxProgresstime = calculator.getDuration();
+ this.lEUt = calculator.getConsumption();
// In case recipe is too OP for that machine
if (this.mMaxProgresstime == Integer.MAX_VALUE - 1 && this.lEUt == Integer.MAX_VALUE - 1) return false;
if (this.lEUt > 0) this.lEUt = (-this.lEUt);
- if (tHeatCapacityDivTiers > 0) {
- this.mMaxProgresstime >>=
- Math.min(tHeatCapacityDivTiers / 2, overclockCount); // extra free overclocking if possible
- if (this.mMaxProgresstime < 1) this.mMaxProgresstime = 1; // no eu efficiency correction
- }
-
if (mUseMultiparallelMode) {
this.mMaxProgresstime = (int) Math.ceil(this.mMaxProgresstime * tBatchMultiplier);
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaChemicalReactor.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaChemicalReactor.java
index 5fe08809ff..8351b773de 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaChemicalReactor.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaChemicalReactor.java
@@ -50,6 +50,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energ
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
+import gregtech.api.util.GT_OverclockCalculator;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
import java.util.ArrayList;
@@ -225,9 +226,17 @@ public class GT_TileEntity_MegaChemicalReactor
this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000);
this.mEfficiencyIncrease = 10000;
- long actualEUT = (long) (tRecipe.mEUt) * processed;
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator()
+ .setRecipeEUt(tRecipe.mEUt)
+ .setParallel(processed)
+ .setDuration(tRecipe.mDuration)
+ .setEUt(nominalV)
+ .enablePerfectOC()
+ .calculate();
+
+ this.mMaxProgresstime = calculator.getDuration();
+ this.lEUt = calculator.getConsumption();
- calculatePerfectOverclockedNessMulti(actualEUT, tRecipe.mDuration, nominalV);
// In case recipe is too OP for that machine
if (this.mMaxProgresstime == Integer.MAX_VALUE - 1 && this.lEUt == Integer.MAX_VALUE - 1) {
return false;
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaDistillTower.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaDistillTower.java
index 25d21399f8..85cfa191b1 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaDistillTower.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaDistillTower.java
@@ -52,6 +52,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
+import gregtech.api.util.GT_OverclockCalculator;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
import java.util.ArrayList;
@@ -594,9 +595,15 @@ public class GT_TileEntity_MegaDistillTower extends GT_TileEntity_MegaMultiBlock
this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000);
this.mEfficiencyIncrease = 10000;
- long actualEUT = (long) (tRecipe.mEUt) * processed;
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator()
+ .setRecipeEUt(tRecipe.mEUt)
+ .setParallel(processed)
+ .setDuration(tRecipe.mDuration)
+ .setEUt(nominalV)
+ .calculate();
- calculateOverclockedNessMulti(actualEUT, tRecipe.mDuration, nominalV);
+ this.mMaxProgresstime = calculator.getDuration();
+ this.lEUt = calculator.getConsumption();
// In case recipe is too OP for that machine
if (this.mMaxProgresstime == Integer.MAX_VALUE - 1 && this.lEUt == Integer.MAX_VALUE - 1) return false;
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaMultiBlockBase.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaMultiBlockBase.java
index a985814a2d..6374f59613 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaMultiBlockBase.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaMultiBlockBase.java
@@ -185,7 +185,18 @@ public abstract class GT_TileEntity_MegaMultiBlockBase<T extends GT_TileEntity_M
};
}
- // Special overclocking to handle over MAX voltage
+ /**
+ * Calculates the overclock for megas. Will set this.mMaxProgressTime and this.lEUt automatically
+ * @deprecated
+ * Use GT_OverclockCalculator instead
+ *
+ * @param aEUt EUt of the recipe
+ * @param aDuration Duration of the recipe
+ * @param maxInputVoltage Max input voltage of the mega (nominal, so 1A)
+ * @param perfectOC Flag if the multi has perfect OC
+ * @return Number of performed overclocks
+ */
+ @Deprecated
protected byte calculateOverclockedNessMultiInternal(
long aEUt, int aDuration, long maxInputVoltage, boolean perfectOC) {
byte mTier = (byte) Math.max(0, BW_Util.getTier(maxInputVoltage)), overclockCount = 0;
@@ -238,10 +249,29 @@ public abstract class GT_TileEntity_MegaMultiBlockBase<T extends GT_TileEntity_M
return overclockCount;
}
+ /**
+ * Calculates the overclock for megas. Will set this.mMaxProgressTime and this.lEUt automatically
+ * @deprecated
+ * Use GT_OverclockCalculator instead
+ *
+ * @param aEUt EUt of the recipe
+ * @param aDuration Duration of the recipe
+ * @param maxInputVoltage Max input voltage of the mega (nominal, so 1A)
+ */
protected void calculateOverclockedNessMulti(long aEUt, int aDuration, long maxInputVoltage) {
calculateOverclockedNessMultiInternal(aEUt, aDuration, maxInputVoltage, false);
}
+ /**
+ * Calculates the overclock for megas. Will set this.mMaxProgressTime and this.lEUt automatically
+ * @deprecated
+ * Use GT_OverclockCalculator instead
+ *
+ * @param aEUt EUt of the recipe
+ * @param aDuration Duration of the recipe
+ * @param maxInputVoltage Max input voltage of the mega (nominal, so 1A)
+ */
+ @Deprecated
protected void calculatePerfectOverclockedNessMulti(long aEUt, int aDuration, long maxInputVoltage) {
calculateOverclockedNessMultiInternal(aEUt, aDuration, maxInputVoltage, true);
}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaOilCracker.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaOilCracker.java
index a12f177545..e96c5bd707 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaOilCracker.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaOilCracker.java
@@ -53,6 +53,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Outpu
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
+import gregtech.api.util.GT_OverclockCalculator;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
import java.util.ArrayList;
@@ -309,8 +310,17 @@ public class GT_TileEntity_MegaOilCracker extends GT_TileEntity_MegaMultiBlockBa
if (found_Recipe) {
this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000);
this.mEfficiencyIncrease = 10000;
- long actualEUT = (long) (tRecipe.mEUt) * processed;
- calculateOverclockedNessMulti((int) actualEUT, tRecipe.mDuration, nominalV);
+
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator()
+ .setRecipeEUt(tRecipe.mEUt)
+ .setParallel(processed)
+ .setDuration(tRecipe.mDuration)
+ .setEUt(nominalV)
+ .calculate();
+
+ this.mMaxProgresstime = calculator.getDuration();
+ this.lEUt = calculator.getConsumption();
+
// In case recipe is too OP for that machine
if (this.mMaxProgresstime == Integer.MAX_VALUE - 1 && this.lEUt == Integer.MAX_VALUE - 1) {
return false;
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaVacuumFreezer.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaVacuumFreezer.java
index 5057280257..0607ba5615 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaVacuumFreezer.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/mega/GT_TileEntity_MegaVacuumFreezer.java
@@ -47,6 +47,7 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.render.TextureFactory;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
+import gregtech.api.util.GT_OverclockCalculator;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
import java.util.ArrayList;
@@ -470,8 +471,16 @@ public class GT_TileEntity_MegaVacuumFreezer extends GT_TileEntity_MegaMultiBloc
this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000);
this.mEfficiencyIncrease = 10000;
- long actualEUT = (long) (tRecipe.mEUt) * processed;
- calculateOverclockedNessMulti(actualEUT, tRecipe.mDuration, nominalV);
+ GT_OverclockCalculator calculator = new GT_OverclockCalculator()
+ .setRecipeEUt(tRecipe.mEUt)
+ .setParallel(processed)
+ .setDuration(tRecipe.mDuration)
+ .setEUt(nominalV)
+ .calculate();
+
+ this.mMaxProgresstime = calculator.getDuration();
+ this.lEUt = calculator.getConsumption();
+
// In case recipe is too OP for that machine
if (this.mMaxProgresstime == Integer.MAX_VALUE - 1 && this.lEUt == Integer.MAX_VALUE - 1) return false;
if (this.lEUt > 0) {