OSDN Git Service

1.5.2対応
[chemicraft/ChemiCraftNext.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         @SideOnly(Side.CLIENT)
24         private Icon[] icons;
25
26         public ItemAtoms(int par1){
27                 super(par1);
28                 this.maxStackSize = 64;
29                 this.setHasSubtypes(true);
30                 this.setMaxDamage(0);
31                 this.setCreativeTab(ChemiCraftCore.instance.creativeTabChemiCraft);
32         }
33
34
35
36         @Override
37         public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5)
38         {
39                 if (AtomInfo.isRI(par1ItemStack.getItemDamage() + 1)){
40                         Random random = new Random();
41                         if (random.nextInt(100) == 0){
42                                 if (par3Entity instanceof EntityLiving){
43                                         EntityLiving entity = (EntityLiving)par3Entity;
44                                         entity.attackEntityFrom(ChemiCraftCore.getRadiationDamageSource(entity), 1);
45                                 }
46                                 if (par3Entity instanceof EntityPlayer){
47                                         EntityPlayer player = (EntityPlayer)par3Entity;
48                                         ItemStack itemstack = new ItemStack(
49                                                         par1ItemStack.itemID,
50                                                         1,
51                                                         par1ItemStack.getItemDamage());
52                                         itemstack.setItemDamage(AtomInfo.collapseUraniumSeries(itemstack.getItemDamage() + 1) - 1);
53                                         if (--par1ItemStack.stackSize <= 0) {
54                                                 player.inventory.clearInventory(par1ItemStack.itemID, par1ItemStack.getItemDamage());
55                                         }
56                                         player.inventory.addItemStackToInventory(itemstack);
57                                 }
58                         }
59                 }
60         }
61
62
63
64         @SuppressWarnings({ "unchecked", "rawtypes" })
65         @SideOnly(Side.CLIENT)
66         @Override
67         public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List){
68                 for(int type = 0; type < ChemiCraftCore.instance.ATOMSNAME.length; type++)
69                 {
70                         par3List.add(new ItemStack(par1, 1, type));
71                 }
72         }
73
74
75
76         @Override
77         @SideOnly(Side.CLIENT)
78         public Icon getIconFromDamage(int par1) {
79                 return this.icons[par1];
80         }
81
82
83
84         @Override
85         public String getUnlocalizedName(ItemStack par1ItemStack){
86                 return super.getUnlocalizedName() + "." + ChemiCraftCore.instance.ATOMSNAME[par1ItemStack.getItemDamage()];
87         }
88
89
90
91         @Override
92         @SideOnly(Side.CLIENT)
93     public void registerIcons(IconRegister par1IconRegister){
94                 this.icons = new Icon[ChemiCraftCore.instance.ATOMSNAME.length];
95
96                 for (int i = 0; i < ChemiCraftCore.instance.ATOMSNAME.length; i++) {
97                         this.icons[i] = par1IconRegister.registerIcon(ChemiCraft.TEXTURE + "atoms_" + ChemiCraftCore.instance.ATOMSNAME[i]);
98                 }
99         }
100
101 }