diff --git a/api b/api index 28235a758..11dd08b63 160000 --- a/api +++ b/api @@ -1 +1 @@ -Subproject commit 28235a758e66f075cbe8596501bbf4fd264ab018 +Subproject commit 11dd08b6340aecf0d8d8003fa3cb2139f5961c1c diff --git a/src/main/java/forestry/plugins/PluginArboriculture.java b/src/main/java/forestry/plugins/PluginArboriculture.java index c5dd57e33..6a5e43dbb 100644 --- a/src/main/java/forestry/plugins/PluginArboriculture.java +++ b/src/main/java/forestry/plugins/PluginArboriculture.java @@ -311,8 +311,6 @@ public class PluginArboriculture extends ForestryPlugin { @Override protected void registerBackpackItems() { - if (BackpackManager.backpackItems == null) - return; for (ForestryBlock block : logs) BackpackManager.definitions.get("forester").addValidItem(block.getWildcard()); diff --git a/src/main/java/forestry/plugins/PluginManager.java b/src/main/java/forestry/plugins/PluginManager.java index 3c63764b9..2b75f79dc 100755 --- a/src/main/java/forestry/plugins/PluginManager.java +++ b/src/main/java/forestry/plugins/PluginManager.java @@ -169,6 +169,10 @@ public class PluginManager { for (Module m : loadedModules) { ForestryPlugin plugin = m.instance; loadPlugin(plugin); + } + + for (Module m : loadedModules) { + ForestryPlugin plugin = m.instance; Proxies.log.fine("Pre-Init Start: {0}", plugin); plugin.preInit(); plugin.registerItems(); @@ -177,7 +181,7 @@ public class PluginManager { } private static void loadPlugin(ForestryPlugin plugin) { - Proxies.log.fine("Loading Plugin: {0}", plugin); + Proxies.log.fine("Registering Handlers for Plugin: {0}", plugin); IGuiHandler guiHandler = plugin.getGuiHandler(); if (guiHandler != null) diff --git a/src/main/java/forestry/plugins/PluginStorage.java b/src/main/java/forestry/plugins/PluginStorage.java index 2dcbd8ab8..d4b2cbd52 100755 --- a/src/main/java/forestry/plugins/PluginStorage.java +++ b/src/main/java/forestry/plugins/PluginStorage.java @@ -91,7 +91,15 @@ public class PluginStorage extends ForestryPlugin implements IOreDictionaryHandl @Override public void preInit() { BackpackManager.backpackInterface = new BackpackHelper(); - createBackpackArrays(); + + BackpackManager.backpackItems = new ArrayList[6]; + + BackpackManager.backpackItems[0] = minerItems; + BackpackManager.backpackItems[1] = diggerItems; + BackpackManager.backpackItems[2] = foresterItems; + BackpackManager.backpackItems[3] = hunterItems; + BackpackManager.backpackItems[4] = adventurerItems; + BackpackManager.backpackItems[5] = builderItems; } @Override @@ -121,6 +129,12 @@ public class PluginStorage extends ForestryPlugin implements IOreDictionaryHandl config.save(); + BackpackManager.definitions.get("miner").addValidItems(minerItems); + BackpackManager.definitions.get("digger").addValidItems(diggerItems); + BackpackManager.definitions.get("forester").addValidItems(foresterItems); + BackpackManager.definitions.get("hunter").addValidItems(hunterItems); + BackpackManager.definitions.get("adventurer").addValidItems(adventurerItems); + BackpackManager.definitions.get("builder").addValidItems(builderItems); } public static void addBackpackItem(String pack, ItemStack stack) { @@ -225,48 +239,43 @@ public class PluginStorage extends ForestryPlugin implements IOreDictionaryHandl @Override protected void registerItems() { - // / BACKPACKS - ForestryItem.apiaristBackpack.registerItem(new ItemNaturalistBackpack(GuiId.ApiaristBackpackGUI.ordinal(), new BackpackDefinitionApiarist("apiarist", 0xc4923d)).setCreativeTab(Tabs.tabApiculture), "apiaristBag"); - BackpackDefinition definition = (BackpackDefinition) ((ItemBackpack) ForestryItem.apiaristBackpack.item()).getDefinition(); + BackpackDefinition definition = new BackpackDefinitionApiarist("apiarist", 0xc4923d); BackpackManager.definitions.put(definition.getKey(), definition); + ForestryItem.apiaristBackpack.registerItem(new ItemNaturalistBackpack(GuiId.ApiaristBackpackGUI.ordinal(), definition).setCreativeTab(Tabs.tabApiculture), "apiaristBag"); - ForestryItem.lepidopteristBackpack.registerItem(new ItemNaturalistBackpack(GuiId.LepidopteristBackpackGUI.ordinal(), new BackpackDefinitionLepidopterist("lepidopterist", 0x995b31)).setCreativeTab(Tabs.tabLepidopterology), "lepidopteristBag"); - definition = (BackpackDefinition) ((ItemBackpack) ForestryItem.lepidopteristBackpack.item()).getDefinition(); + definition = new BackpackDefinitionLepidopterist("lepidopterist", 0x995b31); BackpackManager.definitions.put(definition.getKey(), definition); + ForestryItem.lepidopteristBackpack.registerItem(new ItemNaturalistBackpack(GuiId.LepidopteristBackpackGUI.ordinal(), definition).setCreativeTab(Tabs.tabLepidopterology), "lepidopteristBag"); - definition = new BackpackDefinition("miner", 0x36187d).setValidItems(BackpackManager.backpackItems[0]); + definition = new BackpackDefinition("miner", 0x36187d); BackpackManager.definitions.put(definition.getKey(), definition); ForestryItem.minerBackpack.registerItem(BackpackManager.backpackInterface.addBackpack(definition, EnumBackpackType.T1), "minerBag"); ForestryItem.minerBackpackT2.registerItem(BackpackManager.backpackInterface.addBackpack(definition, EnumBackpackType.T2), "minerBagT2"); - definition = new BackpackDefinition("digger", 0x363cc5).setValidItems(BackpackManager.backpackItems[1]); + definition = new BackpackDefinition("digger", 0x363cc5); BackpackManager.definitions.put(definition.getKey(), definition); ForestryItem.diggerBackpack.registerItem(BackpackManager.backpackInterface.addBackpack(definition, EnumBackpackType.T1), "diggerBag"); ForestryItem.diggerBackpackT2.registerItem(BackpackManager.backpackInterface.addBackpack(definition, EnumBackpackType.T2), "diggerBagT2"); - definition = new BackpackDefinition("forester", 0x347427) - .setValidItems(BackpackManager.backpackItems[2]); + definition = new BackpackDefinition("forester", 0x347427); BackpackManager.definitions.put(definition.getKey(), definition); ForestryItem.foresterBackpack.registerItem(BackpackManager.backpackInterface.addBackpack(definition, EnumBackpackType.T1), "foresterBag"); ForestryItem.foresterBackpackT2.registerItem(BackpackManager.backpackInterface.addBackpack(definition, EnumBackpackType.T2), "foresterBagT2"); - definition = new BackpackDefinition("hunter", 0x412215).setValidItems(BackpackManager.backpackItems[3]); + definition = new BackpackDefinition("hunter", 0x412215); BackpackManager.definitions.put(definition.getKey(), definition); ForestryItem.hunterBackpack.registerItem(BackpackManager.backpackInterface.addBackpack(definition, EnumBackpackType.T1), "hunterBag"); ForestryItem.hunterBackpackT2.registerItem(BackpackManager.backpackInterface.addBackpack(definition, EnumBackpackType.T2), "hunterBagT2"); - definition = new BackpackDefinition("adventurer", 0x7fb8c2) - .setValidItems(BackpackManager.backpackItems[4]); + definition = new BackpackDefinition("adventurer", 0x7fb8c2); BackpackManager.definitions.put(definition.getKey(), definition); ForestryItem.adventurerBackpack.registerItem(BackpackManager.backpackInterface.addBackpack(definition, EnumBackpackType.T1), "adventurerBag"); ForestryItem.adventurerBackpackT2.registerItem(BackpackManager.backpackInterface.addBackpack(definition, EnumBackpackType.T2), "adventurerBagT2"); - definition = new BackpackDefinition("builder", 0xdd3a3a) - .setValidItems(BackpackManager.backpackItems[5]); + definition = new BackpackDefinition("builder", 0xdd3a3a); BackpackManager.definitions.put(definition.getKey(), definition); ForestryItem.builderBackpack.registerItem(BackpackManager.backpackInterface.addBackpack(definition, EnumBackpackType.T1), "builderBag"); ForestryItem.builderBackpackT2.registerItem(BackpackManager.backpackInterface.addBackpack(definition, EnumBackpackType.T2), "builderBagT2"); - } @Override @@ -483,23 +492,6 @@ public class PluginStorage extends ForestryPlugin implements IOreDictionaryHandl } - @SuppressWarnings({"unchecked", "rawtypes"}) - private void createBackpackArrays() { - - if (BackpackManager.backpackItems != null) - return; - - BackpackManager.backpackItems = new ArrayList[6]; - - BackpackManager.backpackItems[0] = minerItems; - BackpackManager.backpackItems[1] = diggerItems; - BackpackManager.backpackItems[2] = foresterItems; - BackpackManager.backpackItems[3] = hunterItems; - BackpackManager.backpackItems[4] = adventurerItems; - BackpackManager.backpackItems[5] = builderItems; - - } - @Override protected void registerCrates() { } @@ -562,8 +554,6 @@ public class PluginStorage extends ForestryPlugin implements IOreDictionaryHandl @Override public void onOreRegistration(String name, ItemStack ore) { - createBackpackArrays(); - if (ore == null) { Proxies.log.warning("An ore/item of type %s was registered with the Forge ore dictionary, however the passed itemstack is null. Someone broke it. :(", name); return; diff --git a/src/main/java/forestry/storage/BackpackDefinition.java b/src/main/java/forestry/storage/BackpackDefinition.java index 18f3eaf48..44e3d0105 100755 --- a/src/main/java/forestry/storage/BackpackDefinition.java +++ b/src/main/java/forestry/storage/BackpackDefinition.java @@ -11,12 +11,13 @@ package forestry.storage; import java.util.ArrayList; +import java.util.List; +import forestry.core.utils.StackUtils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import forestry.api.storage.IBackpackDefinition; -import forestry.core.config.Defaults; import net.minecraft.item.Item; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.StatCollector; @@ -70,17 +71,17 @@ public class BackpackDefinition implements IBackpackDefinition { return secondaryColor; } - public BackpackDefinition setValidItems(ArrayList validItems) { - this.validItems = validItems; - return this; - } - @Override public void addValidItem(ItemStack validItem) { if (validItem.getItem() != null) this.validItems.add(validItem); } + public void addValidItems(List validItems) { + for (ItemStack validItem : validItems) + addValidItem(validItem); + } + public ArrayList getValidItems(EntityPlayer player) { return validItems; } @@ -88,12 +89,8 @@ public class BackpackDefinition implements IBackpackDefinition { @Override public boolean isValidItem(EntityPlayer player, ItemStack itemstack) { for (ItemStack stack : getValidItems(player)) - if (stack != null && stack.getItem() != null) - if (stack.getItemDamage() == Defaults.WILDCARD) { - if (stack.getItem() == itemstack.getItem()) - return true; - } else if (stack.isItemEqual(itemstack)) - return true; + if (StackUtils.isCraftingEquivalent(stack, itemstack, true, false)) + return true; return false; }