OSDN Git Service

修正
[chemicraft/chemicraft.git] / common / pcc / chemicraft / item / ItemCompounds.java
1 package pcc.chemicraft.item;
2
3 import java.util.List;
4
5 import net.minecraft.creativetab.CreativeTabs;
6 import net.minecraft.entity.Entity;
7 import net.minecraft.entity.player.EntityPlayer;
8 import net.minecraft.item.Item;
9 import net.minecraft.item.ItemStack;
10 import net.minecraft.world.World;
11 import pcc.chemicraft.ChemiCraft;
12 import pcc.chemicraft.ChemiCraftAPI;
13 import cpw.mods.fml.relauncher.Side;
14 import cpw.mods.fml.relauncher.SideOnly;
15
16 public class ItemCompounds extends Item {
17
18         public ItemCompounds(int par1){
19                 super(par1);
20                 this.setHasSubtypes(true);
21                 this.setMaxDamage(0);
22                 this.setCreativeTab(ChemiCraft.instance.creativeTabChemiCraft);
23         }
24
25         @Override
26         public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) {
27                 try {
28                         for(int i=0;i < ChemiCraftAPI.instance().getCompoundHandlerItemName().size();i++){
29                                 if(ChemiCraftAPI.instance().getCompoundsName().getKeyList(par1ItemStack.getItemDamage()).equals(ChemiCraftAPI.instance().getCompoundHandlerItemName().get(i))){
30                                         return ChemiCraftAPI.instance().getCompoundHandler().get(i).onItemUseHandler(par1ItemStack, par2EntityPlayer, par3World, par4, par5, par6, par7, par8, par9, par10);
31                                 }
32                         }
33                 } catch (IndexOutOfBoundsException e) {
34                         par1ItemStack.stackSize = 0;
35                 }
36                 return false;
37         }
38
39
40         @Override
41         public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
42         {
43                 try {
44                         for(int i=0;i < ChemiCraftAPI.instance().getCompoundHandlerItemName().size();i++){
45                                 if(ChemiCraftAPI.instance().getCompoundsName().getKeyList(par1ItemStack.getItemDamage()).equals(ChemiCraftAPI.instance().getCompoundHandlerItemName().get(i))){
46                                         ChemiCraftAPI.instance().getCompoundHandler().get(i).onItemRightClickHandler(par1ItemStack, par2World, par3EntityPlayer);
47                                 }
48                         }
49                 } catch (IndexOutOfBoundsException e) {
50                         par1ItemStack.stackSize = 0;
51                 }
52                 return par1ItemStack;
53         }
54
55
56
57         @Override
58         public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5){
59                 try {
60                         for(int i=0;i < ChemiCraftAPI.instance().getCompoundHandlerItemName().size();i++){
61                                 if(ChemiCraftAPI.instance().getCompoundsName().getKeyList(par1ItemStack.getItemDamage()).equals(ChemiCraftAPI.instance().getCompoundHandlerItemName().get(i))){
62                                         ChemiCraftAPI.instance().getCompoundHandler().get(i).onUpdateHandler(par1ItemStack, par2World, par3Entity, par4, par5);
63                                 }
64                         }
65                 } catch (IndexOutOfBoundsException e) {
66                         par1ItemStack.stackSize = 0;
67                         par1ItemStack = null;
68                 }
69         }
70
71
72
73         @SuppressWarnings({ "unchecked", "rawtypes" })
74         @SideOnly(Side.CLIENT)
75         @Override
76         public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List){
77                 for(int type = 0; type < ChemiCraftAPI.instance().getCompoundsName().sizeKeysList(); type++)
78                 {
79                         par3List.add(new ItemStack(par1, 1, type));
80                         this.setIconIndex(type);
81                 }
82         }
83
84
85
86         @Override
87         public String getItemNameIS(ItemStack par1ItemStack){
88                 try {
89                         return super.getItemName() + "." + ChemiCraftAPI.instance().getCompoundsName().getKeyList(par1ItemStack.getItemDamage());
90                 } catch (ArrayIndexOutOfBoundsException e) {
91                         par1ItemStack.stackSize = 0;
92                 }
93                 return null;
94         }
95
96
97
98         @Override
99         public String getTextureFile(){
100                 return ChemiCraft.instance.ITEM_COMPOUNDS_TEXTURE;
101         }
102
103
104
105         @SideOnly(Side.CLIENT)
106         @Override
107         public int getIconFromDamage(int par1){
108                 try {
109                         for(int i=0;i < ChemiCraftAPI.instance().getCompoundHandlerItemName().size();i++){
110                                 if(ChemiCraftAPI.instance().getCompoundsName().getKeyList(par1).equals(ChemiCraftAPI.instance().getCompoundHandlerItemName().get(i))){
111                                         return ChemiCraftAPI.instance().getCompoundHandler().get(i).getIconIndexHandler();
112                                 }
113                         }
114                 } catch (IndexOutOfBoundsException e) {
115                         return 0;
116                 }
117                 return 0;
118         }
119
120 }