aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorD-Cysteine <54219287+D-Cysteine@users.noreply.github.com>2021-08-07 14:50:43 -0600
committerD-Cysteine <54219287+D-Cysteine@users.noreply.github.com>2021-08-07 14:50:43 -0600
commit72c54aa140492f25d3ce4a03d61abb7de9642f87 (patch)
tree8611db5027cf1922579dfebf251d61d015aab456 /src
parentb8758c830712586dcee4d8664571c4e103c4d65d (diff)
downloadGT5-Unofficial-72c54aa140492f25d3ce4a03d61abb7de9642f87.tar.gz
GT5-Unofficial-72c54aa140492f25d3ce4a03d61abb7de9642f87.tar.bz2
GT5-Unofficial-72c54aa140492f25d3ce4a03d61abb7de9642f87.zip
Print powers of 10 instead, for large numbers only
Diffstat (limited to 'src')
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java6
-rw-r--r--src/main/java/gregtech/api/util/GT_Utility.java46
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Item_Machines.java8
3 files changed, 23 insertions, 37 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java
index c5a33f7ae0..b4396aec3e 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Cable.java
@@ -329,9 +329,9 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile
@Override
public String[] getDescription() {
return new String[]{
- "Max Voltage: %%%" + EnumChatFormatting.GREEN + GT_Utility.formatPow2(mVoltage) + " (" + VN[GT_Utility.getTier(mVoltage)] + ")" + EnumChatFormatting.GRAY,
- "Max Amperage: %%%" + EnumChatFormatting.YELLOW + GT_Utility.formatPow2(mAmperage) + EnumChatFormatting.GRAY,
- "Loss/Meter/Ampere: %%%" + EnumChatFormatting.RED + GT_Utility.formatPow2(mCableLossPerMeter) + EnumChatFormatting.GRAY + "%%% EU-Volt"
+ "Max Voltage: %%%" + EnumChatFormatting.GREEN + GT_Utility.formatNumbers(mVoltage) + " (" + VN[GT_Utility.getTier(mVoltage)] + ")" + EnumChatFormatting.GRAY,
+ "Max Amperage: %%%" + EnumChatFormatting.YELLOW + GT_Utility.formatNumbers(mAmperage) + EnumChatFormatting.GRAY,
+ "Loss/Meter/Ampere: %%%" + EnumChatFormatting.RED + GT_Utility.formatNumbers(mCableLossPerMeter) + EnumChatFormatting.GRAY + "%%% EU-Volt"
};
}
diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java
index da5c902c0e..f1f83c3c14 100644
--- a/src/main/java/gregtech/api/util/GT_Utility.java
+++ b/src/main/java/gregtech/api/util/GT_Utility.java
@@ -94,7 +94,11 @@ import static gregtech.common.GT_UndergroundOil.undergroundOilReadInformation;
* Just a few Utility Functions I use.
*/
public class GT_Utility {
- private static final DecimalFormat decimalFormat = new DecimalFormat();
+ /** Formats a number with group separator and at most 2 fraction digits. */
+ private static final DecimalFormat basicFormatter = new DecimalFormat();
+ /** Formats a number into scientific notation with at most 2 fraction digits. Meant for large numbers. */
+ private static final DecimalFormat scientificNotationFormatter = new DecimalFormat("0.##E0");
+
/**
* Forge screwed the Fluid Registry up again, so I make my own, which is also much more efficient than the stupid Stuff over there.
*/
@@ -108,10 +112,10 @@ public class GT_Utility {
public static UUID defaultUuid = null; // maybe default non-null? UUID.fromString("00000000-0000-0000-0000-000000000000");
static {
- DecimalFormatSymbols symbols = decimalFormat.getDecimalFormatSymbols();
+ DecimalFormatSymbols symbols = basicFormatter.getDecimalFormatSymbols();
symbols.setGroupingSeparator(' ');
- decimalFormat.setDecimalFormatSymbols(symbols);
- decimalFormat.setMaximumFractionDigits(2);
+ basicFormatter.setDecimalFormatSymbols(symbols);
+ basicFormatter.setMaximumFractionDigits(2);
GregTech_API.sItemStackMappings.add(sFilledContainerToData);
GregTech_API.sItemStackMappings.add(sEmptyContainerToFluidToData);
@@ -2226,35 +2230,17 @@ public class GT_Utility {
}
public static String formatNumbers(long aNumber) {
- return decimalFormat.format(aNumber);
+ String formatted = basicFormatter.format(aNumber);
+ if (aNumber >= 1_000_000_000L) {
+ formatted += " [" + scientificNotationFormatter.format(aNumber) + "]";
+ }
+ return formatted;
}
public static String formatNumbers(double aNumber) {
- return decimalFormat.format(aNumber);
- }
-
- /**
- * Formats a positive integer with grouping separators, and also attempts to display it as a (small multiple of a)
- * power of 2.
- */
- public static String formatPow2(long number) {
- String formatted = formatNumbers(number);
- if (number == V[V.length - 1]) {
- formatted += " (MAX)";
- } else if (number >= 256) {
- // Try to figure out if number is a (small multiple of a) power of 2.
- long curr = number;
- int pow = 0;
- while ((curr & 1) == 0) { // N.B. this won't terminate if curr == 0
- curr = curr >>> 1;
- pow++;
- }
-
- if (curr == 1) {
- formatted += String.format(" (2^%d)", pow);
- } else if (curr <= 7) {
- formatted += String.format(" (%d*2^%d)", curr, pow);
- }
+ String formatted = basicFormatter.format(aNumber);
+ if (aNumber >= 1_000_000_000d) {
+ formatted += " [" + scientificNotationFormatter.format(aNumber) + "]";
}
return formatted;
}
diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Machines.java b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java
index 4be48b902d..74e3e3653d 100644
--- a/src/main/java/gregtech/common/blocks/GT_Item_Machines.java
+++ b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java
@@ -70,16 +70,16 @@ public class GT_Item_Machines extends ItemBlock {
if (tTileEntity.getEUCapacity() > 0L) {
if (tTileEntity.getInputVoltage() > 0L) {
int inputTier = GT_Utility.getTier(tTileEntity.getInputVoltage());
- aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_IN", "Voltage IN: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.GREEN + GT_Utility.formatPow2(tTileEntity.getInputVoltage()) + " (" + GT_Values.TIER_COLORS[inputTier] + GT_Values.VN[inputTier] + EnumChatFormatting.GREEN +")" + EnumChatFormatting.GRAY);
+ aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_IN", "Voltage IN: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.GREEN + GT_Utility.formatNumbers(tTileEntity.getInputVoltage()) + " (" + GT_Values.TIER_COLORS[inputTier] + GT_Values.VN[inputTier] + EnumChatFormatting.GREEN +")" + EnumChatFormatting.GRAY);
}
if (tTileEntity.getOutputVoltage() > 0L) {
int outputTier = GT_Utility.getTier(tTileEntity.getOutputVoltage());
- aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_OUT", "Voltage OUT: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.GREEN + GT_Utility.formatPow2(tTileEntity.getOutputVoltage()) + " (" + GT_Values.TIER_COLORS[outputTier] + GT_Values.VN[outputTier] + EnumChatFormatting.GREEN + ")" + EnumChatFormatting.GRAY);
+ aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_OUT", "Voltage OUT: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.GREEN + GT_Utility.formatNumbers(tTileEntity.getOutputVoltage()) + " (" + GT_Values.TIER_COLORS[outputTier] + GT_Values.VN[outputTier] + EnumChatFormatting.GREEN + ")" + EnumChatFormatting.GRAY);
}
if (tTileEntity.getOutputAmperage() > 1L) {
- aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_AMOUNT", "Amperage: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.YELLOW + GT_Utility.formatPow2(tTileEntity.getOutputAmperage()) + EnumChatFormatting.GRAY);
+ aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_AMOUNT", "Amperage: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.YELLOW + GT_Utility.formatNumbers(tTileEntity.getOutputAmperage()) + EnumChatFormatting.GRAY);
}
- aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_STORE", "Capacity: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.BLUE + GT_Utility.formatPow2(tTileEntity.getEUCapacity()) + EnumChatFormatting.GRAY);
+ aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_STORE", "Capacity: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.BLUE + GT_Utility.formatNumbers(tTileEntity.getEUCapacity()) + EnumChatFormatting.GRAY);
}
}
NBTTagCompound aNBT = aStack.getTagCompound();