package projectzombie.items; import gl_engine.vec.Vec2d; import projectzombie.entity.player.EntityPlayer; import projectzombie.init.Models; import projectzombie.items.modifier.ItemModifier; import projectzombie.items.modifier.ItemModifierDamage; import projectzombie.items.modifier.ItemModifierMeta; import projectzombie.items.modifier.ItemModifierTimer; import projectzombie.model.ModelItem; import projectzombie.util.math.ItemStack; import projectzombie.world.layer.Layer; public class ItemTorch extends Item { @Override public ModelItem getModel(ItemStack stack) { if(ItemModifierMeta.getStackMeta(stack) == 1) { return Models.ITEM_TORCH_LIT; } else { return Models.ITEM_TORCH_UNLIT; } } @Override public double getDamage(ItemStack stack) { ItemModifierTimer timer = (ItemModifierTimer)stack.getModifier(ItemModifierTimer.class); if(timer == null) { return 0; } return timer.getDamage(); } @Override public boolean onPlayerRightClick(ItemStack stack, Layer layer, EntityPlayer player, Vec2d place_pos) { if(ItemModifierMeta.getStackMeta(stack) == 1) { return false; } stack.modifiers = new ItemModifier[] { new ItemModifierMeta(1), new ItemModifierTimer(12000), }; return true; } @Override public boolean isEmpty(ItemStack stack) { if(ItemModifierMeta.getStackMeta(stack) != 1) { return false; } ItemModifierTimer timer = (ItemModifierTimer)stack.getModifier(ItemModifierTimer.class); if(timer == null) { return false; } return timer.getDamage() > 1; } @Override public double getLightLevel(ItemStack stack) { return ItemModifierMeta.getStackMeta(stack) == 1 ? 1 : 0; } @Override public String getName(ItemStack stack) { return "Torch"; } }