1 package pcc.chemicraft.core.item;
4 import java.util.Random;
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.potion.PotionEffect;
13 import net.minecraft.util.DamageSource;
14 import net.minecraft.util.EntityDamageSource;
15 import net.minecraft.world.World;
16 import net.minecraftforge.common.MinecraftForge;
17 import net.minecraftforge.event.entity.player.PlayerDestroyItemEvent;
18 import pcc.chemicraft.ChemiCraft;
19 import pcc.chemicraft.core.ChemiCraftCore;
20 import pcc.chemicraft.util.AtomInfo;
21 import cpw.mods.fml.relauncher.Side;
22 import cpw.mods.fml.relauncher.SideOnly;
24 public class ItemAtoms extends Item {
26 public ItemAtoms(int par1){
28 this.maxStackSize = 64;
29 this.setHasSubtypes(true);
31 this.setCreativeTab(ChemiCraftCore.instance.creativeTabChemiCraft);
37 public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5)
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);
46 if (par3Entity instanceof EntityPlayer){
47 EntityPlayer player = (EntityPlayer)par3Entity;
48 ItemStack itemstack = new ItemStack(
51 par1ItemStack.getItemDamage());
52 itemstack.setItemDamage(AtomInfo.collapseUraniumSeries(itemstack.getItemDamage() + 1) - 1);
53 player.inventory.addItemStackToInventory(itemstack);
54 player.inventory.consumeInventoryItem(par1ItemStack.itemID);
62 /* 一時保留。詳しいことが決まるまで変更が難しいため。 --WIP--
63 @SuppressWarnings({ "unchecked", "rawtypes" })
64 @SideOnly(Side.CLIENT)
66 public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List){
67 for(int type = 0; type < ChemiCraftCore.instance.ATOMSNAME.length; type++)
69 par3List.add(new ItemStack(par1, 1, type));
70 this.setIconIndex(type);
77 public String getItemNameIS(ItemStack par1ItemStack){
78 return super.getItemName() + "." + ChemiCraftCore.instance.ATOMSNAME[par1ItemStack.getItemDamage()];
84 public String getTextureFile(){
85 return ChemiCraft.ITEM_ATOMS_TEXTURE;
90 @SideOnly(Side.CLIENT)
92 public int getIconFromDamage(int par1){