From 985e43f043176fcfa61395e8ee04719904bd2f27 Mon Sep 17 00:00:00 2001 From: WanionCane Date: Sat, 17 Mar 2018 14:55:06 -0300 Subject: [PATCH] 1.12.2-2.4c: fix #84 --- build.gradle | 4 ++-- .../java/wanion/unidict/common/Reference.java | 2 +- .../unidict/recipe/ForgeRecipeResearcher.java | 20 +++++++++++++++++++ .../unidict/recipe/IC2RecipeResearcher.java | 9 ++++++++- src/main/resources/mcmod.info | 2 +- 5 files changed, 32 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index 33b5552..0b6403f 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ apply plugin: 'net.minecraftforge.gradle.forge' //Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. -version = "1.12.2-2.4" +version = "1.12.2-2.4c" group = "wanion.unidict" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "UniDict" @@ -21,7 +21,7 @@ compileJava { } minecraft { - version = "1.12.2-14.23.1.2555" + version = "1.12.2-14.23.2.2611" runDir = "run" // the mappings can be changed at any time, and must be in the following format. diff --git a/src/main/java/wanion/unidict/common/Reference.java b/src/main/java/wanion/unidict/common/Reference.java index f1fa2f1..2f89c6f 100644 --- a/src/main/java/wanion/unidict/common/Reference.java +++ b/src/main/java/wanion/unidict/common/Reference.java @@ -14,7 +14,7 @@ public final class Reference { public static final String MOD_ID = "unidict"; public static final String MOD_NAME = "UniDict"; - public static final String MOD_VERSION = "1.12.2-2.4"; + public static final String MOD_VERSION = "1.12.2-2.4c"; public static final String DEPENDENCIES = "required-after:wanionlib@[1.12.2-1.5,);after:*"; public static final char SLASH = separatorChar; public static final String MC_VERSION = "[1.12,]"; diff --git a/src/main/java/wanion/unidict/recipe/ForgeRecipeResearcher.java b/src/main/java/wanion/unidict/recipe/ForgeRecipeResearcher.java index 73ee1ff..8126aec 100644 --- a/src/main/java/wanion/unidict/recipe/ForgeRecipeResearcher.java +++ b/src/main/java/wanion/unidict/recipe/ForgeRecipeResearcher.java @@ -14,6 +14,7 @@ import net.minecraft.item.crafting.Ingredient; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.oredict.OreIngredient; import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; import wanion.lib.recipe.RecipeAttributes; @@ -24,6 +25,7 @@ import wanion.unidict.resource.UniResourceContainer; import javax.annotation.Nonnull; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -31,6 +33,20 @@ public class ForgeRecipeResearcher extends AbstractRecipeResearcher { + private final Field oresField; + + public ForgeRecipeResearcher() + { + Field dummyOresField = null; + try { + dummyOresField = OreIngredient.class.getDeclaredField("ores"); + dummyOresField.setAccessible(true); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } + oresField = dummyOresField; + } + @Override public int getShapedRecipeKey(@Nonnull final ShapedOreRecipe recipe) { @@ -88,6 +104,10 @@ public ShapedOreRecipe getNewShapedRecipe(@Nonnull final ShapedOreRecipe recipe) final ItemStack itemStack = ingredient.getMatchingStacks()[0]; final UniResourceContainer container = resourceHandler.getContainer(itemStack); newRecipeInputs[y * root + x] = container != null ? (itemStacksOnly ? container.getMainEntry(itemStack) : container.name) : itemStack; + } else if (ingredient instanceof OreIngredient) { + try { + newRecipeInputs[y * root + x] = uniOreDictionary.getName(oresField.get(ingredient)); + } catch (IllegalAccessException e) { e.printStackTrace(); } } } } diff --git a/src/main/java/wanion/unidict/recipe/IC2RecipeResearcher.java b/src/main/java/wanion/unidict/recipe/IC2RecipeResearcher.java index d8545e9..f28fa7b 100644 --- a/src/main/java/wanion/unidict/recipe/IC2RecipeResearcher.java +++ b/src/main/java/wanion/unidict/recipe/IC2RecipeResearcher.java @@ -15,6 +15,7 @@ import ic2.core.recipe.AdvRecipe; import ic2.core.recipe.AdvShapelessRecipe; import ic2.core.recipe.RecipeInputOreDict; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraftforge.oredict.ShapedOreRecipe; @@ -32,6 +33,8 @@ public class IC2RecipeResearcher extends AbstractRecipeResearcher { + private final Item ic2ForgeHammer = Item.REGISTRY.getObject(new ResourceLocation("ic2", "forge_hammer")); + @Override public int getShapedRecipeKey(@Nonnull AdvRecipe recipe) { @@ -166,8 +169,12 @@ public ShapelessOreRecipe getNewShapelessRecipe(@Nonnull final AdvShapelessRecip newInputs.add(oreName); else if (notEmpty) newInputs.add(recipeInput.getInputs().get(0)); - } else + } else { + if (oreName.equals("craftingToolForgeHammer") && ic2ForgeHammer != null) + newInputs.add(new ItemStack(ic2ForgeHammer, 1, 32767)); + else newInputs.add(oreName); + } } } final UniResourceContainer outputContainer = resourceHandler.getContainer(recipe.getRecipeOutput()); diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index a7562ae..fdf1ca5 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "unidict", "name": "UniDict", "description": "a mod about unifying all the things.", - "version": "1.12.2-2.4", + "version": "1.12.2-2.4c", "mcversion": "${mcversion}", "url": "http://minecraft.curseforge.com/projects/unidict", "updateUrl": "",