Skip to content

Commit

Permalink
migrate fusion to use long threshold
Browse files Browse the repository at this point in the history
  • Loading branch information
Glease committed Mar 10, 2025
1 parent c383c58 commit 26561e8
Show file tree
Hide file tree
Showing 19 changed files with 81 additions and 76 deletions.
4 changes: 2 additions & 2 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
* For more details, see https://docs.gradle.org/8.0.1/userguide/java_library_plugin.html#sec:java_library_configurations_graph
*/
dependencies {
api("com.github.GTNewHorizons:StructureLib:1.4.2:dev")
api("com.github.GTNewHorizons:StructureLib:1.5.0-SNAPSHOT:dev")
api("net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev")
api("com.github.GTNewHorizons:NotEnoughItems:2.7.29-GTNH:dev")
api("com.github.GTNewHorizons:NotEnoughIds:2.1.6:dev")
Expand Down Expand Up @@ -79,7 +79,7 @@ dependencies {
compileOnly("com.github.GTNewHorizons:Translocators:1.3.0:dev") { transitive = false }
compileOnly rfg.deobf("curse.maven:cofh-core-69162:2388751")
compileOnly("com.github.GTNewHorizons:Nuclear-Control:2.6.7:dev") { transitive = false }
compileOnly("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev") { transitive = false }
implementation("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev") { transitive = false }
implementation("com.github.GTNewHorizons:Hodgepodge:2.6.29:dev")
compileOnly('com.github.GTNewHorizons:Botania:1.12.6-GTNH:dev') { transitive = false }
compileOnly('com.github.GTNewHorizons:HoloInventory:2.5.0-GTNH:dev') { transitive = false }
Expand Down
1 change: 1 addition & 0 deletions repositories.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,5 @@ repositories {
artifact()
}
}
mavenLocal()
}
Original file line number Diff line number Diff line change
Expand Up @@ -392,15 +392,15 @@ public static void run() {
.fluidOutputs(WerkstoffLoader.Californium.getMolten(48))
.duration(12 * SECONDS)
.eut(49152)
.metadata(FUSION_THRESHOLD, 480_000_000)
.metadata(FUSION_THRESHOLD, 480_000_000L)
.addTo(fusionRecipes);

GTValues.RA.stdBuilder()
.fluidInputs(WerkstoffLoader.Californium.getMolten(32), WerkstoffLoader.Calcium.getMolten(720))
.fluidOutputs(WerkstoffLoader.Oganesson.getFluidOrGas(720))
.duration(24 * SECONDS)
.eut(49152)
.metadata(FUSION_THRESHOLD, 600_000_000)
.metadata(FUSION_THRESHOLD, 600_000_000L)
.addTo(fusionRecipes);

GTValues.RA.stdBuilder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ public int getMaxPara() {
}

@Override
public int extraPara(int startEnergy) {
public int extraPara(long startEnergy) {
return 1;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ public int getMaxPara() {
}

@Override
public int extraPara(int startEnergy) {
public int extraPara(long startEnergy) {
return startEnergy < 160000000 ? 2 : 1;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ public int getMaxPara() {
}

@Override
public int extraPara(int startEnergy) {
public int extraPara(long startEnergy) {
return (startEnergy < 160000000 ? 3 : (startEnergy < 320000000 ? 2 : 1));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ public int getMaxPara() {
}

@Override
public int extraPara(int startEnergy) {
public int extraPara(long startEnergy) {
if (startEnergy < 160000000) return 4;
if (startEnergy < 320000000) return 3;
if (startEnergy < 640000000) return 2;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ public int getMaxPara() {
}

@Override
public int extraPara(int startEnergy) {
public int extraPara(long startEnergy) {
if (startEnergy < 160000000) return 5;
if (startEnergy < 320000000) return 4;
if (startEnergy < 640000000) return 3;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@
import static gregtech.api.util.GTUtility.validMTEList;
import static net.minecraft.util.StatCollector.translateToLocal;

import java.math.BigInteger;
import java.util.List;

import javax.annotation.Nullable;

import gregtech.api.util.GTRecipeConstants;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
Expand Down Expand Up @@ -200,7 +202,7 @@ public long maxEUStore() {

public abstract int getMaxPara();

public abstract int extraPara(int startEnergy);
public abstract int extraPara(long startEnergy);

public int textureIndex() {
return 53;
Expand Down Expand Up @@ -434,15 +436,16 @@ protected OverclockCalculator createOverclockCalculator(@NotNull GTRecipe recipe
@NotNull
@Override
protected CheckRecipeResult validateRecipe(@NotNull GTRecipe recipe) {
long powerToStart = recipe.getMetadataOrDefault(GTRecipeConstants.FUSION_THRESHOLD, 0L);
if (!mRunningOnLoad) {
if (recipe.mSpecialValue > maxEUStore()) {
return CheckRecipeResultRegistry.insufficientStartupPower(recipe.mSpecialValue);
if (powerToStart > maxEUStore()) {
return CheckRecipeResultRegistry.insufficientStartupPower(BigInteger.valueOf(powerToStart));
}
if (recipe.mEUt > GTValues.V[tier()]) {
return CheckRecipeResultRegistry.insufficientPower(recipe.mEUt);
}
}
maxParallel = getMaxPara() * extraPara(recipe.mSpecialValue);
maxParallel = getMaxPara() * extraPara(powerToStart);
return CheckRecipeResultRegistry.SUCCESSFUL;
}

Expand Down
6 changes: 3 additions & 3 deletions src/main/java/goodgenerator/loader/RecipeLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ public static void RecipeLoad() {
.fluidOutputs(GGMaterial.uraniumBasedLiquidFuelExcited.getFluidOrGas(10))
.duration(2 * SECONDS)
.eut(TierEU.RECIPE_IV)
.metadata(FUSION_THRESHOLD, 200000000)
.metadata(FUSION_THRESHOLD, 200000000L)
.addTo(fusionRecipes);

// Thorium Liquid Process Line
Expand Down Expand Up @@ -277,7 +277,7 @@ public static void RecipeLoad() {
.fluidOutputs(GGMaterial.plutoniumBasedLiquidFuelExcited.getFluidOrGas(20))
.duration(1 * SECONDS)
.eut(TierEU.RECIPE_LuV / 2)
.metadata(FUSION_THRESHOLD, 220000000)
.metadata(FUSION_THRESHOLD, 220000000L)
.addTo(fusionRecipes);

// Th-232
Expand Down Expand Up @@ -622,7 +622,7 @@ public static void RecipeLoad() {
.fluidOutputs(GGMaterial.naquadahBasedFuelMkI.getFluidOrGas(100))
.duration(25 * SECONDS)
.eut(TierEU.RECIPE_LuV)
.metadata(FUSION_THRESHOLD, 320000000)
.metadata(FUSION_THRESHOLD, 320000000L)
.addTo(fusionRecipes);

GTValues.RA.stdBuilder()
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/goodgenerator/loader/RecipeLoader2.java
Original file line number Diff line number Diff line change
Expand Up @@ -1804,7 +1804,7 @@ public static void InitLoadRecipe() {
.fluidOutputs(GGMaterial.metastableOganesson.getMolten(36))
.duration(30 * SECONDS)
.eut(TierEU.RECIPE_UV)
.metadata(FUSION_THRESHOLD, 1_000_000_000)
.metadata(FUSION_THRESHOLD, 1_000_000_000L)
.addTo(fusionRecipes);

// Mk5 recipe
Expand All @@ -1813,7 +1813,7 @@ public static void InitLoadRecipe() {
.fluidOutputs(GGMaterial.metastableOganesson.getMolten(288))
.eut(TierEU.RECIPE_UEV)
.duration(5 * SECONDS)
.metadata(FUSION_THRESHOLD, 1_000_000_000)
.metadata(FUSION_THRESHOLD, 1_000_000_000L)
.addTo(fusionRecipes);

GTValues.RA.stdBuilder()
Expand Down
5 changes: 2 additions & 3 deletions src/main/java/gregtech/api/util/GTRecipeConstants.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ public class GTRecipeConstants {
/**
* Used for fusion reactor. Denotes ignition threshold.
*/
public static final RecipeMetadataKey<Integer> FUSION_THRESHOLD = SimpleRecipeMetadataKey
.create(Integer.class, "fusion_threshold");
public static final RecipeMetadataKey<Long> FUSION_THRESHOLD = SimpleRecipeMetadataKey
.create(Long.class, "fusion_threshold");

/**
* Scanning data used for scanner for assembly line recipes (time and voltage).
Expand Down Expand Up @@ -724,7 +724,6 @@ public IRecipeMap getTarget() {

static {
GTRecipeMapUtil.SPECIAL_VALUE_ALIASES.add(COIL_HEAT);
GTRecipeMapUtil.SPECIAL_VALUE_ALIASES.add(FUSION_THRESHOLD);
GTRecipeMapUtil.SPECIAL_VALUE_ALIASES.add(FUEL_VALUE);
GTRecipeMapUtil.SPECIAL_VALUE_ALIASES.add(NANO_FORGE_TIER);
GTRecipeMapUtil.SPECIAL_VALUE_ALIASES.add(FOG_EXOTIC_TIER);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import javax.annotation.Nonnull;

import gregtech.api.util.GTRecipeConstants;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
Expand Down Expand Up @@ -327,7 +328,7 @@ protected OverclockCalculator createOverclockCalculator(@NotNull GTRecipe recipe
@NotNull
@Override
protected CheckRecipeResult validateRecipe(@NotNull GTRecipe recipe) {
if (!mRunningOnLoad && recipe.mSpecialValue > maxEUStore()) {
if (!mRunningOnLoad && recipe.getMetadataOrDefault(GTRecipeConstants.FUSION_THRESHOLD, 0L) > maxEUStore()) {
return CheckRecipeResultRegistry.insufficientStartupPower(recipe.mSpecialValue);
}
return CheckRecipeResultRegistry.SUCCESSFUL;
Expand Down
Loading

0 comments on commit 26561e8

Please sign in to comment.