/
NetherFoodItem.java
137 lines (123 loc) · 3.77 KB
/
NetherFoodItem.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
package mods.natura.items;
import java.util.List;
import mods.natura.Natura;
import mods.natura.common.NaturaTab;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.Icon;
import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.StatCollector;
public class NetherFoodItem extends ItemFood
{
public Icon[] icons;
public String[] textureNames = new String[] { "potashapple" };//, "haste"
public NetherFoodItem(int id)
{
super(id, 4, 0.4F, false);
setHasSubtypes(true);
setMaxDamage(0);
this.setCreativeTab(NaturaTab.tab);
//this.setAlwaysEdible();
}
/*public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer player)
{
if (player.canEat(true) && player.foodStats.getSaturationLevel() < 20F)
{
player.setItemInUse(par1ItemStack, this.getMaxItemUseDuration(par1ItemStack));
}
return par1ItemStack;
}*/
protected void onFoodEaten (ItemStack stack, World world, EntityPlayer player)
{
if (!world.isRemote)
{
int duration = 0;
PotionEffect potion;
switch (stack.getItemDamage())
{
case 0:
if (Natura.random.nextFloat() < 0.75f)
{
potion = player.getActivePotionEffect(Potion.poison);
if (potion != null)
duration = potion.duration;
else
duration = 0;
player.addPotionEffect(new PotionEffect(Potion.poison.id, duration + 2 * 25, 0));
}
break;
}
}
}
/*@Override
public int getMaxItemUseDuration(ItemStack itemstack)
{
return 24;
}*/
@SideOnly(Side.CLIENT)
@Override
public Icon getIconFromDamage (int meta)
{
return icons[meta];
}
@SideOnly(Side.CLIENT)
@Override
public void registerIcons (IconRegister iconRegister)
{
this.icons = new Icon[textureNames.length];
for (int i = 0; i < this.icons.length; ++i)
{
this.icons[i] = iconRegister.registerIcon("natura:fruit_" + textureNames[i]);
}
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation (ItemStack stack, EntityPlayer player, List list, boolean par4)
{
list.add(StatCollector.translateToLocal("tooltip.netherfood"));
/*switch (stack.getItemDamage())
{
case 0:
list.add("Killer healing");
break;
case 1:
list.add("Visible night");
break;
case 2:
list.add("Slow dive");
break;
case 3:
list.add("Hit like a truck");
break;
}*/
}
/* Name override */
@Override
public String getUnlocalizedName (ItemStack itemstack)
{
return (new StringBuilder()).append("item.food.nether.").append(textureNames[itemstack.getItemDamage()]).toString();
}
/**
* returns a list of items with the same ID, but different meta (eg: dye returns 16 items)
*/
@SideOnly(Side.CLIENT)
@Override
public void getSubItems (int par1, CreativeTabs par2CreativeTabs, List par3List)
{
for (int var4 = 0; var4 < 1; ++var4)
{
par3List.add(new ItemStack(par1, 1, var4));
}
}
/*public boolean isPotionIngredient()
{
return true;
}*/
}