aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/tectech/util/GodforgeMath.java
diff options
context:
space:
mode:
authorMaya <10861407+serenibyss@users.noreply.github.com>2024-11-28 12:01:03 -0600
committerGitHub <noreply@github.com>2024-11-28 19:01:03 +0100
commite41a0889c5f498252691180b143c97b570b2fc6b (patch)
tree60e1dd7a5a1fa4e7e081f6fccdb438897fa49c20 /src/main/java/tectech/util/GodforgeMath.java
parent3fcd89ab979db773d63c498de905558d32943420 (diff)
downloadGT5-Unofficial-e41a0889c5f498252691180b143c97b570b2fc6b.tar.gz
GT5-Unofficial-e41a0889c5f498252691180b143c97b570b2fc6b.tar.bz2
GT5-Unofficial-e41a0889c5f498252691180b143c97b570b2fc6b.zip
Godforge hangover (#3396)
Co-authored-by: GDCloud <gdcloudstrike@gmail.com> Co-authored-by: GDCloud <93287602+GDCloudstrike@users.noreply.github.com> Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main/java/tectech/util/GodforgeMath.java')
-rw-r--r--src/main/java/tectech/util/GodforgeMath.java296
1 files changed, 0 insertions, 296 deletions
diff --git a/src/main/java/tectech/util/GodforgeMath.java b/src/main/java/tectech/util/GodforgeMath.java
deleted file mode 100644
index d4d43f01cf..0000000000
--- a/src/main/java/tectech/util/GodforgeMath.java
+++ /dev/null
@@ -1,296 +0,0 @@
-package tectech.util;
-
-import java.math.BigInteger;
-
-import tectech.thing.metaTileEntity.multi.godforge.MTEBaseModule;
-import tectech.thing.metaTileEntity.multi.godforge.MTEExoticModule;
-import tectech.thing.metaTileEntity.multi.godforge.MTEForgeOfGods;
-import tectech.thing.metaTileEntity.multi.godforge.MTEMoltenModule;
-import tectech.thing.metaTileEntity.multi.godforge.MTEPlasmaModule;
-import tectech.thing.metaTileEntity.multi.godforge.MTESmeltingModule;
-
-public class GodforgeMath {
-
- public static int getRandomIntInRange(int min, int max) {
- return (int) (Math.random() * (max - min)) + min;
- }
-
- public static double calculateFuelConsumption(MTEForgeOfGods godforge) {
- double upgradeFactor = 1;
- if (godforge.isUpgradeActive(2)) {
- upgradeFactor = 0.8;
- }
- if (godforge.getFuelType() == 0) {
- return godforge.getFuelFactor() * 300 * Math.pow(1.15, godforge.getFuelFactor()) * upgradeFactor;
- }
- if (godforge.getFuelType() == 1) {
- return godforge.getFuelFactor() * 2 * Math.pow(1.08, godforge.getFuelFactor()) * upgradeFactor;
- } else return godforge.getFuelFactor() / 25f * upgradeFactor;
- }
-
- public static int calculateStartupFuelConsumption(MTEForgeOfGods godforge) {
- return (int) Math.max(godforge.getFuelFactor() * 25 * Math.pow(1.2, godforge.getFuelFactor()), 1);
- }
-
- public static int calculateMaxFuelFactor(MTEForgeOfGods godforge) {
- int fuelCap = 5;
- if (godforge.isUpgradeActive(27)) {
- fuelCap = Integer.MAX_VALUE;
- } else {
- if (godforge.isUpgradeActive(9)) {
- fuelCap += godforge.getTotalActiveUpgrades();
- }
- if (godforge.isUpgradeActive(3)) {
- fuelCap *= 1.2;
- }
- }
- return Math.max(fuelCap, 1);
- }
-
- public static int calculateEffectiveFuelFactor(MTEForgeOfGods godforge) {
- int fuelFactor = godforge.getFuelFactor();
- if (fuelFactor <= 43) {
- return fuelFactor;
- } else {
- return 43 + (int) Math.floor(Math.pow((fuelFactor - 43), 0.4));
- }
- }
-
- public static void calculateMaxHeatForModules(MTEBaseModule module, MTEForgeOfGods godforge) {
- double logBase = 1.5;
- int baseHeat = 12601;
- if (godforge.isUpgradeActive(12)) {
- if (module instanceof MTESmeltingModule) {
- logBase = 1.12;
- } else {
- logBase = 1.18;
- }
- }
- int recipeHeat = baseHeat + (int) (Math.log(godforge.getFuelFactor()) / Math.log(logBase) * 1000);
- module.setHeatForOC(calculateOverclockHeat(module, godforge, recipeHeat));
- module.setHeat(recipeHeat);
- }
-
- public static int calculateOverclockHeat(MTEBaseModule module, MTEForgeOfGods godforge, Integer recipeHeat) {
- int actualHeat;
- double exponent;
- if (godforge.isUpgradeActive(20)) {
- if (module instanceof MTESmeltingModule) {
- exponent = 0.85;
- } else {
- exponent = 0.8;
- }
- if (recipeHeat > 30000) {
- actualHeat = (int) Math.floor(30000 + Math.pow(recipeHeat - 30000, exponent));
- } else {
- actualHeat = recipeHeat;
- }
- } else if (godforge.isUpgradeActive(17)) {
- actualHeat = Math.min(recipeHeat, 30000);
- } else {
- actualHeat = Math.min(recipeHeat, 15000);
- }
- return actualHeat;
- }
-
- public static void calculateSpeedBonusForModules(MTEBaseModule module, MTEForgeOfGods godforge) {
- double speedBonus = 1;
-
- if (godforge.isUpgradeActive(1)) {
- speedBonus = Math.pow(module.getHeat(), -0.01);
- }
-
- if (godforge.isUpgradeActive(22)) {
- if (module instanceof MTEPlasmaModule) {
- speedBonus /= Math.pow(module.getMaxParallel(), 0.02);
- } else {
- speedBonus /= Math.pow(module.getMaxParallel(), 0.012);
- }
- }
-
- if (module instanceof MTEExoticModule) {
- if (godforge.isUpgradeActive(25)) {
- speedBonus = Math.sqrt(speedBonus);
- } else {
- speedBonus = 1;
- }
- }
-
- module.setSpeedBonus(speedBonus);
- }
-
- public static void calculateMaxParallelForModules(MTEBaseModule module, MTEForgeOfGods godforge) {
- int baseParallel = 0;
- float fuelFactorMultiplier = 1;
- float heatMultiplier = 1;
- float upgradeAmountMultiplier = 1;
- int node53 = 1;
- boolean isMoltenOrSmeltingWithUpgrade = false;
-
- if (module instanceof MTESmeltingModule) {
- baseParallel = 1024;
- }
- if (module instanceof MTEMoltenModule) {
- baseParallel = 512;
- }
- if (module instanceof MTEPlasmaModule) {
- baseParallel = 384;
- }
- if (module instanceof MTEExoticModule) {
- baseParallel = 64;
- }
-
- if (module instanceof MTEMoltenModule
- || (module instanceof MTESmeltingModule && godforge.isUpgradeActive(16))) {
- isMoltenOrSmeltingWithUpgrade = true;
- }
-
- if (godforge.isUpgradeActive(10)) {
- node53 = 2;
- }
-
- if (godforge.isUpgradeActive(6)) {
- fuelFactorMultiplier = 1 + calculateEffectiveFuelFactor(godforge) / 15f;
- if (godforge.isUpgradeActive(13)) {
- if (isMoltenOrSmeltingWithUpgrade) {
- fuelFactorMultiplier *= 3;
- } else {
- fuelFactorMultiplier *= 2;
- }
- }
- }
-
- if (godforge.isUpgradeActive(18)) {
- if (isMoltenOrSmeltingWithUpgrade) {
- heatMultiplier = 1 + module.getHeat() / 15000f;
- } else {
- heatMultiplier = 1 + module.getHeat() / 25000f;
- }
- }
-
- if (godforge.isUpgradeActive(21)) {
- if (isMoltenOrSmeltingWithUpgrade) {
- upgradeAmountMultiplier = 1 + godforge.getTotalActiveUpgrades() / 5f;
- } else {
- upgradeAmountMultiplier = 1 + godforge.getTotalActiveUpgrades() / 8f;
- }
- }
-
- float totalBonuses = node53 * fuelFactorMultiplier * heatMultiplier * upgradeAmountMultiplier;
-
- if (module instanceof MTEExoticModule) {
- if (godforge.isUpgradeActive(25)) {
- totalBonuses = (float) Math.sqrt(totalBonuses);
- } else {
- totalBonuses = 1;
- }
- }
-
- int maxParallel = (int) (baseParallel * totalBonuses);
-
- module.setMaxParallel(maxParallel);
- }
-
- public static void calculateEnergyDiscountForModules(MTEBaseModule module, MTEForgeOfGods godforge) {
- double fillRatioDiscount = 1;
- double maxBatteryDiscount = 1;
-
- if (godforge.isUpgradeActive(8)) {
- maxBatteryDiscount = 1 - (1 - Math.pow(1.05, -0.05 * godforge.getMaxBatteryCharge())) / 20;
- }
-
- if (godforge.isUpgradeActive(19)) {
- double fillRatioMinusZeroPointFive = (double) godforge.getBatteryCharge() / godforge.getMaxBatteryCharge()
- - 0.5;
- if (module instanceof MTEPlasmaModule) {
- fillRatioDiscount = 1 - (Math.pow(fillRatioMinusZeroPointFive, 2) * (-0.6) + 0.15);
- } else {
- fillRatioDiscount = 1 - (Math.pow(fillRatioMinusZeroPointFive, 2) * (-0.6) + 0.15) * 2 / 3;
- }
- }
-
- if (module instanceof MTEExoticModule) {
- if (godforge.isUpgradeActive(25)) {
- fillRatioDiscount = Math.sqrt(fillRatioDiscount);
- maxBatteryDiscount = Math.sqrt(maxBatteryDiscount);
- } else {
- fillRatioDiscount = 1;
- maxBatteryDiscount = 1;
- }
- }
-
- module.setEnergyDiscount((float) (fillRatioDiscount * maxBatteryDiscount));
- }
-
- public static void calculateProcessingVoltageForModules(MTEBaseModule module, MTEForgeOfGods godforge) {
- long voltage = 2_000_000_000;
-
- if (godforge.isUpgradeActive(4)) {
- voltage += calculateEffectiveFuelFactor(godforge) * 100_000_000L;
- }
-
- if (godforge.isUpgradeActive(23)) {
- voltage *= Math.pow(4, godforge.getRingAmount());
- }
-
- module.setProcessingVoltage(voltage);
- }
-
- public static void setMiscModuleParameters(MTEBaseModule module, MTEForgeOfGods godforge) {
- int plasmaTier = 0;
- double overclockTimeFactor = 2;
-
- if (godforge.isUpgradeActive(30)) {
- plasmaTier = 2;
- } else if (godforge.isUpgradeActive(24)) {
- plasmaTier = 1;
- }
-
- if (godforge.isUpgradeActive(14)) {
- if (module instanceof MTEPlasmaModule) {
- overclockTimeFactor = 2.3;
- } else {
- overclockTimeFactor = 2.15;
- }
- if (module instanceof MTEExoticModule) {
- if (godforge.isUpgradeActive(25)) {
- overclockTimeFactor = 2 + Math.pow(overclockTimeFactor - 2, 2);
- } else {
- overclockTimeFactor = 2;
- }
- }
- }
-
- module.setUpgrade83(godforge.isUpgradeActive(19));
- module.setMultiStepPlasma(godforge.isUpgradeActive(15));
- module.setPlasmaTier(plasmaTier);
- module.setMagmatterCapable(godforge.isUpgradeActive(30));
- module.setVoltageConfig(godforge.isUpgradeActive(28));
- module.setOverclockTimeFactor(overclockTimeFactor);
- }
-
- public static boolean allowModuleConnection(MTEBaseModule module, MTEForgeOfGods godforge) {
-
- if (module instanceof MTEMoltenModule && godforge.isUpgradeActive(5)) {
- return true;
- }
-
- if (module instanceof MTEPlasmaModule && godforge.isUpgradeActive(7)) {
- return true;
- }
-
- if (module instanceof MTEExoticModule && godforge.isUpgradeActive(11)) {
- return true;
- }
-
- return module instanceof MTESmeltingModule;
- }
-
- public static void queryMilestoneStats(MTEBaseModule module, MTEForgeOfGods godforge) {
- godforge.addTotalPowerConsumed(module.getPowerTally());
- module.setPowerTally(BigInteger.ZERO);
- godforge.addTotalRecipesProcessed(module.getRecipeTally());
- module.setRecipeTally(0);
- module.setInversionConfig(godforge.isInversionAvailable());
- }
-}