From 608c0bf36b124cfcf8b402bc24acf3d07052f9a1 Mon Sep 17 00:00:00 2001 From: WanionCane Date: Sun, 5 Nov 2017 10:42:28 -0200 Subject: [PATCH] 1.12.2-1.2: Fixed Issue #42 --- build.gradle | 2 +- libs/WanionLib-1.12.2-1.1-dev.jar | Bin 63626 -> 0 bytes src/main/java/wanion/unidict/Config.java | 12 ++- src/main/java/wanion/unidict/UniDict.java | 16 ++++ .../java/wanion/unidict/common/Reference.java | 6 +- .../integration/CraftingIntegration.java | 5 +- .../wanion/unidict/proxy/ClientProxy.java | 85 ++++++++++++++++++ .../wanion/unidict/proxy/CommonProxy.java | 14 +++ .../unidict/resource/UniResourceHandler.java | 29 +++++- src/main/resources/mcmod.info | 2 +- 10 files changed, 161 insertions(+), 10 deletions(-) delete mode 100644 libs/WanionLib-1.12.2-1.1-dev.jar create mode 100644 src/main/java/wanion/unidict/proxy/ClientProxy.java create mode 100644 src/main/java/wanion/unidict/proxy/CommonProxy.java diff --git a/build.gradle b/build.gradle index f9acaeb..e68581f 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-1.1b" +version = "1.12.2-1.2" group = "wanion.unidict" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "UniDict" diff --git a/libs/WanionLib-1.12.2-1.1-dev.jar b/libs/WanionLib-1.12.2-1.1-dev.jar deleted file mode 100644 index 0c1dcb1b0551af11b4188f64f22f702b9a297131..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63626 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 metalsToUnify; public final Set childrenOfMetals; public final List resourceBlackList; + public final Set recipesToIgnore; public final Map> customUnifiedResources; - // userRegisteredOreDictEntries + // userEntries + public final List userRemovedOreDictEntries; public final List userRegisteredOreDictEntries; // modules public final boolean integrationModule; @@ -91,8 +94,15 @@ private Config() metalsToUnify = Collections.unmodifiableSet(Sets.newLinkedHashSet(Arrays.asList(config.getStringList("metalsToUnify", resources, new String[]{"Iron", "Gold", "Copper", "Tin", "Silver", "Lead", "Nickel", "Platinum", "Zinc", "Aluminium", "Aluminum", "Alumina", "Chromium", "Chrome", "Uranium", "Iridium", "Osmium", "Bronze", "Steel", "Brass", "Invar", "Electrum", "Cupronickel", "Constantan"}, "list of things to do unifying things.\n")))); childrenOfMetals = Collections.unmodifiableSet(Sets.newLinkedHashSet(Arrays.asList(config.getStringList("childrenOfMetals", resources, new String[]{"ore", "dustTiny", "dustSmall", "chunk", "dust", "nugget", "ingot", "block", "plate", "gear", "rod"}, "what kind of child do you want to make a standard?\n")))); resourceBlackList = Arrays.asList(config.getStringList("resourceBlackList", resources, new String[]{"Aluminum", "Alumina", "Chrome", "Constantan"}, "resources to be black-listed.\nthis exists to avoid duplicates.\nthis affect the API.")); + recipesToIgnore = new HashSet<>(); + for (final String recipeToIgnore : config.getStringList("recipeToIgnoreList", resources, new String[]{"minecraft:iron_nugget", "minecraft:iron_block", "minecraft:iron_ingot_from_block", "minecraft:iron_ingot_from_nuggets", "minecraft:gold_nugget", "minecraft:gold_ingot_from_block", "minecraft:gold_ingot_from_nuggets", "minecraft:gold_block"}, "add here recipes (names) that you don't want the Crafting Integration to mess with.")) { + final int separator = recipeToIgnore.indexOf(':'); + if (separator > 0) + recipesToIgnore.add(new ResourceLocation(recipeToIgnore.substring(0, separator), recipeToIgnore.substring(separator + 1, recipeToIgnore.length()))); + } customUnifiedResources = Collections.unmodifiableMap(getCustomUnifiedResourcesMap()); // userRegisteredOreDictEntries + userRemovedOreDictEntries = Arrays.asList(config.getStringList("userRemovedOreDictEntries", general, new String[]{}, "This allows to the user remove entries before the Unification happen.\nthis is mainly useful to avoid trying to unify certain things.\n\nFormat:\nironIngot-minecraft:iron_ingot#0\nThe example above will remove Iron Ingot from ironIngot.")); userRegisteredOreDictEntries = Arrays.asList(config.getStringList("userRegisteredOreDictEntries", general, new String[]{}, "This allows to the user register their own ore entries before the Unification happen.\nthis is mainly useful when the user is trying to unify things that aren't registered previously in the Ore Dictionary.\n\nFormat:\nweirdStone+minecraft:stone#1\nThe example above will register Granite as weirdStone.")); // modules integrationModule = config.getBoolean("integration", "modules", true, "Integration Module.\nif false all the Integrations will be disabled.\n"); diff --git a/src/main/java/wanion/unidict/UniDict.java b/src/main/java/wanion/unidict/UniDict.java index 732ab9c..8c0b211 100644 --- a/src/main/java/wanion/unidict/UniDict.java +++ b/src/main/java/wanion/unidict/UniDict.java @@ -9,6 +9,7 @@ */ import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.discovery.ASMDataTable; import net.minecraftforge.fml.common.event.*; import net.minecraftforge.fml.common.network.NetworkCheckHandler; @@ -21,6 +22,7 @@ import wanion.unidict.common.SpecificEntryItemStackComparator; import wanion.unidict.common.SpecificKindItemStackComparator; import wanion.unidict.integration.IntegrationModule; +import wanion.unidict.proxy.CommonProxy; import wanion.unidict.resource.ResourceHandler; import wanion.unidict.resource.UniResourceHandler; @@ -75,6 +77,14 @@ public static UniDictAPI getAPI() return dependencies.get(UniDictAPI.class); } + public static ModuleHandler getModuleHandler() + { + return instance.moduleHandler; + } + + @SidedProxy(clientSide = CLIENT_PROXY, serverSide = SERVER_PROXY) + public static CommonProxy proxy; + @Mod.EventHandler public void preInit(final FMLPreInitializationEvent event) { @@ -93,6 +103,12 @@ public void postInit(final FMLPostInitializationEvent event) { uniResourceHandler.postInit(); moduleHandler.startModules(event); + proxy.postInit(); + clean(); + } + + private void clean() + { uniResourceHandler = null; moduleHandler = null; dependencies = null; diff --git a/src/main/java/wanion/unidict/common/Reference.java b/src/main/java/wanion/unidict/common/Reference.java index 30a39f9..56c7cda 100644 --- a/src/main/java/wanion/unidict/common/Reference.java +++ b/src/main/java/wanion/unidict/common/Reference.java @@ -14,10 +14,12 @@ 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-1.1b"; - public static final String DEPENDENCIES = "required-after:wanionlib@[1.12.2-1.1,);after:*"; + public static final String MOD_VERSION = "1.12.2-1.2"; + public static final String DEPENDENCIES = "required-after:wanionlib@[1.12.2-1.2,);after:*"; public static final char SLASH = separatorChar; public static final String MC_VERSION = "[1.12,]"; + public static final String CLIENT_PROXY = "wanion.unidict.proxy.ClientProxy"; + public static final String SERVER_PROXY = "wanion.unidict.proxy.CommonProxy"; private Reference() {} } \ No newline at end of file diff --git a/src/main/java/wanion/unidict/integration/CraftingIntegration.java b/src/main/java/wanion/unidict/integration/CraftingIntegration.java index ef7734e..cd7fc99 100644 --- a/src/main/java/wanion/unidict/integration/CraftingIntegration.java +++ b/src/main/java/wanion/unidict/integration/CraftingIntegration.java @@ -30,7 +30,7 @@ import java.lang.reflect.Method; import java.util.*; -final class CraftingIntegration extends AbstractIntegrationThread +public final class CraftingIntegration extends AbstractIntegrationThread { private final Set> recipes = RegistryManager.ACTIVE.getRegistry(GameData.RECIPES).getEntries(); private final Map, IRecipeResearcher> shapedResearcherMap = new IdentityHashMap<>(); @@ -76,7 +76,6 @@ public String call() reCreateTheRecipes(); } catch (Exception e) { UniDict.getLogger().error(threadName + e); - e.printStackTrace(); } return threadName + "Why so many recipes? I had to deal with " + totalRecipesReCreated + " recipes."; } @@ -88,7 +87,7 @@ private void doTheResearch() for (final Map.Entry entry : recipes) { final IRecipe recipe = entry.getValue(); boolean isShapeless = false; - if ((recipe == null || recipe.getRecipeOutput() == ItemStack.EMPTY || (bufferContainer = resourceHandler.getContainer(entry.getValue().getRecipeOutput())) == null || !(shapedResearcherMap.containsKey(recipe.getClass()) || (isShapeless = shapelessResearcherMap.containsKey(recipe.getClass()))))) + if (config.recipesToIgnore.contains(entry.getKey()) || (recipe == null || recipe.getRecipeOutput() == ItemStack.EMPTY || (bufferContainer = resourceHandler.getContainer(entry.getValue().getRecipeOutput())) == null || !(shapedResearcherMap.containsKey(recipe.getClass()) || (isShapeless = shapelessResearcherMap.containsKey(recipe.getClass()))))) continue; try { final int recipeKey; diff --git a/src/main/java/wanion/unidict/proxy/ClientProxy.java b/src/main/java/wanion/unidict/proxy/ClientProxy.java new file mode 100644 index 0000000..f8892e4 --- /dev/null +++ b/src/main/java/wanion/unidict/proxy/ClientProxy.java @@ -0,0 +1,85 @@ +package wanion.unidict.proxy; + +/* + * Created by WanionCane(https://github.com/WanionCane). + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +import com.google.common.collect.HashBasedTable; +import com.google.common.collect.Table; +import net.minecraft.client.gui.recipebook.RecipeList; +import net.minecraft.client.util.RecipeBookClient; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; +import net.minecraft.item.crafting.IRecipe; +import wanion.lib.common.Util; +import wanion.lib.module.AbstractModule; +import wanion.unidict.UniDict; +import wanion.unidict.integration.CraftingIntegration; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class ClientProxy extends CommonProxy +{ + private final Map> RECIPES_BY_TAB = Util.getField(RecipeBookClient.class, "RECIPES_BY_TAB", "field_194086_e", null, Map.class); + private final List ALL_RECIPES = Util.getField(RecipeBookClient.class, "ALL_RECIPES", "field_194087_f", null, List.class); + + @Override + public void postInit() + { + final AbstractModule integrationModule = UniDict.getModuleHandler().getModule("Integration"); + if (integrationModule == null || !integrationModule.getManager().containsInstance(CraftingIntegration.class)) + return; + + RECIPES_BY_TAB.clear(); + ALL_RECIPES.clear(); + + final Table table = HashBasedTable.create(); + + for (IRecipe irecipe : CraftingManager.REGISTRY) { + if (!irecipe.isDynamic()) { + CreativeTabs creativetabs = getItemStackTab(irecipe.getRecipeOutput()); + String s = irecipe.getGroup(); + RecipeList recipelist1; + + if (s.isEmpty()) { + recipelist1 = newRecipeList(creativetabs); + } else { + recipelist1 = table.get(creativetabs, s); + + if (recipelist1 == null) { + recipelist1 = newRecipeList(creativetabs); + table.put(creativetabs, s, recipelist1); + } + } + + recipelist1.add(irecipe); + } + } + } + + private RecipeList newRecipeList(CreativeTabs creativeTabs) + { + final RecipeList recipelist = new RecipeList(); + ALL_RECIPES.add(recipelist); + (RECIPES_BY_TAB.computeIfAbsent(creativeTabs, (p_194085_0_) -> new ArrayList<>())).add(recipelist); + (RECIPES_BY_TAB.computeIfAbsent(CreativeTabs.SEARCH, (p_194083_0_) -> new ArrayList<>())).add(recipelist); + return recipelist; + } + + private CreativeTabs getItemStackTab(ItemStack itemStack) + { + CreativeTabs creativetabs = itemStack.getItem().getCreativeTab(); + if (creativetabs != CreativeTabs.BUILDING_BLOCKS && creativetabs != CreativeTabs.TOOLS && creativetabs != CreativeTabs.REDSTONE) { + return creativetabs == CreativeTabs.COMBAT ? CreativeTabs.TOOLS : CreativeTabs.MISC; + } else { + return creativetabs; + } + } +} \ No newline at end of file diff --git a/src/main/java/wanion/unidict/proxy/CommonProxy.java b/src/main/java/wanion/unidict/proxy/CommonProxy.java new file mode 100644 index 0000000..f5b6338 --- /dev/null +++ b/src/main/java/wanion/unidict/proxy/CommonProxy.java @@ -0,0 +1,14 @@ +package wanion.unidict.proxy; + +/* + * Created by WanionCane(https://github.com/WanionCane). + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +public class CommonProxy +{ + public void postInit() {} +} \ No newline at end of file diff --git a/src/main/java/wanion/unidict/resource/UniResourceHandler.java b/src/main/java/wanion/unidict/resource/UniResourceHandler.java index f502959..849e299 100644 --- a/src/main/java/wanion/unidict/resource/UniResourceHandler.java +++ b/src/main/java/wanion/unidict/resource/UniResourceHandler.java @@ -20,7 +20,6 @@ import net.minecraftforge.oredict.OreDictionary; import org.apache.commons.lang3.text.WordUtils; import wanion.lib.common.Dependencies; -import wanion.lib.common.MetaItem; import wanion.unidict.Config; import wanion.unidict.UniDict; import wanion.unidict.UniOreDictionary; @@ -92,11 +91,38 @@ static Set getEntryJEIBlackSet() public void init() { + removeEntries(); registerCustomEntries(); gatherResources(); createAdditionalFiles(); } + private void removeEntries() + { + config.userRemovedOreDictEntries.forEach(customEntries -> { + final int plusSeparator = customEntries.indexOf('-'); + if (plusSeparator != -1 && plusSeparator > 0) { + final String oreName = customEntries.substring(0, plusSeparator); + final List oreList = UniOreDictionary.get(oreName); + if (oreList == null) + UniDict.getLogger().warn("UniDict couldn't find the entry: " + oreName); + else { + final String itemName = customEntries.substring(plusSeparator + 1, customEntries.length()); + final int separatorChar = itemName.indexOf('#'); + final Item item = Item.REGISTRY.getObject(new ResourceLocation(separatorChar == -1 ? itemName : itemName.substring(0, separatorChar))); + if (item != null) { + final int metaData = separatorChar == -1 ? 0 : Integer.parseInt(itemName.substring(separatorChar + 1, itemName.length())); + final ItemStack itemStack = new ItemStack(item, 1, metaData); + boolean found = false; + for (final Iterator itemStackIterator = oreList.iterator(); !found && itemStackIterator.hasNext(); ) + if (found = itemStack.isItemEqual(itemStackIterator.next())) + itemStackIterator.remove(); + } + } + } + }); + } + private void registerCustomEntries() { config.userRegisteredOreDictEntries.forEach(customEntries -> { @@ -117,7 +143,6 @@ private void registerCustomEntries() }); } - private void gatherResources() { final List allTheResourceNames = Collections.synchronizedList(new ArrayList<>()); diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 89c7fbb..a8f295c 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-1.1b", + "version": "1.12.2-1.2", "mcversion": "${mcversion}", "url": "http://minecraft.curseforge.com/projects/unidict", "updateUrl": "",