aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kekztech/util/Util.java
diff options
context:
space:
mode:
authorNotAPenguin <michiel.vandeginste@gmail.com>2024-09-02 23:17:17 +0200
committerGitHub <noreply@github.com>2024-09-02 23:17:17 +0200
commit1b820de08a05070909a267e17f033fcf58ac8710 (patch)
tree02831a025986a06b20f87e5bcc69d1e0c639a342 /src/main/java/kekztech/util/Util.java
parentafd3fd92b6a6ab9ab0d0dc3214e6bc8ff7a86c9b (diff)
downloadGT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.gz
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.bz2
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.zip
The Great Renaming (#3014)
* move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names
Diffstat (limited to 'src/main/java/kekztech/util/Util.java')
-rw-r--r--src/main/java/kekztech/util/Util.java93
1 files changed, 93 insertions, 0 deletions
diff --git a/src/main/java/kekztech/util/Util.java b/src/main/java/kekztech/util/Util.java
new file mode 100644
index 0000000000..d571150d0b
--- /dev/null
+++ b/src/main/java/kekztech/util/Util.java
@@ -0,0 +1,93 @@
+package kekztech.util;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.math.RoundingMode;
+import java.text.DecimalFormat;
+import java.text.DecimalFormatSymbols;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.oredict.OreDictionary;
+
+import kekztech.common.items.ErrorItem;
+
+public class Util {
+
+ protected static final DecimalFormat percentFormatRound_6 = new DecimalFormat("0.000000%");
+ protected static final DecimalFormat percentFormatRound_2 = new DecimalFormat("0.00%");
+ protected static final BigDecimal Threshold_1 = BigDecimal.valueOf(0.01);
+ protected static DecimalFormat standardFormat;
+
+ static {
+ DecimalFormatSymbols dfs = new DecimalFormatSymbols(Locale.US);
+ dfs.setExponentSeparator("x10^");
+ standardFormat = new DecimalFormat("0.00E0", dfs);
+ }
+
+ public static ItemStack getStackofAmountFromOreDict(String oredictName, final int amount) {
+ final ArrayList<ItemStack> list = OreDictionary.getOres(oredictName);
+ if (!list.isEmpty()) {
+ final ItemStack ret = list.get(0)
+ .copy();
+ ret.stackSize = amount;
+ return ret;
+ }
+ System.err.println("Failed to find " + oredictName + " in OreDict");
+ return new ItemStack(ErrorItem.getInstance(), amount);
+ }
+
+ public static ItemStack[] toItemStackArray(List<ItemStack> stacksList) {
+ if (stacksList.size() == 0) {
+ return null;
+ }
+
+ ItemStack[] ret = new ItemStack[stacksList.size()];
+ Iterator<ItemStack> iterator = stacksList.iterator();
+ for (int i = 0; i < ret.length; i++) {
+ ret[i] = iterator.next();
+ }
+ return ret;
+ }
+
+ public static FluidStack[] toFluidStackArray(List<FluidStack> stacksList) {
+ if (stacksList.size() == 0) {
+ return null;
+ }
+
+ FluidStack[] ret = new FluidStack[stacksList.size()];
+ Iterator<FluidStack> iterator = stacksList.iterator();
+ for (int i = 0; i < ret.length; i++) {
+ ret[i] = iterator.next();
+ }
+ return ret;
+ }
+
+ /* If the number is less than 1, we round by the 6, otherwise to 2 */
+ public static String toPercentageFrom(BigInteger value, BigInteger maxValue) {
+ if (BigInteger.ZERO.equals(maxValue)) {
+ return "0.00%";
+ }
+ BigDecimal result = new BigDecimal(value).setScale(6, RoundingMode.HALF_UP)
+ .divide(new BigDecimal(maxValue), RoundingMode.HALF_UP);
+ if (result.compareTo(Threshold_1) < 0) {
+ return percentFormatRound_6.format(result);
+ } else {
+ return percentFormatRound_2.format(result);
+ }
+ }
+
+ /* Get a string like this: 4.56*10^25 */
+ public static String toStandardForm(BigInteger number) {
+ if (BigInteger.ZERO.equals(number)) {
+ return "0";
+ }
+
+ return standardFormat.format(number);
+ }
+
+}