From e10e333281584a066141308aeba21f5c25931f20 Mon Sep 17 00:00:00 2001 From: toapuro <164835903+toapuro@users.noreply.github.com> Date: Sun, 11 Jan 2026 12:25:52 +0900 Subject: [PATCH 1/2] Distribute display voltage logic to machine implementations --- .../api/machine/SimpleGeneratorMachine.java | 5 +++++ .../api/machine/SimpleTieredMachine.java | 9 ++++++++ .../machine/feature/IRecipeLogicMachine.java | 9 ++++++++ .../WorkableElectricMultiblockMachine.java | 11 ++++++++++ .../jade/provider/RecipeLogicProvider.java | 22 +++---------------- 5 files changed, 37 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/api/machine/SimpleGeneratorMachine.java b/src/main/java/com/gregtechceu/gtceu/api/machine/SimpleGeneratorMachine.java index d61cafe6651..cd5e78ea95c 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/machine/SimpleGeneratorMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/api/machine/SimpleGeneratorMachine.java @@ -126,6 +126,11 @@ public void afterWorking() { spreadEnvironmentalHazard(); } + @Override + public long getDisplayRecipeVoltage() { + return GTValues.V[this.tier]; + } + ////////////////////////////////////// // *********** GUI ***********// ////////////////////////////////////// diff --git a/src/main/java/com/gregtechceu/gtceu/api/machine/SimpleTieredMachine.java b/src/main/java/com/gregtechceu/gtceu/api/machine/SimpleTieredMachine.java index 23a5ae17609..f7b9f2e3c68 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/machine/SimpleTieredMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/api/machine/SimpleTieredMachine.java @@ -310,6 +310,15 @@ public void onMachineRemoved() { } } + /// ////////////////////////////////// + // ****** RECIPE LOGIC *******// + /// ////////////////////////////////// + + @Override + public long getDisplayRecipeVoltage() { + return GTValues.V[this.tier]; + } + ////////////////////////////////////// // *********** GUI ***********// ////////////////////////////////////// diff --git a/src/main/java/com/gregtechceu/gtceu/api/machine/feature/IRecipeLogicMachine.java b/src/main/java/com/gregtechceu/gtceu/api/machine/feature/IRecipeLogicMachine.java index 6a9f7078a3a..ef5d3cc0b4d 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/machine/feature/IRecipeLogicMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/api/machine/feature/IRecipeLogicMachine.java @@ -8,6 +8,7 @@ import com.gregtechceu.gtceu.api.recipe.GTRecipeType; import com.gregtechceu.gtceu.api.recipe.RecipeHelper; import com.gregtechceu.gtceu.config.ConfigHolder; +import com.gregtechceu.gtceu.integration.jade.provider.RecipeLogicProvider; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -126,6 +127,14 @@ default boolean shouldWorkingPlaySound() { (!(self() instanceof IMufflableMachine mufflableMachine) || !mufflableMachine.isMuffled()); } + /** + * Display recipe voltage used by {@link RecipeLogicProvider} + */ + + default long getDisplayRecipeVoltage() { + return -1; + } + ////////////////////////////////////// // ******* IWorkable ********// ////////////////////////////////////// diff --git a/src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java b/src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java index 3ad662bb8cf..fde8016653a 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java @@ -18,6 +18,7 @@ import com.gregtechceu.gtceu.api.misc.EnergyContainerList; import com.gregtechceu.gtceu.api.recipe.modifier.RecipeModifierList; import com.gregtechceu.gtceu.common.data.GTRecipeModifiers; +import com.gregtechceu.gtceu.common.machine.multiblock.part.EnergyHatchPartMachine; import com.gregtechceu.gtceu.utils.GTUtil; import com.lowdragmc.lowdraglib.gui.modular.ModularUI; @@ -276,6 +277,16 @@ public long getMaxVoltage() { } } + @Override + public long getDisplayRecipeVoltage() { + return this.getParts().stream() + .filter(EnergyHatchPartMachine.class::isInstance) + .map(EnergyHatchPartMachine.class::cast) + .mapToLong(dynamo -> GTValues.V[dynamo.getTier()]) + .max() + .orElse(-1); + } + /** * Is this multiblock a generator? * Used for max voltage calculations. diff --git a/src/main/java/com/gregtechceu/gtceu/integration/jade/provider/RecipeLogicProvider.java b/src/main/java/com/gregtechceu/gtceu/integration/jade/provider/RecipeLogicProvider.java index 31f2324e24b..f3541c0813a 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/jade/provider/RecipeLogicProvider.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/jade/provider/RecipeLogicProvider.java @@ -4,14 +4,10 @@ import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.blockentity.MetaMachineBlockEntity; import com.gregtechceu.gtceu.api.capability.GTCapabilityHelper; -import com.gregtechceu.gtceu.api.machine.SimpleGeneratorMachine; -import com.gregtechceu.gtceu.api.machine.SimpleTieredMachine; -import com.gregtechceu.gtceu.api.machine.multiblock.WorkableElectricMultiblockMachine; import com.gregtechceu.gtceu.api.machine.steam.SimpleSteamMachine; import com.gregtechceu.gtceu.api.machine.trait.RecipeLogic; import com.gregtechceu.gtceu.api.recipe.RecipeHelper; import com.gregtechceu.gtceu.client.util.TooltipHelper; -import com.gregtechceu.gtceu.common.machine.multiblock.part.EnergyHatchPartMachine; import com.gregtechceu.gtceu.common.machine.multiblock.steam.SteamParallelMultiblockMachine; import com.gregtechceu.gtceu.utils.FormattingUtil; import com.gregtechceu.gtceu.utils.GTUtil; @@ -63,22 +59,10 @@ protected void write(CompoundTag data, RecipeLogic capability) { } public static long getVoltage(RecipeLogic capability) { - long voltage = -1; - if (capability.machine instanceof SimpleTieredMachine machine) { - voltage = GTValues.V[machine.getTier()]; - } else if (capability.machine instanceof SimpleGeneratorMachine machine) { - voltage = GTValues.V[machine.getTier()]; - } else if (capability.machine instanceof WorkableElectricMultiblockMachine machine) { - voltage = machine.getParts().stream() - .filter(EnergyHatchPartMachine.class::isInstance) - .map(EnergyHatchPartMachine.class::cast) - .mapToLong(dynamo -> GTValues.V[dynamo.getTier()]) - .max() - .orElse(-1); - } + long voltage = capability.machine.getDisplayRecipeVoltage(); + // default display as LV, this shouldn't happen because a machine is either electric or steam - if (voltage == -1) voltage = 32; - return voltage; + return voltage == -1 ? GTValues.V[GTValues.LV] : voltage; } @Override From 5a36853368e201a2e3422de7bcb28070eea0de77 Mon Sep 17 00:00:00 2001 From: toapuro <164835903+toapuro@users.noreply.github.com> Date: Wed, 14 Jan 2026 21:59:53 +0900 Subject: [PATCH 2/2] spotless --- .../machine/multiblock/WorkableElectricMultiblockMachine.java | 1 - .../gtceu/integration/jade/provider/RecipeLogicProvider.java | 4 ---- 2 files changed, 5 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java b/src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java index e1b28ad6721..f05177efe83 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java @@ -18,7 +18,6 @@ import com.gregtechceu.gtceu.api.misc.EnergyContainerList; import com.gregtechceu.gtceu.api.recipe.modifier.RecipeModifierList; import com.gregtechceu.gtceu.common.data.GTRecipeModifiers; -import com.gregtechceu.gtceu.common.machine.multiblock.part.EnergyHatchPartMachine; import com.gregtechceu.gtceu.utils.GTUtil; import com.lowdragmc.lowdraglib.gui.modular.ModularUI; diff --git a/src/main/java/com/gregtechceu/gtceu/integration/jade/provider/RecipeLogicProvider.java b/src/main/java/com/gregtechceu/gtceu/integration/jade/provider/RecipeLogicProvider.java index 0782d918bf6..f3541c0813a 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/jade/provider/RecipeLogicProvider.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/jade/provider/RecipeLogicProvider.java @@ -4,14 +4,10 @@ import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.blockentity.MetaMachineBlockEntity; import com.gregtechceu.gtceu.api.capability.GTCapabilityHelper; -import com.gregtechceu.gtceu.api.machine.SimpleGeneratorMachine; -import com.gregtechceu.gtceu.api.machine.SimpleTieredMachine; -import com.gregtechceu.gtceu.api.machine.multiblock.WorkableElectricMultiblockMachine; import com.gregtechceu.gtceu.api.machine.steam.SimpleSteamMachine; import com.gregtechceu.gtceu.api.machine.trait.RecipeLogic; import com.gregtechceu.gtceu.api.recipe.RecipeHelper; import com.gregtechceu.gtceu.client.util.TooltipHelper; -import com.gregtechceu.gtceu.common.machine.multiblock.part.EnergyHatchPartMachine; import com.gregtechceu.gtceu.common.machine.multiblock.steam.SteamParallelMultiblockMachine; import com.gregtechceu.gtceu.utils.FormattingUtil; import com.gregtechceu.gtceu.utils.GTUtil;