aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
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/main/java/gregtech/api
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/main/java/gregtech/api')
-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
2 files changed, 19 insertions, 33 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;
}