aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod/gregtech/common/helpers/FlotationRecipeHandler.java
diff options
context:
space:
mode:
authorMartin Robertz <dream-master@gmx.net>2021-12-15 16:11:54 +0100
committerGitHub <noreply@github.com>2021-12-15 16:11:54 +0100
commit128c74faa99dfef8d056c1d82c6e4388b9d470e8 (patch)
tree2c84162154ba681232f86dffd4106db530236814 /src/main/java/gtPlusPlus/xmod/gregtech/common/helpers/FlotationRecipeHandler.java
parent47ce336f288a45aa3244c8ae1177499fa5080942 (diff)
parentff4b8c7068c2ea7d654e9beda00646d23e62b314 (diff)
downloadGT5-Unofficial-128c74faa99dfef8d056c1d82c6e4388b9d470e8.tar.gz
GT5-Unofficial-128c74faa99dfef8d056c1d82c6e4388b9d470e8.tar.bz2
GT5-Unofficial-128c74faa99dfef8d056c1d82c6e4388b9d470e8.zip
Merge pull request #65 from GTNewHorizons/unified-build-script2
Move sources and resources
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/gregtech/common/helpers/FlotationRecipeHandler.java')
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/helpers/FlotationRecipeHandler.java79
1 files changed, 79 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/helpers/FlotationRecipeHandler.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/helpers/FlotationRecipeHandler.java
new file mode 100644
index 0000000000..333939d800
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/helpers/FlotationRecipeHandler.java
@@ -0,0 +1,79 @@
+package gtPlusPlus.xmod.gregtech.common.helpers;
+
+import java.util.HashMap;
+
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.util.data.AES;
+import gtPlusPlus.xmod.gregtech.api.enums.CustomOrePrefix;
+import net.minecraft.item.ItemStack;
+
+public class FlotationRecipeHandler {
+
+ private static HashMap<String, Material> sMaterialMap = new HashMap<String, Material>();
+ private static HashMap<String, ItemStack> sMilledMap = new HashMap<String, ItemStack>();
+ private static final AES sEncodingHandler = new AES();
+
+ public static boolean registerOreType(Material aMaterial) {
+ String aMaterialKey = sEncodingHandler.encode(aMaterial.getUnlocalizedName());
+ if (sMaterialMap.containsKey(aMaterialKey)) {
+ CORE.crash("Tried to register a Flotation material to an ID already in use. ID: "+aMaterialKey);
+ return false;
+ }
+ else {
+ sMaterialMap.put(aMaterialKey, aMaterial);
+ sMilledMap.put(aMaterialKey, aMaterial.getMilled(1));
+ }
+ return true;
+ }
+
+ public static int getHashForMaterial(Material aMaterial) {
+ return getMaterialsID(aMaterial).hashCode();
+ }
+
+ public static String getMaterialsID(Material aMaterial) {
+ for (String aKey : sMaterialMap.keySet()) {
+ if (sMaterialMap.get(aKey).equals(aMaterial)) {
+ return aKey;
+ }
+ }
+ return "BAD_MATERIAL_ID";
+ }
+
+ public static Material getMaterialOfMilledProduct(ItemStack aMilled) {
+ for (String aKey : sMilledMap.keySet()) {
+ ItemStack aTempMilledStack = sMilledMap.get(aKey);
+ if (GT_Utility.areStacksEqual(aTempMilledStack, aMilled, true)) {
+ return sMaterialMap.get(aKey);
+ }
+ }
+ return null;
+ }
+
+ public static ItemStack findMilledStack(GT_Recipe aRecipe) {
+ if (aRecipe == null || aRecipe.mInputs == null || aRecipe.mInputs.length <= 0) {
+ return null;
+ }
+ return findMilledStack(aRecipe.mInputs);
+ }
+
+ public static ItemStack findMilledStack(ItemStack[] aInputs) {
+ if (aInputs == null || aInputs.length <= 0) {
+ return null;
+ }
+ for (ItemStack aStack : aInputs) {
+ if (CustomOrePrefix.milled.get().contains(aStack)) {
+ return aStack;
+ }
+ }
+ return null;
+ }
+
+ public static AES getEncoder() {
+ return sEncodingHandler;
+ }
+
+}