Skip to content

Commit f39c6e5

Browse files
authored
fix voltage display in multiblocks (GregTechCEu#1251)
* fix voltage display in multiblocks * apply fix to other multiblocks * use floorEntry for getTierForVoltageDisplay
1 parent 411148f commit f39c6e5

File tree

9 files changed

+25
-31
lines changed

9 files changed

+25
-31
lines changed

src/main/java/gregtech/api/metatileentity/multiblock/FuelMultiblockController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ protected void addDisplayText(List<ITextComponent> textList) {
5353
IEnergyContainer energyContainer = recipeMapWorkable.getEnergyContainer();
5454
if (energyContainer != null && energyContainer.getEnergyCapacity() > 0) {
5555
long maxVoltage = Math.max(energyContainer.getInputVoltage(), energyContainer.getOutputVoltage());
56-
String voltageName = GTValues.VN[GTUtility.getTierByVoltage(maxVoltage)];
56+
String voltageName = GTValues.VN[GTUtility.getTierForVoltageDisplay(maxVoltage)];
5757
textList.add(new TextComponentTranslation("gregtech.multiblock.max_energy_per_tick", maxVoltage, voltageName));
5858
}
5959

src/main/java/gregtech/api/metatileentity/multiblock/RecipeMapMultiblockController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ protected void addDisplayText(List<ITextComponent> textList) {
141141
IEnergyContainer energyContainer = recipeMapWorkable.getEnergyContainer();
142142
if (energyContainer != null && energyContainer.getEnergyCapacity() > 0) {
143143
long maxVoltage = Math.max(energyContainer.getInputVoltage(), energyContainer.getOutputVoltage());
144-
String voltageName = GTValues.VNF[GTUtility.getTierByVoltage(maxVoltage)];
144+
String voltageName = GTValues.VNF[GTUtility.getTierForVoltageDisplay(maxVoltage)];
145145
textList.add(new TextComponentTranslation("gregtech.multiblock.max_energy_per_tick", maxVoltage, voltageName));
146146
}
147147

src/main/java/gregtech/api/util/GTUtility.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,18 @@ public static byte getTierByVoltage(long voltage) {
452452
return tierByVoltage.ceilingEntry(voltage).getValue();
453453
}
454454

455+
/**
456+
* <strong>Do not</strong> use for calculation. Intended for displays in multiblock machines and similar.
457+
* <p>
458+
* Ex: This method turns 960EU/t and 480EU/t into HV.
459+
*
460+
* @return lowest tier that can handle passed voltage for display
461+
*/
462+
public static byte getTierForVoltageDisplay(long voltage) {
463+
if (voltage < V[GTValues.ULV]) return GTValues.ULV;
464+
return tierByVoltage.floorEntry(voltage).getValue();
465+
}
466+
455467
public static BiomeDictionary.Type getBiomeTypeTagByName(String name) {
456468
Map<String, BiomeDictionary.Type> byName = ReflectionHelper.getPrivateValue(BiomeDictionary.Type.class, null, "byName");
457469
return byName.get(name);

src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityCleanroom.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,7 @@ protected void addDisplayText(List<ITextComponent> textList) {
417417
super.addDisplayText(textList);
418418
if (energyContainer != null && energyContainer.getEnergyCapacity() > 0) {
419419
long maxVoltage = Math.max(energyContainer.getInputVoltage(), energyContainer.getOutputVoltage());
420-
String voltageName = GTValues.VNF[GTUtility.getTierByVoltage(maxVoltage)];
420+
String voltageName = GTValues.VNF[GTUtility.getTierForVoltageDisplay(maxVoltage)];
421421
textList.add(new TextComponentTranslation("gregtech.multiblock.max_energy_per_tick", maxVoltage, voltageName));
422422
}
423423

src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFluidDrill.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
import codechicken.lib.vec.Matrix4;
66
import com.google.common.collect.Lists;
77
import gregtech.api.GTValues;
8-
import gregtech.api.capability.*;
8+
import gregtech.api.capability.GregtechTileCapabilities;
9+
import gregtech.api.capability.IEnergyContainer;
10+
import gregtech.api.capability.IMultipleTankHandler;
11+
import gregtech.api.capability.IWorkable;
912
import gregtech.api.capability.impl.EnergyContainerList;
1013
import gregtech.api.capability.impl.FluidDrillLogic;
1114
import gregtech.api.capability.impl.FluidTankList;
@@ -154,7 +157,7 @@ protected void addDisplayText(List<ITextComponent> textList) {
154157

155158
if (energyContainer != null && energyContainer.getEnergyCapacity() > 0) {
156159
long maxVoltage = Math.max(energyContainer.getInputVoltage(), energyContainer.getOutputVoltage());
157-
String voltageName = GTValues.VNF[GTUtility.getTierByVoltage(maxVoltage)];
160+
String voltageName = GTValues.VNF[GTUtility.getTierForVoltageDisplay(maxVoltage)];
158161
textList.add(new TextComponentTranslation("gregtech.multiblock.max_energy_per_tick", maxVoltage, voltageName));
159162
}
160163

src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityLargeMiner.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ protected void addDisplayText(List<ITextComponent> textList) {
206206
if (this.isStructureFormed()) {
207207
if (energyContainer != null && energyContainer.getEnergyCapacity() > 0) {
208208
long maxVoltage = energyContainer.getInputVoltage();
209-
String voltageName = GTValues.VNF[GTUtility.getTierByVoltage(maxVoltage)];
209+
String voltageName = GTValues.VNF[GTUtility.getTierForVoltageDisplay(maxVoltage)];
210210
textList.add(new TextComponentTranslation("gregtech.multiblock.max_energy_per_tick", maxVoltage, voltageName));
211211
}
212212

src/main/java/gregtech/integration/jei/recipe/GTRecipeWrapper.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,10 @@
99
import gregtech.api.recipes.ingredients.GTRecipeInput;
1010
import gregtech.api.recipes.recipeproperties.PrimitiveProperty;
1111
import gregtech.api.recipes.recipeproperties.RecipeProperty;
12-
import gregtech.api.unification.OreDictUnifier;
1312
import gregtech.api.util.CTRecipeHelper;
1413
import gregtech.api.util.ClipboardUtil;
14+
import gregtech.api.util.GTUtility;
1515
import gregtech.integration.jei.utils.AdvancedRecipeWrapper;
16-
import gregtech.integration.jei.utils.JEIHelpers;
1716
import gregtech.integration.jei.utils.JeiButton;
1817
import mezz.jei.api.ingredients.IIngredients;
1918
import mezz.jei.api.ingredients.VanillaTypes;
@@ -23,7 +22,6 @@
2322
import net.minecraft.util.text.TextComponentString;
2423
import net.minecraftforge.fluids.FluidStack;
2524
import net.minecraftforge.fml.common.Loader;
26-
import net.minecraftforge.oredict.OreDictionary;
2725

2826
import javax.annotation.Nonnull;
2927
import java.util.*;
@@ -124,7 +122,7 @@ public void drawInfo(@Nonnull Minecraft minecraft, int recipeWidth, int recipeHe
124122
int yPosition = recipeHeight - getPropertyListHeight();
125123
if (!recipe.hasProperty(PrimitiveProperty.getInstance())) {
126124
minecraft.fontRenderer.drawString(I18n.format("gregtech.recipe.total", Math.abs((long) recipe.getEUt()) * recipe.getDuration()), 0, yPosition, 0x111111);
127-
minecraft.fontRenderer.drawString(I18n.format(recipe.getEUt() >= 0 ? "gregtech.recipe.eu" : "gregtech.recipe.eu_inverted", Math.abs(recipe.getEUt()), GTValues.VN[JEIHelpers.getMinTierForVoltage(recipe.getEUt())]), 0, yPosition += LINE_HEIGHT, 0x111111);
125+
minecraft.fontRenderer.drawString(I18n.format(recipe.getEUt() >= 0 ? "gregtech.recipe.eu" : "gregtech.recipe.eu_inverted", Math.abs(recipe.getEUt()), GTValues.VN[GTUtility.getTierByVoltage(recipe.getEUt())]), 0, yPosition += LINE_HEIGHT, 0x111111);
128126
} else yPosition -= LINE_HEIGHT * 2;
129127
minecraft.fontRenderer.drawString(I18n.format("gregtech.recipe.duration", recipe.getDuration() / 20f), 0, yPosition += LINE_HEIGHT, 0x111111);
130128
for (Map.Entry<RecipeProperty<?>, Object> propertyEntry : recipe.getPropertyValues()) {

src/main/java/gregtech/integration/jei/utils/JEIHelpers.java

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/main/java/gregtech/integration/theoneprobe/provider/RecipeLogicInfoProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import gregtech.api.capability.GregtechTileCapabilities;
55
import gregtech.api.capability.impl.AbstractRecipeLogic;
66
import gregtech.api.capability.impl.PrimitiveRecipeLogic;
7-
import gregtech.integration.jei.utils.JEIHelpers;
7+
import gregtech.api.util.GTUtility;
88
import mcjty.theoneprobe.api.IProbeHitData;
99
import mcjty.theoneprobe.api.IProbeInfo;
1010
import mcjty.theoneprobe.api.TextStyleClass;
@@ -35,7 +35,7 @@ protected void addProbeInfo(@Nonnull AbstractRecipeLogic capability, @Nonnull IP
3535
if (!(capability instanceof PrimitiveRecipeLogic)) {
3636
int EUt = capability.getRecipeEUt();
3737
int absEUt = Math.abs(EUt);
38-
String text = TextFormatting.RED.toString() + absEUt + TextStyleClass.INFO + " EU/t" + TextFormatting.GREEN + " (" + GTValues.VNF[JEIHelpers.getMinTierForVoltage(absEUt)] + TextFormatting.GREEN + ")";
38+
String text = TextFormatting.RED.toString() + absEUt + TextStyleClass.INFO + " EU/t" + TextFormatting.GREEN + " (" + GTValues.VNF[GTUtility.getTierByVoltage(absEUt)] + TextFormatting.GREEN + ")";
3939

4040
if (EUt > 0) {
4141
probeInfo.text(TextStyleClass.INFO + "{*gregtech.top.energy_consumption*} " + text);

0 commit comments

Comments
 (0)