BloodMagic/src/main/java/WayofTime/bloodmagic/item/ItemUpgradeTrainer.java
Arcaratus 3e50dd4117 Improved the API and internal workings
Update things

Fix some more things

Update once more

Refactoring and removing unnecessary null checks

Woops

Fix

Nother fix

Moar fix

Fix imports

Update ItemBindable.java
2016-04-12 20:34:08 -04:00

95 lines
2.9 KiB
Java

package WayofTime.bloodmagic.item;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.iface.IUpgradeTrainer;
import WayofTime.bloodmagic.api.livingArmour.LivingArmourHandler;
import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade;
import WayofTime.bloodmagic.api.util.helper.ItemHelper.LivingUpgrades;
import WayofTime.bloodmagic.client.IVariantProvider;
import WayofTime.bloodmagic.util.helper.TextHelper;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import java.util.ArrayList;
import java.util.List;
import java.util.Map.Entry;
public class ItemUpgradeTrainer extends Item implements IUpgradeTrainer, IVariantProvider
{
public ItemUpgradeTrainer()
{
super();
setCreativeTab(BloodMagic.tabUpgradeTome);
setUnlocalizedName(Constants.Mod.MODID + ".upgradeTrainer");
setHasSubtypes(true);
setMaxStackSize(1);
}
@Override
@SideOnly(Side.CLIENT)
public void getSubItems(Item id, CreativeTabs creativeTab, List<ItemStack> list)
{
list.add(new ItemStack(this));
for (Entry<String, Integer> entry : LivingArmourHandler.upgradeMaxLevelMap.entrySet())
{
String key = entry.getKey();
ItemStack stack = new ItemStack(this);
LivingUpgrades.setKey(stack, key);
list.add(stack);
}
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack stack, EntityPlayer player, List<String> tooltip, boolean advanced)
{
// tooltip.addAll(Arrays.asList(TextHelper.cutLongString(TextHelper.localizeEffect("tooltip.BloodMagic.livingArmour"))));
LivingArmourUpgrade upgrade = LivingUpgrades.getUpgrade(stack);
if (upgrade != null)
{
tooltip.add(TextHelper.localize(upgrade.getUnlocalizedName()));
}
}
@Override
public List<String> getTrainedUpgrades(ItemStack stack)
{
List<String> keyList = new ArrayList<String>();
String key = LivingUpgrades.getKey(stack);
if (!key.isEmpty())
{
keyList.add(key);
}
return keyList;
}
@Override
public boolean setTrainedUpgrades(ItemStack stack, List<String> keys)
{
if (keys.isEmpty())
{
return false;
}
LivingUpgrades.setKey(stack, keys.get(0));
return true;
}
@Override
public List<Pair<Integer, String>> getVariants()
{
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
ret.add(new ImmutablePair<Integer, String>(0, "type=upgradetrainer"));
return ret;
}
}