ProjectZombie/src/projectzombie/items/ItemTorch.java

83 lines
1.7 KiB
Java

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";
}
}