83 lines
1.7 KiB
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";
|
|
}
|
|
|
|
}
|