aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorWilhelm Schuster <ws@rot13.io>2023-05-06 16:28:33 +0200
committerGitHub <noreply@github.com>2023-05-06 16:28:33 +0200
commitb39e9e6fd548aa5dd65bddc4e53ffca77a2518bf (patch)
tree5df59c826a7b7641b3212337520082c27adac16d /src/main
parent228a726aaed50cd35346ed65369f1c1fddd2cd26 (diff)
downloadGT5-Unofficial-b39e9e6fd548aa5dd65bddc4e53ffca77a2518bf.tar.gz
GT5-Unofficial-b39e9e6fd548aa5dd65bddc4e53ffca77a2518bf.tar.bz2
GT5-Unofficial-b39e9e6fd548aa5dd65bddc4e53ffca77a2518bf.zip
Show energy flow amperage and correct voltage tier in WAILA for machine blocks (#1955)
Previously, WAILA just showed voltage tier based on total energy flow. This was problematic for machines that accept multiple amps such as the Arc Furnace. Even though it can accept up to 3A of input, increasing the total input voltage by one tier, it obviously cannot accept that voltage from a single source.
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java10
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java42
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java58
-rw-r--r--src/main/java/gregtech/api/multitileentity/multiblock/base/PowerController.java12
-rw-r--r--src/main/java/gregtech/api/util/GT_Utility.java4
-rw-r--r--src/main/resources/assets/gregtech/lang/en_US.lang6
6 files changed, 98 insertions, 34 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java
index ea0a8d2bd2..469eb6a866 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java
@@ -348,14 +348,16 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier
long avgOut = tag.getLong("AvgOut");
currenttip.add(
StatCollector.translateToLocalFormatted(
- "GT5U.waila.energy.avg_in",
+ "GT5U.waila.energy.avg_in_with_amperage",
GT_Utility.formatNumbers(avgIn),
- GT_Utility.getColoredTierNameFromVoltage(avgIn)));
+ GT_Utility.getAmperageForTier(avgIn, (byte) getInputTier()),
+ GT_Utility.getColoredTierNameFromTier((byte) getInputTier())));
currenttip.add(
StatCollector.translateToLocalFormatted(
- "GT5U.waila.energy.avg_out",
+ "GT5U.waila.energy.avg_out_with_amperage",
GT_Utility.formatNumbers(avgOut),
- GT_Utility.getColoredTierNameFromVoltage(avgOut)));
+ GT_Utility.getAmperageForTier(avgOut, (byte) getOutputTier()),
+ GT_Utility.getColoredTierNameFromTier((byte) getOutputTier())));
super.getWailaBody(itemStack, currenttip, accessor, config);
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
index 85af4305bb..fe5d57c84a 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
@@ -1222,18 +1222,36 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
boolean isActive = tag.getBoolean("isActiveSingleBlock");
if (isActive) {
int mEUt = tag.getInteger("eut");
- if (mEUt > 0) {
- currenttip.add(
- StatCollector.translateToLocalFormatted(
- "GT5U.waila.energy.use",
- GT_Utility.formatNumbers(mEUt),
- GT_Utility.getColoredTierNameFromVoltage(mEUt)));
- } else if (mEUt < 0) {
- currenttip.add(
- StatCollector.translateToLocalFormatted(
- "GT5U.waila.energy.produce",
- GT_Utility.formatNumbers(-mEUt),
- GT_Utility.getColoredTierNameFromVoltage(-mEUt)));
+ if (!isSteampowered()) {
+ if (mEUt > 0) {
+ currenttip.add(
+ StatCollector.translateToLocalFormatted(
+ "GT5U.waila.energy.use_with_amperage",
+ GT_Utility.formatNumbers(mEUt),
+ GT_Utility.getAmperageForTier(mEUt, (byte) getInputTier()),
+ GT_Utility.getColoredTierNameFromTier((byte) getInputTier())));
+ } else if (mEUt < 0) {
+ currenttip.add(
+ StatCollector.translateToLocalFormatted(
+ "GT5U.waila.energy.produce_with_amperage",
+ GT_Utility.formatNumbers(-mEUt),
+ GT_Utility.getAmperageForTier(-mEUt, (byte) getOutputTier()),
+ GT_Utility.getColoredTierNameFromTier((byte) getOutputTier())));
+ }
+ } else {
+ if (mEUt > 0) {
+ currenttip.add(
+ StatCollector.translateToLocalFormatted(
+ "GT5U.waila.energy.use",
+ GT_Utility.formatNumbers(mEUt),
+ GT_Utility.getColoredTierNameFromVoltage(mEUt)));
+ } else if (mEUt < 0) {
+ currenttip.add(
+ StatCollector.translateToLocalFormatted(
+ "GT5U.waila.energy.produce",
+ GT_Utility.formatNumbers(-mEUt),
+ GT_Utility.getColoredTierNameFromVoltage(-mEUt)));
+ }
}
}
currenttip.add(
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
index 0d25ec84f6..94392d089c 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
@@ -799,6 +799,20 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
return rVoltage;
}
+ public long getInputVoltageTier() {
+ long rTier = 0;
+ if (mEnergyHatches.size() > 0) {
+ rTier = mEnergyHatches.get(0)
+ .getInputTier();
+ for (int i = 1; i < mEnergyHatches.size(); i++) {
+ if (mEnergyHatches.get(i)
+ .getInputTier() != rTier) return 0;
+ }
+ }
+
+ return rTier;
+ }
+
/**
* Calcualtes the overclockedness using long integers
*
@@ -1391,19 +1405,38 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
boolean isActive = tag.getBoolean("isActive");
if (isActive) {
+ long energyTier = tag.getLong("energyTier");
long actualEnergyUsage = tag.getLong("energyUsage");
- if (actualEnergyUsage > 0) {
- currentTip.add(
- StatCollector.translateToLocalFormatted(
- "GT5U.waila.energy.use",
- GT_Utility.formatNumbers(actualEnergyUsage),
- GT_Utility.getColoredTierNameFromVoltage(actualEnergyUsage)));
- } else if (actualEnergyUsage < 0) {
- currentTip.add(
- StatCollector.translateToLocalFormatted(
- "GT5U.waila.energy.produce",
- GT_Utility.formatNumbers(-actualEnergyUsage),
- GT_Utility.getColoredTierNameFromVoltage(-actualEnergyUsage)));
+ if (energyTier > 0) {
+ if (actualEnergyUsage > 0) {
+ currentTip.add(
+ StatCollector.translateToLocalFormatted(
+ "GT5U.waila.energy.use_with_amperage",
+ GT_Utility.formatNumbers(actualEnergyUsage),
+ GT_Utility.getAmperageForTier(actualEnergyUsage, (byte) energyTier),
+ GT_Utility.getColoredTierNameFromTier((byte) energyTier)));
+ } else if (actualEnergyUsage < 0) {
+ currentTip.add(
+ StatCollector.translateToLocalFormatted(
+ "GT5U.waila.energy.produce_with_amperage",
+ GT_Utility.formatNumbers(-actualEnergyUsage),
+ GT_Utility.getAmperageForTier(-actualEnergyUsage, (byte) energyTier),
+ GT_Utility.getColoredTierNameFromTier((byte) energyTier)));
+ }
+ } else {
+ if (actualEnergyUsage > 0) {
+ currentTip.add(
+ StatCollector.translateToLocalFormatted(
+ "GT5U.waila.energy.use",
+ GT_Utility.formatNumbers(actualEnergyUsage),
+ GT_Utility.getColoredTierNameFromVoltage(actualEnergyUsage)));
+ } else if (actualEnergyUsage < 0) {
+ currentTip.add(
+ StatCollector.translateToLocalFormatted(
+ "GT5U.waila.energy.produce",
+ GT_Utility.formatNumbers(-actualEnergyUsage),
+ GT_Utility.getColoredTierNameFromVoltage(-actualEnergyUsage)));
+ }
}
}
currentTip.add(
@@ -1429,6 +1462,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
if (tileEntity.isActive()) {
if (mEUt < 0) tag.setLong("energyUsage", getActualEnergyUsage());
else tag.setLong("energyUsage", (long) -mEUt * mEfficiency / 10000);
+ tag.setLong("energyTier", getInputVoltageTier());
}
}
}
diff --git a/src/main/java/gregtech/api/multitileentity/multiblock/base/PowerController.java b/src/main/java/gregtech/api/multitileentity/multiblock/base/PowerController.java
index 477bb57b8e..532f171717 100644
--- a/src/main/java/gregtech/api/multitileentity/multiblock/base/PowerController.java
+++ b/src/main/java/gregtech/api/multitileentity/multiblock/base/PowerController.java
@@ -59,6 +59,7 @@ public abstract class PowerController<T extends PowerController<T>> extends Cont
tag.setBoolean("isActive", isActive());
if (isActive()) {
tag.setLong("energyUsage", eut);
+ tag.setLong("energyTier", tier);
}
}
@@ -69,19 +70,22 @@ public abstract class PowerController<T extends PowerController<T>> extends Cont
final NBTTagCompound tag = accessor.getNBTData();
boolean isActive = tag.getBoolean("isActive");
if (isActive) {
+ long energyTier = tag.getLong("energyTier");
long actualEnergyUsage = tag.getLong("energyUsage");
if (actualEnergyUsage > 0) {
currentTip.add(
StatCollector.translateToLocalFormatted(
- "GT5U.waila.energy.use",
+ "GT5U.waila.energy.use_with_amperage",
GT_Utility.formatNumbers(actualEnergyUsage),
- GT_Utility.getColoredTierNameFromVoltage(actualEnergyUsage)));
+ GT_Utility.getAmperageForTier(actualEnergyUsage, (byte) energyTier),
+ GT_Utility.getColoredTierNameFromTier((byte) energyTier)));
} else if (actualEnergyUsage < 0) {
currentTip.add(
StatCollector.translateToLocalFormatted(
- "GT5U.waila.energy.produce",
+ "GT5U.waila.energy.produce_with_amperage",
GT_Utility.formatNumbers(-actualEnergyUsage),
- GT_Utility.getColoredTierNameFromVoltage(-actualEnergyUsage)));
+ GT_Utility.getAmperageForTier(-actualEnergyUsage, (byte) energyTier),
+ GT_Utility.getColoredTierNameFromTier((byte) energyTier)));
}
}
}
diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java
index 0e1d3cae1e..bc6cc9b1b2 100644
--- a/src/main/java/gregtech/api/util/GT_Utility.java
+++ b/src/main/java/gregtech/api/util/GT_Utility.java
@@ -465,6 +465,10 @@ public class GT_Utility {
return (byte) (V.length - 1);
}
+ public static long getAmperageForTier(long voltage, byte tier) {
+ return ceilDiv(voltage, GT_Values.V[tier]);
+ }
+
public static String getColoredTierNameFromVoltage(long voltage) {
return getColoredTierNameFromTier(getTier(voltage));
}
diff --git a/src/main/resources/assets/gregtech/lang/en_US.lang b/src/main/resources/assets/gregtech/lang/en_US.lang
index d192c7e9e4..e7e10ac1ea 100644
--- a/src/main/resources/assets/gregtech/lang/en_US.lang
+++ b/src/main/resources/assets/gregtech/lang/en_US.lang
@@ -333,10 +333,12 @@ nei.options.tools.dump.gt5u.mode.1=Used
GT5U.waila.cover=Cover (%s): %s
GT5U.waila.cover.current_facing=Current Facing
GT5U.waila.energy.stored=Stored: §a%s§r EU / §e%s§r EU
-GT5U.waila.energy.avg_in=Average Input: §a%s§r EU/t (%s)
-GT5U.waila.energy.avg_out=Average Output: §c%s§r EU/t (%s)
+GT5U.waila.energy.avg_in_with_amperage=Average Input: §a%s§r EU/t (%sA %s)
+GT5U.waila.energy.avg_out_with_amperage=Average Output: §c%s§r EU/t (%sA %s)
GT5U.waila.energy.use=Probably uses: §e%s§r EU/t (%s)
+GT5U.waila.energy.use_with_amperage=Probably uses: §e%s§r EU/t (%sA %s)
GT5U.waila.energy.produce=Probably generates: §a%s§r EU/t (%s)
+GT5U.waila.energy.produce_with_amperage=Probably generates: §a%s§r EU/t (%sA %s)
achievement.flintpick=First Tools
achievement.flintpick.desc=Craft a flint pick