Skip to content

Commit

Permalink
fix machines with only a single modifier not overclocking properly (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
screret authored Sep 1, 2024
1 parent fe49afd commit 80f57c9
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ public class GTRecipe implements net.minecraft.world.item.crafting.Recipe<Contai
public CompoundTag data;
public int duration;
public int parallels = 0;
public boolean modified = false;
@Getter
public boolean isFuel;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public GTRecipe apply(MetaMachine machine, @NotNull GTRecipe recipe, @NotNull OC
}
}

if (modifiedRecipe != null && !modifiedRecipe.modified) {
if (modifiedRecipe != null) {
modifiedRecipe.duration = result.getDuration();
modifiedRecipe.tickInputs.put(EURecipeCapability.CAP, List.of(new Content(result.getEut(),
ChanceLogic.getMaxChancedValue(), ChanceLogic.getMaxChancedValue(), 0, null, null)));
Expand All @@ -47,7 +47,6 @@ public GTRecipe apply(MetaMachine machine, @NotNull GTRecipe recipe, @NotNull OC
modifiedRecipe = ParallelLogic.applyParallel(machine, modifiedRecipe, result.getParallel(), false)
.getFirst();
}
modifiedRecipe.modified = true;
}
result.reset();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,8 @@ public class MachineBuilder<DEFINITION extends MachineDefinition> extends Builde
private final List<Component> tooltips = new ArrayList<>();
@Setter
private BiConsumer<ItemStack, List<Component>> 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
Expand Down Expand Up @@ -262,14 +261,20 @@ public MachineBuilder<DEFINITION> abilities(PartAbility... abilities) {
return this;
}

public MachineBuilder<DEFINITION> recipeModifier(RecipeModifier recipeModifier) {
this.recipeModifier = recipeModifier instanceof RecipeModifierList list ? list :
new RecipeModifierList(recipeModifier);
return this;
}

public MachineBuilder<DEFINITION> recipeModifier(RecipeModifier recipeModifier, boolean alwaysTryModifyRecipe) {
this.recipeModifier = recipeModifier;
this.alwaysTryModifyRecipe = alwaysTryModifyRecipe;
return this;
return this.recipeModifier(recipeModifier);
}

public MachineBuilder<DEFINITION> recipeModifiers(RecipeModifier... recipeModifiers) {
return this.recipeModifier(new RecipeModifierList(recipeModifiers));
this.recipeModifier = new RecipeModifierList(recipeModifiers);
return this;
}

public MachineBuilder<DEFINITION> recipeModifiers(boolean alwaysTryModifyRecipe,
Expand All @@ -278,7 +283,7 @@ public MachineBuilder<DEFINITION> recipeModifiers(boolean alwaysTryModifyRecipe,
}

public MachineBuilder<DEFINITION> noRecipeModifier() {
this.recipeModifier = ((machine, recipe, params, result) -> recipe);
this.recipeModifier = new RecipeModifierList(((machine, recipe, params, result) -> recipe));
this.alwaysTryModifyRecipe = false;
return this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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()) {
Expand Down

0 comments on commit 80f57c9

Please sign in to comment.