Package thaumic.tinkerer.common.item

Source Code of thaumic.tinkerer.common.item.ItemSoulMould

/**
* This class was created by <Vazkii>. It's distributed as
* part of the ThaumicTinkerer Mod.
*
* ThaumicTinkerer is Open Source and distributed under a
* Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License
* (http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_GB)
*
* ThaumicTinkerer is a Derivative Work on Thaumcraft 4.
* Thaumcraft 4 (c) Azanor 2012
* (http://www.minecraftforum.net/topic/1585216-)
*
* File Created @ [12 Sep 2013, 17:36:35 (GMT)]
*/
package thaumic.tinkerer.common.item;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.EntityList;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import thaumcraft.api.aspects.Aspect;
import thaumcraft.api.aspects.AspectList;
import thaumic.tinkerer.common.core.helper.ItemNBTHelper;
import thaumic.tinkerer.common.lib.LibItemNames;
import thaumic.tinkerer.common.lib.LibResearch;
import thaumic.tinkerer.common.registry.ItemBase;
import thaumic.tinkerer.common.registry.ThaumicTinkererCrucibleRecipe;
import thaumic.tinkerer.common.registry.ThaumicTinkererRecipe;
import thaumic.tinkerer.common.research.IRegisterableResearch;

import java.util.List;

public class ItemSoulMould extends ItemBase {

  private static final String TAG_PATTERN = "pattern";

  public ItemSoulMould() {
    setMaxStackSize(1);
  }

  @Override
  public boolean shouldDisplayInTab() {
    return true;
  }

  @Override
  public IRegisterableResearch getResearchItem() {
    return null;
  }

  @Override
  public ThaumicTinkererRecipe getRecipeItem() {
    return new ThaumicTinkererCrucibleRecipe(LibResearch.KEY_MAGNETS, new ItemStack(this), new ItemStack(Items.ender_pearl), new AspectList().add(Aspect.BEAST, 4).add(Aspect.MIND, 8).add(Aspect.SENSES, 8));
  }

  @Override
  public boolean itemInteractionForEntity(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, EntityLivingBase par3EntityLivingBase) {
    if (par2EntityPlayer != null)
      setPattern(par2EntityPlayer.getCurrentEquippedItem(), par3EntityLivingBase);
    else setPattern(par1ItemStack, par3EntityLivingBase);
    return true;
  }

  @Override
  public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
    if (par3EntityPlayer.isSneaking())
      clearPattern(par1ItemStack);

    return par1ItemStack;
  }

  @Override
  @SideOnly(Side.CLIENT)
  public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) {
    String name = getPatternName(par1ItemStack);

    if (name.isEmpty())
      par3List.add(StatCollector.translateToLocal("ttmisc.soulMould.nonAssigned"));
    else
      par3List.add(String.format(StatCollector.translateToLocal("ttmisc.soulMould.pattern"), StatCollector.translateToLocal("entity." + name + ".name")));
  }

  private static void setPattern(ItemStack par1ItemStack, EntityLivingBase par2EntityLiving) {
    ItemNBTHelper.setString(par1ItemStack, TAG_PATTERN, EntityList.getEntityString(par2EntityLiving));
  }

  public static String getPatternName(ItemStack par1ItemStack) {
    return ItemNBTHelper.getString(par1ItemStack, TAG_PATTERN, "");
  }

  private static void clearPattern(ItemStack par1ItemStack) {
    ItemNBTHelper.getNBT(par1ItemStack).removeTag(TAG_PATTERN);
  }

  @Override
  public String getItemName() {
    return LibItemNames.SOUL_MOULD;
  }
}
TOP

Related Classes of thaumic.tinkerer.common.item.ItemSoulMould

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.