package minefantasy.system; import java.util.EnumSet; import java.util.Random; import minefantasy.api.MineFantasyAPI; import minefantasy.item.ItemBloom; import minefantasy.item.ItemHotItem; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraftforge.common.ForgeDirection; import cpw.mods.fml.common.ITickHandler; import cpw.mods.fml.common.TickType; public class HotItemTickHandler implements ITickHandler { Random rand = new Random(); @Override public void tickStart(EnumSet<TickType> type, Object... tickData) { // TODO Auto-generated method stub } @Override public void tickEnd(EnumSet<TickType> type, Object... tickData) { if (!type.contains(TickType.PLAYER)) return; EntityLivingBase user = (EntityLivingBase) tickData[0]; if (cfg.burnPlayer && user != null && user.ticksExisted % 20 == 0) { if(user instanceof EntityPlayer) { burnInv((EntityPlayer)user); } else if(isHotItem(user.getHeldItem())) { user.attackEntityFrom(DamageSource.inFire, 1); user.playSound("random.fizz", 1.0F, 1.0F); } } } private void burnInv(EntityPlayer player) { boolean hasBurnt = false; for(int a = 0; a < player.inventory.getSizeInventory(); a ++) { ItemStack item = player.inventory.getStackInSlot(a); if(item != null) { if(isHotItem(item)) { if(!hasBurnt) { player.attackEntityFrom(DamageSource.onFire, 1); player.playSound("random.fizz", 1.0F, 1.0F); } hasBurnt = true; if(!player.worldObj.isRemote) { player.entityDropItem(item, 1.0F); player.inventory.setInventorySlotContents(a, null); } } } } } private boolean isHotItem(ItemStack item) { return item != null && (item.getItem() instanceof ItemHotItem || item.getItem() instanceof ItemBloom || MineFantasyAPI.isHotToPickup(item)); } @Override public EnumSet<TickType> ticks() { return EnumSet.of(TickType.PLAYER); } @Override public String getLabel() { return "Hot Item Tick Handler"; } }