diff options
author | NotAPenguin <michiel.vandeginste@gmail.com> | 2024-09-02 23:17:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-02 23:17:17 +0200 |
commit | 1b820de08a05070909a267e17f033fcf58ac8710 (patch) | |
tree | 02831a025986a06b20f87e5bcc69d1e0c639a342 /src/main/java/kekztech/util | |
parent | afd3fd92b6a6ab9ab0d0dc3214e6bc8ff7a86c9b (diff) | |
download | GT5-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')
-rw-r--r-- | src/main/java/kekztech/util/Util.java | 93 |
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); + } + +} |