package openblocks.common.item;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraft.world.chunk.Chunk;
import openblocks.OpenBlocks;
import openmods.infobook.BookDocumentation;
@BookDocumentation
public class ItemSlimalyzer extends Item {
public IIcon on;
public IIcon off;
public ItemSlimalyzer() {
setCreativeTab(OpenBlocks.tabOpenBlocks);
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister register) {
super.registerIcons(register);
off = register.registerIcon("openblocks:slimeoff");
on = register.registerIcon("openblocks:slimeon");
}
@SideOnly(Side.CLIENT)
@Override
public IIcon getIconFromDamage(int dmg) {
return dmg == 0? off : on;
}
@Override
public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean par5) {
if (!world.isRemote) {
if (entity != null) {
Chunk chunk = world.getChunkFromBlockCoords(MathHelper.floor_double(entity.posX), MathHelper.floor_double(entity.posZ));
int previousDamage = stack.getItemDamage();
stack.setItemDamage(chunk.getRandomWithSeed(987234911L).nextInt(10) == 0? 1 : 0);
if (previousDamage != stack.getItemDamage()
&& previousDamage == 0) {
world.playSoundAtEntity(entity, "openblocks:slimalyzer.signal", 1F, 1F);
}
} else {
stack.setItemDamage(0);
}
}
}
}