aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/core/item
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/binnie/core/item')
-rw-r--r--src/Java/binnie/core/item/IItemEnum.java14
-rw-r--r--src/Java/binnie/core/item/IItemMisc.java19
-rw-r--r--src/Java/binnie/core/item/ItemFieldKit.java82
-rw-r--r--src/Java/binnie/core/item/ItemGenesis.java42
-rw-r--r--src/Java/binnie/core/item/ItemMisc.java81
-rw-r--r--src/Java/binnie/core/item/ManagerItem.java11
-rw-r--r--src/Java/binnie/core/item/ModuleItems.java75
7 files changed, 324 insertions, 0 deletions
diff --git a/src/Java/binnie/core/item/IItemEnum.java b/src/Java/binnie/core/item/IItemEnum.java
new file mode 100644
index 0000000000..70b27d7aa7
--- /dev/null
+++ b/src/Java/binnie/core/item/IItemEnum.java
@@ -0,0 +1,14 @@
+package binnie.core.item;
+
+import net.minecraft.item.ItemStack;
+
+public abstract interface IItemEnum
+{
+ public abstract boolean isActive();
+
+ public abstract String getName(ItemStack paramItemStack);
+
+ public abstract int ordinal();
+
+ public abstract ItemStack get(int paramInt);
+}
diff --git a/src/Java/binnie/core/item/IItemMisc.java b/src/Java/binnie/core/item/IItemMisc.java
new file mode 100644
index 0000000000..1538297884
--- /dev/null
+++ b/src/Java/binnie/core/item/IItemMisc.java
@@ -0,0 +1,19 @@
+package binnie.core.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import java.util.List;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+
+public abstract interface IItemMisc
+ extends IItemEnum
+{
+ public abstract IIcon getIcon(ItemStack paramItemStack);
+
+ @SideOnly(Side.CLIENT)
+ public abstract void registerIcons(IIconRegister paramIIconRegister);
+
+ public abstract void addInformation(List paramList);
+}
diff --git a/src/Java/binnie/core/item/ItemFieldKit.java b/src/Java/binnie/core/item/ItemFieldKit.java
new file mode 100644
index 0000000000..0a6ec0b813
--- /dev/null
+++ b/src/Java/binnie/core/item/ItemFieldKit.java
@@ -0,0 +1,82 @@
+package binnie.core.item;
+
+import binnie.core.BinnieCore;
+import binnie.core.gui.BinnieCoreGUI;
+import binnie.core.proxy.BinnieProxy;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import java.util.List;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.World;
+
+public class ItemFieldKit
+ extends Item
+{
+ private IIcon fieldKit0;
+ private IIcon fieldKit1;
+ private IIcon fieldKit2;
+ private IIcon fieldKit3;
+
+ public ItemFieldKit()
+ {
+ setUnlocalizedName("fieldKit");
+ setCreativeTab(CreativeTabs.tabTools);
+ setMaxStackSize(1);
+ setMaxDamage(64);
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister register)
+ {
+ this.fieldKit0 = BinnieCore.proxy.getIcon(register, "fieldKit");
+ this.fieldKit1 = BinnieCore.proxy.getIcon(register, "fieldKit1");
+ this.fieldKit2 = BinnieCore.proxy.getIcon(register, "fieldKit2");
+ this.fieldKit3 = BinnieCore.proxy.getIcon(register, "fieldKit3");
+ this.itemIcon = this.fieldKit0;
+ }
+
+ public IIcon getIcon(ItemStack stack, int pass)
+ {
+ int damage = stack.getItemDamage();
+ if (damage < 24) {
+ return this.fieldKit3;
+ }
+ if (damage < 48) {
+ return this.fieldKit2;
+ }
+ if (damage < 64) {
+ return this.fieldKit1;
+ }
+ return this.fieldKit0;
+ }
+
+ public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer player)
+ {
+ if (!player.isSneaking()) {
+ BinnieCore.proxy.openGui(BinnieCoreGUI.FieldKit, player, (int)player.posX, (int)player.posY, (int)player.posZ);
+ }
+ return itemstack;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_)
+ {
+ int i = getMaxDamage() - p_77624_1_.getItemDamage();
+ if (i == 0) {
+ p_77624_3_.add("No paper");
+ } else {
+ p_77624_3_.add("" + i + " sheet" + (i > 1 ? "s" : "") + " of paper");
+ }
+ super.addInformation(p_77624_1_, p_77624_2_, p_77624_3_, p_77624_4_);
+ }
+
+ public String getItemStackDisplayName(ItemStack p_77653_1_)
+ {
+ return "Field Kit";
+ }
+}
diff --git a/src/Java/binnie/core/item/ItemGenesis.java b/src/Java/binnie/core/item/ItemGenesis.java
new file mode 100644
index 0000000000..1e946372be
--- /dev/null
+++ b/src/Java/binnie/core/item/ItemGenesis.java
@@ -0,0 +1,42 @@
+package binnie.core.item;
+
+import binnie.core.BinnieCore;
+import binnie.core.gui.BinnieCoreGUI;
+import binnie.core.proxy.BinnieProxy;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import forestry.api.core.Tabs;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+
+public class ItemGenesis
+ extends Item
+{
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister register)
+ {
+ this.itemIcon = BinnieCore.proxy.getIcon(register, "genesis");
+ }
+
+ public ItemGenesis()
+ {
+ setCreativeTab(Tabs.tabApiculture);
+ setUnlocalizedName("genesis");
+ setMaxStackSize(1);
+ }
+
+ public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer player)
+ {
+ BinnieCore.proxy.openGui(BinnieCoreGUI.Genesis, player, (int)player.posX, (int)player.posY, (int)player.posZ);
+
+ return itemstack;
+ }
+
+ public String getItemStackDisplayName(ItemStack i)
+ {
+ return "Genesis";
+ }
+}
diff --git a/src/Java/binnie/core/item/ItemMisc.java b/src/Java/binnie/core/item/ItemMisc.java
new file mode 100644
index 0000000000..db54b2c1dd
--- /dev/null
+++ b/src/Java/binnie/core/item/ItemMisc.java
@@ -0,0 +1,81 @@
+package binnie.core.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import java.util.List;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+
+public class ItemMisc
+ extends Item
+{
+ private IItemMisc[] items;
+
+ protected ItemMisc(CreativeTabs tab, IItemMisc[] items2)
+ {
+ setCreativeTab(tab);
+ setHasSubtypes(true);
+ setUnlocalizedName("misc");
+ this.items = items2;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List par3List)
+ {
+ for (IItemMisc item : this.items) {
+ if (item.isActive()) {
+ par3List.add(getStack(item, 1));
+ }
+ }
+ }
+
+ private IItemMisc getItem(int damage)
+ {
+ return damage >= this.items.length ? this.items[0] : this.items[damage];
+ }
+
+ public ItemStack getStack(IItemMisc type, int size)
+ {
+ return new ItemStack(this, size, type.ordinal());
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4)
+ {
+ super.addInformation(par1ItemStack, par2EntityPlayer, par3List, par4);
+ IItemMisc item = getItem(par1ItemStack.getItemDamage());
+ if (item != null) {
+ item.addInformation(par3List);
+ }
+ }
+
+ public String getItemStackDisplayName(ItemStack stack)
+ {
+ IItemMisc item = getItem(stack.getItemDamage());
+ return item != null ? item.getName(stack) : "null";
+ }
+
+ public IIcon getIcon(ItemStack stack, int pass)
+ {
+ IItemMisc item = getItem(stack.getItemDamage());
+ return item != null ? item.getIcon(stack) : null;
+ }
+
+ public IIcon getIconFromDamage(int damage)
+ {
+ IItemMisc item = getItem(damage);
+ return item != null ? item.getIcon(null) : null;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister register)
+ {
+ for (IItemMisc item : this.items) {
+ item.registerIcons(register);
+ }
+ }
+}
diff --git a/src/Java/binnie/core/item/ManagerItem.java b/src/Java/binnie/core/item/ManagerItem.java
new file mode 100644
index 0000000000..39ea70f826
--- /dev/null
+++ b/src/Java/binnie/core/item/ManagerItem.java
@@ -0,0 +1,11 @@
+package binnie.core.item;
+
+import net.minecraft.creativetab.CreativeTabs;
+
+public class ManagerItem
+{
+ public ItemMisc registerMiscItems(IItemMisc[] items, CreativeTabs tab)
+ {
+ return new ItemMisc(tab, items);
+ }
+}
diff --git a/src/Java/binnie/core/item/ModuleItems.java b/src/Java/binnie/core/item/ModuleItems.java
new file mode 100644
index 0000000000..335106e040
--- /dev/null
+++ b/src/Java/binnie/core/item/ModuleItems.java
@@ -0,0 +1,75 @@
+package binnie.core.item;
+
+import binnie.botany.Botany;
+import binnie.botany.api.IAlleleFlowerSpecies;
+import binnie.botany.api.IFlower;
+import binnie.botany.api.IFlowerColour;
+import binnie.botany.api.IFlowerGenome;
+import binnie.botany.flower.TileEntityFlower;
+import binnie.botany.network.PacketID;
+import binnie.botany.proxy.Proxy;
+import binnie.core.BinnieCore;
+import binnie.core.IInitializable;
+import binnie.core.network.packet.MessageNBT;
+import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import cpw.mods.fml.common.registry.GameRegistry;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.init.Items;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+import net.minecraftforge.event.entity.player.PlayerInteractEvent;
+import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
+
+public class ModuleItems
+ implements IInitializable
+{
+ public void preInit()
+ {
+ BinnieCore.fieldKit = new ItemFieldKit();
+ BinnieCore.genesis = new ItemGenesis();
+ }
+
+ public void init() {}
+
+ public void postInit()
+ {
+ GameRegistry.addRecipe(new ItemStack(BinnieCore.fieldKit, 1, 63), new Object[] { "g ", " is", " pi", Character.valueOf('g'), Blocks.glass_pane, Character.valueOf('i'), Items.iron_ingot, Character.valueOf('p'), Items.paper, Character.valueOf('s'), new ItemStack(Items.dye, 1) });
+ }
+
+ @SubscribeEvent
+ public void onUseFieldKit(PlayerInteractEvent event)
+ {
+ if (!BinnieCore.isBotanyActive()) {
+ return;
+ }
+ if (event.action != PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK) {
+ return;
+ }
+ if ((event.entityPlayer != null) && (event.entityPlayer.getHeldItem() != null) && (event.entityPlayer.getHeldItem().getItem() == BinnieCore.fieldKit) && (event.entityPlayer.isSneaking()))
+ {
+ TileEntity tile = event.world.getTileEntity(event.x, event.y, event.z);
+ if ((tile instanceof TileEntityFlower))
+ {
+ TileEntityFlower tileFlower = (TileEntityFlower)tile;
+ IFlower flower = tileFlower.getFlower();
+ if (flower != null)
+ {
+ NBTTagCompound info = new NBTTagCompound();
+ info.setString("Species", flower.getGenome().getPrimary().getUID());
+ info.setString("Species2", flower.getGenome().getSecondary().getUID());
+ info.setFloat("Age", flower.getAge() / flower.getGenome().getLifespan());
+ info.setShort("Colour", (short)flower.getGenome().getPrimaryColor().getID());
+ info.setShort("Colour2", (short)flower.getGenome().getSecondaryColor().getID());
+ info.setBoolean("Wilting", flower.isWilted());
+ info.setBoolean("Flowered", flower.hasFlowered());
+
+ Botany.proxy.sendToPlayer(new MessageNBT(PacketID.Encylopedia.ordinal(), info), event.entityPlayer);
+ event.entityPlayer.getHeldItem().damageItem(1, event.entityPlayer);
+ }
+ }
+ }
+ }
+}