From 82604eadb847335e4b4ddf2e90a28b325786837b Mon Sep 17 00:00:00 2001 From: Alexdoru <57050655+Alexdoru@users.noreply.github.com> Date: Sat, 7 Sep 2024 05:40:03 +0200 Subject: Remove a bunch more reflection (#3074) Co-authored-by: boubou19 --- .../xmod/tinkers/util/TinkersDryingRecipe.java | 91 +++++++--------------- 1 file changed, 26 insertions(+), 65 deletions(-) (limited to 'src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersDryingRecipe.java') 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 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 getDryingRecipes() { + AutoMap 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) { -- cgit