aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersDryingRecipe.java
diff options
context:
space:
mode:
authorAlexdoru <57050655+Alexdoru@users.noreply.github.com>2024-09-07 05:40:03 +0200
committerGitHub <noreply@github.com>2024-09-07 03:40:03 +0000
commit82604eadb847335e4b4ddf2e90a28b325786837b (patch)
treeb5c34fa3ab38181fc47ec20c8537a5db34e285e1 /src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersDryingRecipe.java
parentba7a419aacf0b0eb33afbde5663640a0908b77ce (diff)
downloadGT5-Unofficial-82604eadb847335e4b4ddf2e90a28b325786837b.tar.gz
GT5-Unofficial-82604eadb847335e4b4ddf2e90a28b325786837b.tar.bz2
GT5-Unofficial-82604eadb847335e4b4ddf2e90a28b325786837b.zip
Remove a bunch more reflection (#3074)
Co-authored-by: boubou19 <miisterunknown@gmail.com>
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersDryingRecipe.java')
-rw-r--r--src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersDryingRecipe.java91
1 files changed, 26 insertions, 65 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersDryingRecipe.java b/src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersDryingRecipe.java
index 4adac363e8..4136b54309 100644
--- a/src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersDryingRecipe.java
+++ b/src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersDryingRecipe.java
@@ -1,9 +1,7 @@
package gtPlusPlus.xmod.tinkers.util;
-import static gregtech.api.enums.Mods.TinkerConstruct;
import static gtPlusPlus.api.recipe.GTPPRecipeMaps.chemicalDehydratorRecipes;
-import java.lang.reflect.Field;
import java.util.List;
import net.minecraft.item.ItemStack;
@@ -14,7 +12,7 @@ import gregtech.api.enums.TierEU;
import gregtech.api.util.GTUtility;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
-import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import tconstruct.library.crafting.DryingRackRecipes;
public class TinkersDryingRecipe {
@@ -24,20 +22,25 @@ public class TinkersDryingRecipe {
public final ItemStack input;
public final ItemStack result;
+ public TinkersDryingRecipe(final ItemStack input, final int time, final ItemStack result) {
+ this.time = time;
+ this.input = input;
+ this.result = result;
+ Logger.INFO(
+ "Generating Drying Recipe. Input: " + input.getDisplayName() + ", Output: " + result.getDisplayName());
+ }
+
public static void generateAllDryingRecipes() {
- List<?> aRecipes = TinkersUtils.getDryingRecipes();
- if (aRecipes != null && aRecipes.size() > 0) {
- for (Object o : aRecipes) {
+ List<DryingRackRecipes.DryingRecipe> aRecipes = TinkersDryingRecipe.getDryingRecipes();
+ if (!aRecipes.isEmpty()) {
+ for (DryingRackRecipes.DryingRecipe recipe : aRecipes) {
Logger.INFO(
- "Trying to generate recipe using object of type " + o.getClass()
+ "Trying to generate recipe using object of type " + recipe.getClass()
.getSimpleName());
- generateFromTinkersRecipeObject(o);
+ generateFromTinkersRecipe(recipe);
}
} else {
- Logger.INFO(
- "Error generating Drying recipes, map was either null or empty. Null? " + (aRecipes != null)
- + ", Size: "
- + aRecipes.size());
+ Logger.INFO("Error generating Drying recipes, map was empty. Size: " + aRecipes.size());
}
if (!recipes.isEmpty()) {
Logger.INFO("Adding " + recipes.size() + " drying rack recipes to the dehydrator.");
@@ -52,61 +55,19 @@ public class TinkersDryingRecipe {
}
}
- public static TinkersDryingRecipe generateFromTinkersRecipeObject(Object o) {
- Field aTime;
- Field aInput;
- Field aOutput;
- Class aTinkerClass = ReflectionUtils.getClass("tconstruct.library.crafting.DryingRackRecipes.DryingRecipe"); // o.getClass();
- if (aTinkerClass == null || TinkerConstruct.isModLoaded()) {
- Logger.INFO(
- "Error generating Drying Recipe, could not find class. Exists? "
- + ReflectionUtils.doesClassExist("tconstruct.library.crafting.DryingRackRecipes.DryingRecipe"));
- Class clazz = ReflectionUtils.getClass("tconstruct.library.crafting.DryingRackRecipes");
- Class[] y = clazz.getDeclaredClasses();
- if (y == null || y.length <= 0) {
- Logger.INFO("No hidden inner classes.");
- return null;
- } else {
- boolean found = false;
- for (Class h : y) {
- Logger.INFO("Found hidden inner class: " + h.getCanonicalName());
- if (h.getSimpleName()
- .toLowerCase()
- .equals("dryingrecipe")) {
- Logger.INFO("Found correct recipe. Caching at correct location.");
- ReflectionUtils.mCachedClasses
- .put("tconstruct.library.crafting.DryingRackRecipes.DryingRecipe", h);
- aTinkerClass = h;
- found = true;
- break;
- }
- }
- if (!found) {
- return null;
- }
- }
- }
- aTime = ReflectionUtils.getField(aTinkerClass, "time");
- aInput = ReflectionUtils.getField(aTinkerClass, "input");
- aOutput = ReflectionUtils.getField(aTinkerClass, "result");
- try {
- int time_internal = aTime.getInt(o);
- ItemStack input_internal = (ItemStack) aInput.get(o);
- ItemStack result_internal = (ItemStack) aOutput.get(o);
- return new TinkersDryingRecipe(input_internal, time_internal, result_internal);
- } catch (Throwable b) {
- b.printStackTrace();
- }
- return null;
+ private static void generateFromTinkersRecipe(DryingRackRecipes.DryingRecipe recipe) {
+ recipes.add(new TinkersDryingRecipe(recipe.input, recipe.time, recipe.result));
}
- public TinkersDryingRecipe(final ItemStack input, final int time, final ItemStack result) {
- this.time = time;
- this.input = input;
- this.result = result;
- Logger.INFO(
- "Generating Drying Recipe. Input: " + input.getDisplayName() + ", Output: " + result.getDisplayName());
- recipes.add(this);
+ private static List<DryingRackRecipes.DryingRecipe> getDryingRecipes() {
+ AutoMap<DryingRackRecipes.DryingRecipe> aData = new AutoMap<>();
+ int aCount = 0;
+ for (DryingRackRecipes.DryingRecipe recipe : DryingRackRecipes.recipes) {
+ aData.put(recipe);
+ aCount++;
+ }
+ Logger.INFO("Found " + aCount + " Tinkers drying rack recipes.");
+ return aData;
}
public boolean matches(ItemStack input) {