BloodMagic/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilBase.java

105 lines
2.9 KiB
Java
Raw Normal View History

package WayofTime.bloodmagic.item.sigil;
2015-10-29 22:05:00 -07:00
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.iface.ISigil;
import WayofTime.bloodmagic.api.util.helper.NBTHelper;
2016-03-16 01:10:33 -07:00
import WayofTime.bloodmagic.client.IVariantProvider;
import WayofTime.bloodmagic.item.ItemBindable;
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-03-16 01:10:33 -07:00
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
2015-10-29 22:05:00 -07:00
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
2015-10-29 22:05:00 -07:00
@Getter
2016-03-16 01:10:33 -07:00
public class ItemSigilBase extends ItemBindable implements ISigil, IVariantProvider
{
protected final String tooltipBase;
2015-10-29 22:05:00 -07:00
private final String name;
private boolean toggleable;
public ItemSigilBase(String name, int lpUsed)
{
2015-10-29 22:05:00 -07:00
super();
setUnlocalizedName(Constants.Mod.MODID + ".sigil." + name);
setLPUsed(lpUsed);
2015-10-29 22:05:00 -07:00
this.name = name;
this.tooltipBase = "tooltip.BloodMagic.sigil." + name + ".";
2015-10-29 22:05:00 -07:00
}
public ItemSigilBase(String name)
{
2015-10-29 22:05:00 -07:00
this(name, 0);
}
@Override
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)
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"))
tooltip.addAll(Arrays.asList(TextHelper.cutLongString(TextHelper.localizeEffect(tooltipBase + "desc"))));
2015-10-29 22:05:00 -07:00
super.addInformation(stack, player, tooltip, advanced);
}
2016-03-16 01:10:33 -07:00
@Override
2016-03-16 18:41:06 -04:00
public List<Pair<Integer, String>> getVariants()
{
2016-03-16 01:10:33 -07:00
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=normal"));
return ret;
}
public void setToggleable()
{
2015-10-29 22:05:00 -07:00
this.toggleable = true;
}
public boolean isUnusable(ItemStack stack)
{
NBTHelper.checkNBT(stack);
2015-10-29 22:05:00 -07:00
return stack.getTagCompound().getBoolean(Constants.NBT.UNUSABLE);
2015-10-29 22:05:00 -07:00
}
public ItemStack setUnusable(ItemStack stack, boolean unusable)
{
NBTHelper.checkNBT(stack);
2015-10-29 22:05:00 -07:00
stack.getTagCompound().setBoolean(Constants.NBT.UNUSABLE, unusable);
2015-10-29 22:05:00 -07:00
return stack;
}
public boolean getActivated(ItemStack stack)
{
2015-10-29 22:05:00 -07:00
return stack.getItemDamage() > 0;
}
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;
}
}