From 0e53fccfdbc7954592fc5df3632b23e1ec7fe98f Mon Sep 17 00:00:00 2001 From: mezz Date: Wed, 18 Nov 2015 14:41:25 -0800 Subject: [PATCH] Move food items into PluginFood.items --- src/main/java/forestry/Forestry.java | 31 +--- .../forestry/core/config/ForestryItem.java | 6 - .../java/forestry/food/BeverageEffect.java | 52 +++++++ .../forestry/food/InfuserMixtureManager.java | 5 +- .../food/inventory/ItemInventoryInfuser.java | 6 +- .../forestry/food/items/EnumBeverage.java | 103 ++++++++++++++ .../forestry/food/items/ItemBeverage.java | 132 ++++-------------- .../forestry/food/items/ItemRegistryFood.java | 44 ++++++ .../forestry/plugins/PluginApiculture.java | 16 +-- .../java/forestry/plugins/PluginFood.java | 43 ++---- 10 files changed, 261 insertions(+), 177 deletions(-) create mode 100644 src/main/java/forestry/food/items/EnumBeverage.java create mode 100644 src/main/java/forestry/food/items/ItemRegistryFood.java diff --git a/src/main/java/forestry/Forestry.java b/src/main/java/forestry/Forestry.java index abd2e5195..453ca04b5 100644 --- a/src/main/java/forestry/Forestry.java +++ b/src/main/java/forestry/Forestry.java @@ -11,8 +11,6 @@ package forestry; import java.io.File; -import java.util.HashMap; -import java.util.Map; import net.minecraft.block.Block; import net.minecraft.item.Item; @@ -38,7 +36,6 @@ import forestry.core.EventHandlerCore; import forestry.core.GuiHandler; import forestry.core.config.Config; import forestry.core.config.Constants; -import forestry.core.config.ForestryItem; import forestry.core.config.GameMode; import forestry.core.config.Version; import forestry.core.errors.EnumErrorCode; @@ -74,22 +71,6 @@ public class Forestry { public static Forestry instance; private File configFolder; - private static final Map mappedItems = new HashMap<>(); - - static { - mappedItems.put("Forestry:builderBackpack", ForestryItem.builderBackpack); - mappedItems.put("Forestry:builderBackpackT2", ForestryItem.builderBackpackT2); - mappedItems.put("Forestry:adventurerBackpack", ForestryItem.adventurerBackpack); - mappedItems.put("Forestry:adventurerBackpackT2", ForestryItem.adventurerBackpackT2); - mappedItems.put("Forestry:shortMead", ForestryItem.beverage); - mappedItems.put("Forestry:waterCan", ForestryItem.canWater); - mappedItems.put("Forestry:biofuelCan", ForestryItem.canEthanol); - mappedItems.put("Forestry:biomassCan", ForestryItem.canBiomass); - mappedItems.put("Forestry:bucketBiofuel", ForestryItem.bucketEthanol); - mappedItems.put("Forestry:refractoryBiofuel", ForestryItem.refractoryEthanol); - mappedItems.put("Forestry:waxCapsuleBiofuel", ForestryItem.waxCapsuleEthanol); - } - public Forestry() { ForestryAPI.instance = this; ForestryAPI.forestryConstants = new Constants(); @@ -168,12 +149,12 @@ public class Forestry { if (block != null) { mapping.remap(Item.getItemFromBlock(block)); Log.warning("Remapping item " + mapping.name + " to " + StringUtil.cleanBlockName(block)); - } else { - ForestryItem mappedItem = mappedItems.get(mapping.name); - if (mappedItem != null) { - mapping.remap(mappedItem.item()); - Log.warning("Remapping item " + mapping.name + " to " + mappedItem.name()); - } + // } else { + // ForestryItem mappedItem = mappedItems.get(mapping.name); + // if (mappedItem != null) { + // mapping.remap(mappedItem.item()); + // Log.warning("Remapping item " + mapping.name + " to " + mappedItem.name()); + // } } } } diff --git a/src/main/java/forestry/core/config/ForestryItem.java b/src/main/java/forestry/core/config/ForestryItem.java index 18ae076f4..a37a07a6c 100755 --- a/src/main/java/forestry/core/config/ForestryItem.java +++ b/src/main/java/forestry/core/config/ForestryItem.java @@ -46,18 +46,12 @@ public enum ForestryItem { catalogue, // Carpenter crate, - honeyedSlice, - ambrosia, - honeyPot, // Butterflies butterflyGE, flutterlyzer, serumGE, caterpillarGE, researchNote, - // Beverages - beverage, - infuser, // Backpacks apiaristBackpack, lepidopteristBackpack, diff --git a/src/main/java/forestry/food/BeverageEffect.java b/src/main/java/forestry/food/BeverageEffect.java index b6ec77cd5..2c11208b9 100755 --- a/src/main/java/forestry/food/BeverageEffect.java +++ b/src/main/java/forestry/food/BeverageEffect.java @@ -10,6 +10,14 @@ ******************************************************************************/ package forestry.food; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; + import forestry.api.food.BeverageManager; import forestry.api.food.IBeverageEffect; import forestry.core.utils.StringUtil; @@ -50,4 +58,48 @@ public abstract class BeverageEffect implements IBeverageEffect { return StringUtil.localize(description); } } + + public static List loadEffects(ItemStack stack) { + List effectsList = new ArrayList<>(); + + NBTTagCompound nbttagcompound = stack.getTagCompound(); + if (nbttagcompound == null) { + return effectsList; + } + + if (nbttagcompound.hasKey("E")) { + int effectLength = nbttagcompound.getInteger("L"); + NBTTagList nbttaglist = nbttagcompound.getTagList("E", 10); + IBeverageEffect[] effects = new IBeverageEffect[effectLength]; + for (int i = 0; i < nbttaglist.tagCount(); i++) { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + byte byte0 = nbttagcompound1.getByte("S"); + if (byte0 >= 0 && byte0 < effects.length) { + effects[byte0] = BeverageManager.effectList[nbttagcompound1.getInteger("ID")]; + } + } + effectsList = Arrays.asList(effects); + } + + return effectsList; + } + + public static void saveEffects(ItemStack stack, List effects) { + NBTTagCompound nbttagcompound = new NBTTagCompound(); + + NBTTagList nbttaglist = new NBTTagList(); + nbttagcompound.setInteger("L", effects.size()); + for (int i = 0; i < effects.size(); i++) { + IBeverageEffect effect = effects.get(i); + if (effect != null) { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("S", (byte) i); + nbttagcompound1.setInteger("ID", effect.getId()); + nbttaglist.appendTag(nbttagcompound1); + } + } + nbttagcompound.setTag("E", nbttaglist); + + stack.setTagCompound(nbttagcompound); + } } diff --git a/src/main/java/forestry/food/InfuserMixtureManager.java b/src/main/java/forestry/food/InfuserMixtureManager.java index 590326794..b9d95b344 100644 --- a/src/main/java/forestry/food/InfuserMixtureManager.java +++ b/src/main/java/forestry/food/InfuserMixtureManager.java @@ -18,7 +18,6 @@ import net.minecraft.item.ItemStack; import forestry.api.food.IBeverageEffect; import forestry.api.food.IInfuserManager; -import forestry.food.items.ItemBeverage; /** * contains the available mixtures. @@ -80,7 +79,7 @@ public class InfuserMixtureManager implements IInfuserManager { @Override public ItemStack getSeasoned(ItemStack base, ItemStack[] ingredients) { InfuserMixture[] mixtures = getMatchingMixtures(ingredients); - List effects = ItemBeverage.BeverageInfo.loadEffects(base); + List effects = BeverageEffect.loadEffects(base); int weight = 0; int meta = 0; @@ -94,7 +93,7 @@ public class InfuserMixtureManager implements IInfuserManager { ItemStack seasoned = base.copy(); seasoned.setItemDamage(meta); - ItemBeverage.BeverageInfo.saveEffects(seasoned, effects); + BeverageEffect.saveEffects(seasoned, effects); return seasoned; } } diff --git a/src/main/java/forestry/food/inventory/ItemInventoryInfuser.java b/src/main/java/forestry/food/inventory/ItemInventoryInfuser.java index b79bfef32..d51310136 100644 --- a/src/main/java/forestry/food/inventory/ItemInventoryInfuser.java +++ b/src/main/java/forestry/food/inventory/ItemInventoryInfuser.java @@ -14,8 +14,8 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import forestry.api.food.BeverageManager; -import forestry.core.config.ForestryItem; import forestry.core.inventory.ItemInventory; +import forestry.plugins.PluginFood; public class ItemInventoryInfuser extends ItemInventory { private static final short inputSlot = 0; @@ -42,7 +42,7 @@ public class ItemInventoryInfuser extends ItemInventory { } // Need a valid base - if (!input.isItemEqual(ForestryItem.beverage.getItemStack())) { + if (PluginFood.items.beverage != input.getItem()) { return; } @@ -95,7 +95,7 @@ public class ItemInventoryInfuser extends ItemInventory { @Override public boolean canSlotAccept(int slotIndex, ItemStack itemStack) { if (slotIndex == inputSlot) { - return ForestryItem.beverage.isItemEqual(itemStack); + return PluginFood.items.beverage == itemStack.getItem(); } else if (slotIndex >= ingredientSlot1 && slotIndex < ingredientSlot1 + ingredientSlotCount) { return BeverageManager.infuserManager.isIngredient(itemStack); } diff --git a/src/main/java/forestry/food/items/EnumBeverage.java b/src/main/java/forestry/food/items/EnumBeverage.java new file mode 100644 index 000000000..7f0c08751 --- /dev/null +++ b/src/main/java/forestry/food/items/EnumBeverage.java @@ -0,0 +1,103 @@ +/******************************************************************************* + * Copyright (c) 2011-2014 SirSengir. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser Public License v3 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-3.0.txt + * + * Various Contributors including, but not limited to: + * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges + ******************************************************************************/ +package forestry.food.items; + +import java.awt.Color; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +import forestry.core.render.TextureManager; + +public enum EnumBeverage implements ItemBeverage.IBeverageInfo { + MEAD_SHORT("meadShort", "glass", new Color(0xec9a19), new Color(0xffffff), 1, 0.2f, true), + MEAD_CURATIVE("meadCurative", "glass", new Color(0xc5feff), new Color(0xffffff), 1, 0.2f, true); + + public static final EnumBeverage[] VALUES = values(); + + private final String name; + private final String iconType; + private final int primaryColor; + private final int secondaryColor; + + @SideOnly(Side.CLIENT) + private IIcon iconBottle; + @SideOnly(Side.CLIENT) + private IIcon iconContents; + + private final int heal; + private final float saturation; + private final boolean isAlwaysEdible; + + EnumBeverage(String name, String iconType, Color primaryColor, Color secondaryColor, int heal, float saturation, boolean isAlwaysEdible) { + this.name = name; + this.iconType = iconType; + this.primaryColor = primaryColor.getRGB(); + this.secondaryColor = secondaryColor.getRGB(); + this.heal = heal; + this.saturation = saturation; + this.isAlwaysEdible = isAlwaysEdible; + } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister register) { + iconBottle = TextureManager.registerTex(register, "liquids/" + iconType + ".bottle"); + iconContents = TextureManager.registerTex(register, "liquids/" + iconType + ".contents"); + } + + @Override + public int getHeal() { + return heal; + } + + @Override + public float getSaturation() { + return saturation; + } + + @Override + public boolean isAlwaysEdible() { + return isAlwaysEdible; + } + + @Override + public String getName() { + return name; + } + + @Override + public int getPrimaryColor() { + return primaryColor; + } + + @Override + public int getSecondaryColor() { + return secondaryColor; + } + + @Override + public boolean isSecret() { + return false; + } + + @Override + public IIcon getIconBottle() { + return iconBottle; + } + + @Override + public IIcon getIconContents() { + return iconContents; + } +} diff --git a/src/main/java/forestry/food/items/ItemBeverage.java b/src/main/java/forestry/food/items/ItemBeverage.java index efff644b9..515e4c0f0 100755 --- a/src/main/java/forestry/food/items/ItemBeverage.java +++ b/src/main/java/forestry/food/items/ItemBeverage.java @@ -10,9 +10,6 @@ ******************************************************************************/ package forestry.food.items; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; @@ -21,105 +18,36 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumAction; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.util.IIcon; import net.minecraft.world.World; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import forestry.api.food.BeverageManager; import forestry.api.food.IBeverageEffect; import forestry.core.config.Config; import forestry.core.items.ItemForestryFood; -import forestry.core.render.TextureManager; +import forestry.core.items.ItemOverlay; +import forestry.food.BeverageEffect; public class ItemBeverage extends ItemForestryFood { + public interface IBeverageInfo extends ItemOverlay.IOverlayInfo { + int getHeal(); - public static class BeverageInfo { + float getSaturation(); - public final String name; - private final String iconType; - public final int primaryColor; - public final int secondaryColor; + boolean isAlwaysEdible(); - @SideOnly(Side.CLIENT) - public IIcon iconBottle; - @SideOnly(Side.CLIENT) - public IIcon iconContents; + void registerIcons(IIconRegister register); - public final int heal; - public final float saturation; - public final boolean isAlwaysEdible; - - public boolean isSecret = false; - - public BeverageInfo(String name, String iconType, int primaryColor, int secondaryColor, int heal, float saturation, boolean isAlwaysEdible) { - this.name = name; - this.iconType = iconType; - this.primaryColor = primaryColor; - this.secondaryColor = secondaryColor; - this.heal = heal; - this.saturation = saturation; - this.isAlwaysEdible = isAlwaysEdible; - } - - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister register) { - iconBottle = TextureManager.registerTex(register, "liquids/" + iconType + ".bottle"); - iconContents = TextureManager.registerTex(register, "liquids/" + iconType + ".contents"); - } - - public static List loadEffects(ItemStack stack) { - List effectsList = new ArrayList<>(); - - NBTTagCompound nbttagcompound = stack.getTagCompound(); - if (nbttagcompound == null) { - return effectsList; - } - - if (nbttagcompound.hasKey("E")) { - int effectLength = nbttagcompound.getInteger("L"); - NBTTagList nbttaglist = nbttagcompound.getTagList("E", 10); - IBeverageEffect[] effects = new IBeverageEffect[effectLength]; - for (int i = 0; i < nbttaglist.tagCount(); i++) { - NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); - byte byte0 = nbttagcompound1.getByte("S"); - if (byte0 >= 0 && byte0 < effects.length) { - effects[byte0] = BeverageManager.effectList[nbttagcompound1.getInteger("ID")]; - } - } - effectsList = Arrays.asList(effects); - } - - return effectsList; - } - - public static void saveEffects(ItemStack stack, List effects) { - NBTTagCompound nbttagcompound = new NBTTagCompound(); - - NBTTagList nbttaglist = new NBTTagList(); - nbttagcompound.setInteger("L", effects.size()); - for (int i = 0; i < effects.size(); i++) { - IBeverageEffect effect = effects.get(i); - if (effect != null) { - NBTTagCompound nbttagcompound1 = new NBTTagCompound(); - nbttagcompound1.setByte("S", (byte) i); - nbttagcompound1.setInteger("ID", effect.getId()); - nbttaglist.appendTag(nbttagcompound1); - } - } - nbttagcompound.setTag("E", nbttaglist); - - stack.setTagCompound(nbttagcompound); - } + IIcon getIconBottle(); + IIcon getIconContents(); } - public final BeverageInfo[] beverages; + public final IBeverageInfo[] beverages; - public ItemBeverage(BeverageInfo... beverages) { + public ItemBeverage(IBeverageInfo... beverages) { super(1, 0.2f); setMaxStackSize(1); this.beverages = beverages; @@ -135,8 +63,7 @@ public class ItemBeverage extends ItemForestryFood { @Override public ItemStack onEaten(ItemStack itemstack, World world, EntityPlayer entityplayer) { - - List effects = BeverageInfo.loadEffects(itemstack); + List effects = BeverageEffect.loadEffects(itemstack); itemstack.stackSize--; entityplayer.getFoodStats().func_151686_a(this, itemstack); @@ -156,15 +83,15 @@ public class ItemBeverage extends ItemForestryFood { @Override public int func_150905_g(ItemStack itemstack) { int meta = itemstack.getItemDamage(); - BeverageInfo beverage = beverages[meta]; - return beverage.heal; + IBeverageInfo beverage = beverages[meta]; + return beverage.getHeal(); } @Override public float func_150906_h(ItemStack itemstack) { int meta = itemstack.getItemDamage(); - BeverageInfo beverage = beverages[meta]; - return beverage.saturation; + IBeverageInfo beverage = beverages[meta]; + return beverage.getSaturation(); } @Override @@ -181,9 +108,9 @@ public class ItemBeverage extends ItemForestryFood { public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer) { int meta = itemstack.getItemDamage(); - BeverageInfo beverage = beverages[meta]; + IBeverageInfo beverage = beverages[meta]; - if (entityplayer.canEat(beverage.isAlwaysEdible)) { + if (entityplayer.canEat(beverage.isAlwaysEdible())) { entityplayer.setItemInUse(itemstack, getMaxItemUseDuration(itemstack)); } return itemstack; @@ -193,7 +120,7 @@ public class ItemBeverage extends ItemForestryFood { @Override public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList) { for (int i = 0; i < beverages.length; i++) { - if (Config.isDebug || !beverages[i].isSecret) { + if (Config.isDebug || !beverages[i].isSecret()) { itemList.add(new ItemStack(this, 1, i)); } } @@ -202,7 +129,7 @@ public class ItemBeverage extends ItemForestryFood { @SuppressWarnings({"rawtypes", "unchecked"}) @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean flag) { - List effects = BeverageInfo.loadEffects(itemstack); + List effects = BeverageEffect.loadEffects(itemstack); for (IBeverageEffect effect : effects) { if (effect.getDescription() != null) { @@ -213,14 +140,14 @@ public class ItemBeverage extends ItemForestryFood { @Override public String getUnlocalizedName(ItemStack stack) { - return super.getUnlocalizedName(stack) + "." + beverages[stack.getItemDamage()].name; + return super.getUnlocalizedName(stack) + "." + beverages[stack.getItemDamage()].getName(); } /* ICONS */ @SideOnly(Side.CLIENT) @Override public void registerIcons(IIconRegister register) { - for (BeverageInfo info : beverages) { + for (IBeverageInfo info : beverages) { info.registerIcons(register); } } @@ -228,10 +155,10 @@ public class ItemBeverage extends ItemForestryFood { @SideOnly(Side.CLIENT) @Override public IIcon getIconFromDamageForRenderPass(int i, int j) { - if (j > 0 && beverages[i].secondaryColor != 0) { - return beverages[i].iconBottle; + if (j > 0 && beverages[i].getSecondaryColor() != 0) { + return beverages[i].getIconBottle(); } else { - return beverages[i].iconContents; + return beverages[i].getIconContents(); } } @@ -244,11 +171,14 @@ public class ItemBeverage extends ItemForestryFood { @Override public int getColorFromItemStack(ItemStack itemstack, int j) { - if (j == 0 || beverages[itemstack.getItemDamage()].secondaryColor == 0) { - return beverages[itemstack.getItemDamage()].primaryColor; + if (j == 0 || beverages[itemstack.getItemDamage()].getSecondaryColor() == 0) { + return beverages[itemstack.getItemDamage()].getPrimaryColor(); } else { - return beverages[itemstack.getItemDamage()].secondaryColor; + return beverages[itemstack.getItemDamage()].getSecondaryColor(); } } + public ItemStack get(EnumBeverage beverage, int amount) { + return new ItemStack(this, amount, beverage.ordinal()); + } } diff --git a/src/main/java/forestry/food/items/ItemRegistryFood.java b/src/main/java/forestry/food/items/ItemRegistryFood.java new file mode 100644 index 000000000..3d2529ade --- /dev/null +++ b/src/main/java/forestry/food/items/ItemRegistryFood.java @@ -0,0 +1,44 @@ +/******************************************************************************* + * Copyright (c) 2011-2014 SirSengir. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser Public License v3 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-3.0.txt + * + * Various Contributors including, but not limited to: + * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges + ******************************************************************************/ +package forestry.food.items; + +import java.util.Collections; + +import net.minecraft.item.ItemStack; + +import forestry.core.items.ItemForestryFood; +import forestry.core.items.ItemRegistry; +import forestry.core.items.ItemWithGui; +import forestry.core.network.GuiId; +import forestry.food.BeverageEffect; + +public class ItemRegistryFood extends ItemRegistry { + public final ItemForestryFood honeyedSlice; + public final ItemBeverage beverage; + public final ItemForestryFood ambrosia; + public final ItemForestryFood honeyPot; + public final ItemWithGui infuser; + + public ItemRegistryFood() { + // / FOOD ITEMS + honeyedSlice = registerItem(new ItemForestryFood(8, 0.6f), "honeyedSlice"); + beverage = registerItem(new ItemBeverage(), "beverage"); + ambrosia = registerItem(new ItemAmbrosia().setIsDrink(), "ambrosia"); + honeyPot = registerItem(new ItemForestryFood(2, 0.2f).setIsDrink(), "honeyPot"); + + // / SEASONER + infuser = new ItemWithGui(GuiId.InfuserGUI); + registerItem(infuser, "infuser"); + + // Mead + BeverageEffect.saveEffects(new ItemStack(beverage), Collections.singletonList(BeverageEffect.weakAlcoholic)); + } +} diff --git a/src/main/java/forestry/plugins/PluginApiculture.java b/src/main/java/forestry/plugins/PluginApiculture.java index 11655b538..1b01a121b 100644 --- a/src/main/java/forestry/plugins/PluginApiculture.java +++ b/src/main/java/forestry/plugins/PluginApiculture.java @@ -131,6 +131,7 @@ import forestry.core.utils.EntityUtil; import forestry.core.utils.Log; import forestry.core.utils.Stack; import forestry.core.utils.StringUtil; +import forestry.food.items.ItemRegistryFood; @Plugin(pluginID = "Apiculture", name = "Apiculture", author = "SirSengir", url = Constants.URL, unlocalizedDescription = "for.plugin.apiculture.description") public class PluginApiculture extends ForestryPlugin { @@ -530,20 +531,19 @@ public class PluginApiculture extends ForestryPlugin { 'C', Items.minecart); // FOOD STUFF - if (ForestryItem.honeyedSlice.item() != null) { - RecipeUtil.addRecipe(ForestryItem.honeyedSlice.getItemStack(4), + ItemRegistryFood foodItems = PluginFood.items; + if (foodItems != null) { + RecipeUtil.addRecipe(new ItemStack(foodItems.honeyedSlice, 4), "###", "#X#", "###", '#', items.honeyDrop, 'X', Items.bread); - } - if (ForestryItem.honeyPot.item() != null) { - RecipeUtil.addRecipe(ForestryItem.honeyPot.getItemStack(1), + + RecipeUtil.addRecipe(foodItems.honeyPot, "# #", " X ", "# #", '#', items.honeyDrop, 'X', ForestryItem.waxCapsule); - } - if (ForestryItem.ambrosia.item() != null) { - RecipeUtil.addRecipe(ForestryItem.ambrosia.getItemStack(), + + RecipeUtil.addRecipe(foodItems.ambrosia, "#Y#", "XXX", "###", '#', items.honeydew, 'X', items.royalJelly, diff --git a/src/main/java/forestry/plugins/PluginFood.java b/src/main/java/forestry/plugins/PluginFood.java index 5f88f8482..55cd9fc34 100755 --- a/src/main/java/forestry/plugins/PluginFood.java +++ b/src/main/java/forestry/plugins/PluginFood.java @@ -10,34 +10,29 @@ ******************************************************************************/ package forestry.plugins; -import java.util.Collections; - import net.minecraft.init.Items; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import forestry.api.food.BeverageManager; import forestry.apiculture.items.EnumPollenCluster; +import forestry.apiculture.items.ItemRegistryApiculture; import forestry.core.GuiHandlerBase; import forestry.core.config.Constants; -import forestry.core.config.ForestryItem; import forestry.core.fluids.Fluids; import forestry.core.fluids.LiquidRegistryHelper; -import forestry.core.items.ItemForestryFood; -import forestry.core.items.ItemWithGui; -import forestry.core.network.GuiId; import forestry.core.recipes.RecipeUtil; import forestry.food.BeverageEffect; import forestry.food.GuiHandlerFood; import forestry.food.InfuserIngredientManager; import forestry.food.InfuserMixtureManager; -import forestry.food.items.ItemAmbrosia; -import forestry.food.items.ItemBeverage; -import forestry.food.items.ItemBeverage.BeverageInfo; +import forestry.food.items.EnumBeverage; +import forestry.food.items.ItemRegistryFood; @Plugin(pluginID = "Food", name = "Food", author = "SirSengir", url = Constants.URL, unlocalizedDescription = "for.plugin.food.description") public class PluginFood extends ForestryPlugin { + public static ItemRegistryFood items; + @Override protected void setupAPI() { super.setupAPI(); @@ -49,33 +44,19 @@ public class PluginFood extends ForestryPlugin { @Override protected void registerItemsAndBlocks() { - // / FOOD ITEMS - ForestryItem.honeyedSlice.registerItem(new ItemForestryFood(8, 0.6f), "honeyedSlice"); - ForestryItem.beverage.registerItem(new ItemBeverage( - new BeverageInfo("meadShort", "glass", 0xec9a19, 0xffffff, 1, 0.2f, true), - new BeverageInfo("meadCurative", "glass", 0xc5feff, 0xffffff, 1, 0.2f, true)), - "beverage"); - ForestryItem.ambrosia.registerItem(new ItemAmbrosia().setIsDrink(), "ambrosia"); - ForestryItem.honeyPot.registerItem(new ItemForestryFood(2, 0.2f).setIsDrink(), "honeyPot"); - - // / SEASONER - Item infuser = new ItemWithGui(GuiId.InfuserGUI); - ForestryItem.infuser.registerItem(infuser, "infuser"); - - // Mead - ItemStack meadBottle = ForestryItem.beverage.getItemStack(); - BeverageInfo.saveEffects(meadBottle, Collections.singletonList(BeverageEffect.weakAlcoholic)); + items = new ItemRegistryFood(); } @Override protected void preInit() { super.preInit(); - LiquidRegistryHelper.registerLiquidContainer(Fluids.SHORT_MEAD, Constants.BUCKET_VOLUME, ForestryItem.beverage.getItemStack(), new ItemStack(Items.glass_bottle)); + LiquidRegistryHelper.registerLiquidContainer(Fluids.SHORT_MEAD, Constants.BUCKET_VOLUME, items.beverage.get(EnumBeverage.MEAD_SHORT, 1), new ItemStack(Items.glass_bottle)); - if (PluginManager.Module.APICULTURE.isEnabled()) { - ItemStack normalPollenCluster = PluginApiculture.items.pollenCluster.get(EnumPollenCluster.NORMAL, 1); - ItemStack crystallinePollenCluster = PluginApiculture.items.pollenCluster.get(EnumPollenCluster.CRYSTALLINE, 1); + ItemRegistryApiculture beeItems = PluginApiculture.items; + if (beeItems != null) { + ItemStack normalPollenCluster = beeItems.pollenCluster.get(EnumPollenCluster.NORMAL, 1); + ItemStack crystallinePollenCluster = beeItems.pollenCluster.get(EnumPollenCluster.CRYSTALLINE, 1); BeverageManager.ingredientManager.addIngredient(normalPollenCluster, "Strong Curative"); BeverageManager.ingredientManager.addIngredient(crystallinePollenCluster, "Weak Curative"); @@ -87,7 +68,7 @@ public class PluginFood extends ForestryPlugin { @Override protected void registerRecipes() { // INFUSER - RecipeUtil.addRecipe(ForestryItem.infuser.getItemStack(), + RecipeUtil.addRecipe(items.infuser.getItemStack(), "X", "#", "X", '#', "ingotIron", 'X', "ingotBronze");