OSDN Git Service

da85e5e38967ff26e5c7d24ead53be86ecc63b19
[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.creativetab.CreativeTabs;
7 import net.minecraft.entity.Entity;
8 import net.minecraft.entity.EntityLiving;
9 import net.minecraft.entity.player.EntityPlayer;
10 import net.minecraft.item.Item;
11 import net.minecraft.item.ItemStack;
12 import net.minecraft.world.World;
13 import pcc.chemicraft.core.ChemiCraftCore;
14 import pcc.chemicraft.util.AtomInfo;
15 import cpw.mods.fml.relauncher.Side;
16 import cpw.mods.fml.relauncher.SideOnly;
17
18 public class ItemAtoms extends Item {
19
20         public ItemAtoms(int par1){
21                 super(par1);
22                 this.maxStackSize = 64;
23                 this.setHasSubtypes(true);
24                 this.setMaxDamage(0);
25                 this.setCreativeTab(ChemiCraftCore.instance.creativeTabChemiCraft);
26         }
27
28
29
30         @Override
31         public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5)
32         {
33                 if (AtomInfo.isRI(par1ItemStack.getItemDamage() + 1)){
34                         Random random = new Random();
35                         if (random.nextInt(100) == 0){
36                                 if (par3Entity instanceof EntityLiving){
37                                         EntityLiving entity = (EntityLiving)par3Entity;
38                                         entity.attackEntityFrom(ChemiCraftCore.getRadiationDamageSource(entity), 1);
39                                 }
40                                 if (par3Entity instanceof EntityPlayer){
41                                         EntityPlayer player = (EntityPlayer)par3Entity;
42                                         ItemStack itemstack = new ItemStack(
43                                                         par1ItemStack.itemID,
44                                                         1,
45                                                         par1ItemStack.getItemDamage());
46                                         itemstack.setItemDamage(AtomInfo.collapseUraniumSeries(itemstack.getItemDamage() + 1) - 1);
47                                         player.inventory.addItemStackToInventory(itemstack);
48                                         player.inventory.consumeInventoryItem(par1ItemStack.itemID);
49                                 }
50                         }
51                 }
52         }
53
54
55
56         @SuppressWarnings({ "unchecked", "rawtypes" })
57         @SideOnly(Side.CLIENT)
58         @Override
59         public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List){
60                 for(int type = 0; type < ChemiCraftCore.instance.ATOMSNAME.length; type++)
61                 {
62                         par3List.add(new ItemStack(par1, 1, type));
63                 }
64         }
65
66
67
68         public int getMetadata(int par1)
69         {
70                 return par1;
71         }
72
73
74
75         @Override
76         public String getUnlocalizedName(ItemStack par1ItemStack){
77                 return super.getUnlocalizedName() + "." + ChemiCraftCore.instance.ATOMSNAME[par1ItemStack.getItemDamage()];
78         }
79
80
81
82         /* 一時保留。詳しいことが決まるまで変更が難しいため。 --WIP--
83         @Override
84         public String getTextureFile(){
85                 return ChemiCraft.ITEM_ATOMS_TEXTURE;
86         }
87          */
88
89 }