OSDN Git Service

d6838f1cc7d4e74abccfb504c45e36883022f7e2
[chemicraft/chemicraft.git] / common / pcc / chemicraft / core / item / ItemAtoms.java
1 package pcc.chemicraft.core.item;
2
3 import java.util.List;
4 import java.util.Random;
5
6 import net.minecraft.client.renderer.texture.IconRegister;
7 import net.minecraft.creativetab.CreativeTabs;
8 import net.minecraft.entity.Entity;
9 import net.minecraft.entity.EntityLiving;
10 import net.minecraft.entity.player.EntityPlayer;
11 import net.minecraft.item.Item;
12 import net.minecraft.item.ItemStack;
13 import net.minecraft.util.Icon;
14 import net.minecraft.world.World;
15 import pcc.chemicraft.ChemiCraft;
16 import pcc.chemicraft.core.ChemiCraftCore;
17 import pcc.chemicraft.util.AtomInfo;
18 import cpw.mods.fml.relauncher.Side;
19 import cpw.mods.fml.relauncher.SideOnly;
20
21 public class ItemAtoms extends Item {
22
23         private Icon[] icons;
24
25         public ItemAtoms(int par1){
26                 super(par1);
27                 this.maxStackSize = 64;
28                 this.setHasSubtypes(true);
29                 this.setMaxDamage(0);
30                 this.setCreativeTab(ChemiCraftCore.instance.creativeTabChemiCraft);
31         }
32
33
34
35         @Override
36         public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5)
37         {
38                 if (AtomInfo.isRI(par1ItemStack.getItemDamage() + 1)){
39                         Random random = new Random();
40                         if (random.nextInt(100) == 0){
41                                 if (par3Entity instanceof EntityLiving){
42                                         EntityLiving entity = (EntityLiving)par3Entity;
43                                         entity.attackEntityFrom(ChemiCraftCore.getRadiationDamageSource(entity), 1);
44                                 }
45                                 if (par3Entity instanceof EntityPlayer){
46                                         EntityPlayer player = (EntityPlayer)par3Entity;
47                                         ItemStack itemstack = new ItemStack(
48                                                         par1ItemStack.itemID,
49                                                         1,
50                                                         par1ItemStack.getItemDamage());
51                                         itemstack.setItemDamage(AtomInfo.collapseUraniumSeries(itemstack.getItemDamage() + 1) - 1);
52                                         player.inventory.addItemStackToInventory(itemstack);
53                                         player.inventory.consumeInventoryItem(par1ItemStack.itemID);
54                                 }
55                         }
56                 }
57         }
58
59
60
61         @SuppressWarnings({ "unchecked", "rawtypes" })
62         @SideOnly(Side.CLIENT)
63         @Override
64         public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List){
65                 for(int type = 0; type < ChemiCraftCore.instance.ATOMSNAME.length; type++)
66                 {
67                         par3List.add(new ItemStack(par1, 1, type));
68                 }
69         }
70
71
72
73         @Override
74         @SideOnly(Side.CLIENT)
75         public Icon getIconFromDamage(int par1) {
76                 return this.icons[par1];
77         }
78
79
80
81         @Override
82         public String getUnlocalizedName(ItemStack par1ItemStack){
83                 return super.getUnlocalizedName() + "." + ChemiCraftCore.instance.ATOMSNAME[par1ItemStack.getItemDamage()];
84         }
85
86
87
88         @Override
89         @SideOnly(Side.CLIENT)
90         public void updateIcons(IconRegister par1IconRegister) {
91                 this.icons = new Icon[ChemiCraftCore.instance.ATOMSNAME.length];
92
93                 for (int i = 0; i < ChemiCraftCore.instance.ATOMSNAME.length; i++) {
94                         this.icons[i] = par1IconRegister.registerIcon(ChemiCraft.TEXTURE + "atoms_" + ChemiCraftCore.instance.ATOMSNAME[i]);
95                 }
96         }
97
98 }