Сделал смену текстуры при пкм и в руке текстура меняется, а вот в слоте "эмо" текстура постоянно
Java:
public class ItemXpHolder extends Item {
private IIcon[] icons = new IIcon[2];
private String texturename = "randommagics:XpHolder";
public ItemXpHolder() {
super();
this.setTextureName("randommagics:XpHolder_0");
this.setCreativeTab(Init.TabRandomMagics);
this.setUnlocalizedName("ItemXpHolder");
this.setMaxStackSize(1);
}
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer player)
{
if(player.isSneaking()) {
int xp;
if(itemstack.hasTagCompound())
xp = itemstack.getTagCompound().getInteger("xp");
else
xp = 0;
List ents = getXPOrbs(player.posX, player.posY, player.posZ, player.getEntityWorld());
for(int i = 0; i < ents.size(); i++) {
EntityXPOrb orb = (EntityXPOrb)ents.get(i);
orb.setDead();
xp += 1;
}
if(!itemstack.hasTagCompound()) {
NBTTagCompound nbt = new NBTTagCompound();
itemstack.setTagCompound(nbt);
}
itemstack.getTagCompound().setInteger("xp", xp);
}
else {
if(!itemstack.hasTagCompound()) {
NBTTagCompound nbt = new NBTTagCompound();
itemstack.setTagCompound(nbt);
}
int xp = itemstack.stackTagCompound.getInteger("xp");
if(xp == 0) {
xp = player.experienceTotal;
player.addExperienceLevel(-(player.experienceLevel + 1));
}
else {
player.addExperience(xp);
xp = 0;
}
itemstack.stackTagCompound.setInteger("xp", xp);
}
return itemstack;
}
public void addInformation(ItemStack itemstack, EntityPlayer p_77624_2_, List list, boolean p_77624_4_) {
if(itemstack.hasTagCompound()) {
int xp = itemstack.stackTagCompound.getInteger("xp");
list.add(1, String.valueOf(xp));
}
}
public void registerIcons(IIconRegister reg) {
for (int i = 0; i < 2; i ++) {
this.icons[i] = reg.registerIcon(this.texturename + "_" + i);
}
}
public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining)
{
if(stack.hasTagCompound() && stack.getTagCompound().getInteger("xp") > 0)
return icons[1];
else
return icons[0];
}
}