2015-11-02 12:39:44 -08:00
|
|
|
package WayofTime.bloodmagic.item.sigil;
|
2015-10-29 22:05:00 -07:00
|
|
|
|
2015-11-28 18:25:46 -08:00
|
|
|
import WayofTime.bloodmagic.api.Constants;
|
2015-11-02 12:39:44 -08:00
|
|
|
import WayofTime.bloodmagic.api.iface.ISigil;
|
2015-11-28 18:25:46 -08:00
|
|
|
import WayofTime.bloodmagic.api.util.helper.NBTHelper;
|
2015-11-02 12:39:44 -08:00
|
|
|
import WayofTime.bloodmagic.item.ItemBindable;
|
2015-11-28 18:25:46 -08:00
|
|
|
import WayofTime.bloodmagic.util.helper.TextHelper;
|
2015-10-29 22:05:00 -07:00
|
|
|
import lombok.Getter;
|
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import net.minecraft.util.StatCollector;
|
|
|
|
import net.minecraft.world.World;
|
|
|
|
import net.minecraftforge.fml.relauncher.Side;
|
|
|
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
|
|
|
|
2016-02-17 16:10:16 -08:00
|
|
|
import java.util.Arrays;
|
2015-10-29 22:05:00 -07:00
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
@Getter
|
2015-12-30 15:34:40 -05:00
|
|
|
public class ItemSigilBase extends ItemBindable implements ISigil
|
|
|
|
{
|
2015-11-28 18:25:46 -08:00
|
|
|
protected final String tooltipBase;
|
2015-10-29 22:05:00 -07:00
|
|
|
private final String name;
|
|
|
|
private boolean toggleable;
|
|
|
|
|
2015-12-30 15:34:40 -05:00
|
|
|
public ItemSigilBase(String name, int lpUsed)
|
|
|
|
{
|
2015-10-29 22:05:00 -07:00
|
|
|
super();
|
|
|
|
|
2015-11-28 18:25:46 -08:00
|
|
|
setUnlocalizedName(Constants.Mod.MODID + ".sigil." + name);
|
2015-12-29 14:32:35 -05:00
|
|
|
setLPUsed(lpUsed);
|
2015-10-29 22:05:00 -07:00
|
|
|
|
|
|
|
this.name = name;
|
2015-11-02 12:39:44 -08:00
|
|
|
this.tooltipBase = "tooltip.BloodMagic.sigil." + name + ".";
|
2015-10-29 22:05:00 -07:00
|
|
|
}
|
|
|
|
|
2015-12-30 15:34:40 -05:00
|
|
|
public ItemSigilBase(String name)
|
|
|
|
{
|
2015-10-29 22:05:00 -07:00
|
|
|
this(name, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2015-12-30 15:34:40 -05:00
|
|
|
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
|
|
|
|
{
|
2015-10-29 22:05:00 -07:00
|
|
|
super.onItemRightClick(stack, world, player);
|
|
|
|
|
|
|
|
return stack;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@SideOnly(Side.CLIENT)
|
2015-12-30 15:34:40 -05:00
|
|
|
public void addInformation(ItemStack stack, EntityPlayer player, List<String> tooltip, boolean advanced)
|
|
|
|
{
|
2015-10-30 16:54:59 -07:00
|
|
|
if (StatCollector.canTranslate(tooltipBase + "desc"))
|
2016-02-17 16:10:16 -08:00
|
|
|
tooltip.addAll(Arrays.asList(TextHelper.cutLongString(TextHelper.localizeEffect(tooltipBase + "desc"))));
|
2015-10-29 22:05:00 -07:00
|
|
|
|
|
|
|
super.addInformation(stack, player, tooltip, advanced);
|
|
|
|
}
|
|
|
|
|
2015-12-30 15:34:40 -05:00
|
|
|
public void setToggleable()
|
|
|
|
{
|
2015-10-29 22:05:00 -07:00
|
|
|
this.toggleable = true;
|
|
|
|
}
|
|
|
|
|
2015-12-30 15:34:40 -05:00
|
|
|
public boolean isUnusable(ItemStack stack)
|
|
|
|
{
|
2015-11-28 18:25:46 -08:00
|
|
|
NBTHelper.checkNBT(stack);
|
2015-10-29 22:05:00 -07:00
|
|
|
|
2015-11-28 18:25:46 -08:00
|
|
|
return stack.getTagCompound().getBoolean(Constants.NBT.UNUSABLE);
|
2015-10-29 22:05:00 -07:00
|
|
|
}
|
|
|
|
|
2015-12-30 15:34:40 -05:00
|
|
|
public ItemStack setUnusable(ItemStack stack, boolean unusable)
|
|
|
|
{
|
2015-11-28 18:25:46 -08:00
|
|
|
NBTHelper.checkNBT(stack);
|
2015-10-29 22:05:00 -07:00
|
|
|
|
2015-11-28 18:25:46 -08:00
|
|
|
stack.getTagCompound().setBoolean(Constants.NBT.UNUSABLE, unusable);
|
2015-10-29 22:05:00 -07:00
|
|
|
return stack;
|
|
|
|
}
|
|
|
|
|
2015-12-30 15:34:40 -05:00
|
|
|
public boolean getActivated(ItemStack stack)
|
|
|
|
{
|
2015-10-29 22:05:00 -07:00
|
|
|
return stack.getItemDamage() > 0;
|
|
|
|
}
|
|
|
|
|
2015-12-30 15:34:40 -05:00
|
|
|
public ItemStack setActivated(ItemStack stack, boolean activated)
|
|
|
|
{
|
2015-10-29 22:05:00 -07:00
|
|
|
if (this.toggleable)
|
|
|
|
stack.setItemDamage(activated ? 1 : 0);
|
|
|
|
|
|
|
|
return stack;
|
|
|
|
}
|
|
|
|
}
|