diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/GTRecipe.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/GTRecipe.java index 17321351eb..82c5f2efbd 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/GTRecipe.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/GTRecipe.java @@ -58,7 +58,6 @@ public class GTRecipe implements net.minecraft.world.item.crafting.Recipe extends Builde private final List tooltips = new ArrayList<>(); @Setter private BiConsumer> tooltipBuilder; - @Setter - private RecipeModifier recipeModifier = GTRecipeModifiers.ELECTRIC_OVERCLOCK - .apply(OverclockingLogic.NON_PERFECT_OVERCLOCK); + private RecipeModifier recipeModifier = new RecipeModifierList(GTRecipeModifiers.ELECTRIC_OVERCLOCK + .apply(OverclockingLogic.NON_PERFECT_OVERCLOCK)); @Setter private boolean alwaysTryModifyRecipe; @NotNull @@ -262,14 +261,20 @@ public MachineBuilder abilities(PartAbility... abilities) { return this; } + public MachineBuilder recipeModifier(RecipeModifier recipeModifier) { + this.recipeModifier = recipeModifier instanceof RecipeModifierList list ? list : + new RecipeModifierList(recipeModifier); + return this; + } + public MachineBuilder recipeModifier(RecipeModifier recipeModifier, boolean alwaysTryModifyRecipe) { - this.recipeModifier = recipeModifier; this.alwaysTryModifyRecipe = alwaysTryModifyRecipe; - return this; + return this.recipeModifier(recipeModifier); } public MachineBuilder recipeModifiers(RecipeModifier... recipeModifiers) { - return this.recipeModifier(new RecipeModifierList(recipeModifiers)); + this.recipeModifier = new RecipeModifierList(recipeModifiers); + return this; } public MachineBuilder recipeModifiers(boolean alwaysTryModifyRecipe, @@ -278,7 +283,7 @@ public MachineBuilder recipeModifiers(boolean alwaysTryModifyRecipe, } public MachineBuilder noRecipeModifier() { - this.recipeModifier = ((machine, recipe, params, result) -> recipe); + this.recipeModifier = new RecipeModifierList(((machine, recipe, params, result) -> recipe)); this.alwaysTryModifyRecipe = false; return this; } diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeModifiers.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeModifiers.java index 4221446ca0..02ed8a980c 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeModifiers.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeModifiers.java @@ -2,7 +2,6 @@ import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.capability.IParallelHatch; -import com.gregtechceu.gtceu.api.capability.recipe.EURecipeCapability; import com.gregtechceu.gtceu.api.capability.recipe.IRecipeCapabilityHolder; import com.gregtechceu.gtceu.api.data.medicalcondition.MedicalCondition; import com.gregtechceu.gtceu.api.machine.MetaMachine; @@ -13,8 +12,6 @@ import com.gregtechceu.gtceu.api.recipe.GTRecipe; import com.gregtechceu.gtceu.api.recipe.OverclockingLogic; import com.gregtechceu.gtceu.api.recipe.RecipeHelper; -import com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic; -import com.gregtechceu.gtceu.api.recipe.content.Content; import com.gregtechceu.gtceu.api.recipe.content.ContentModifier; import com.gregtechceu.gtceu.api.recipe.logic.OCParams; import com.gregtechceu.gtceu.api.recipe.logic.OCResult; @@ -34,7 +31,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.List; import java.util.Optional; import java.util.function.BiFunction; import java.util.function.Function; @@ -103,24 +99,9 @@ public GTRecipe apply(MetaMachine machine, @NotNull GTRecipe recipe, @NotNull OC return null; } - var modifiedRecipe = RecipeHelper.applyOverclock(overclockingLogic, recipe, + return RecipeHelper.applyOverclock(overclockingLogic, recipe, overclockMachine.getOverclockVoltage(), params, result); - if (!modifiedRecipe.modified) { - modifiedRecipe.duration = result.getDuration(); - modifiedRecipe.tickInputs.put(EURecipeCapability.CAP, List.of(new Content(result.getEut(), - ChanceLogic.getMaxChancedValue(), ChanceLogic.getMaxChancedValue(), 0, null, null))); - - if (result.getParallel() > 1) { - modifiedRecipe = ParallelLogic - .applyParallel(machine, modifiedRecipe, result.getParallel(), false) - .getFirst(); - } - result.reset(); - modifiedRecipe.modified = true; - } - - return modifiedRecipe; } if (machine instanceof ITieredMachine tieredMachine && result.getEut() > tieredMachine.getTier()) {