From 4a050b150fb153a349ec7c9486995db6d15accd7 Mon Sep 17 00:00:00 2001 From: Lizbeth Rika Date: Wed, 28 Jan 2015 21:04:51 +0000 Subject: [PATCH] First steps for armor sets. --- .../armor/manasteel/ItemManasteelArmor.java | 74 +++++++++++++++++++ .../resources/assets/botania/lang/en_US.lang | 5 ++ 2 files changed, 79 insertions(+) diff --git a/src/main/java/vazkii/botania/common/item/equipment/armor/manasteel/ItemManasteelArmor.java b/src/main/java/vazkii/botania/common/item/equipment/armor/manasteel/ItemManasteelArmor.java index 138e30918..fb5b25c44 100644 --- a/src/main/java/vazkii/botania/common/item/equipment/armor/manasteel/ItemManasteelArmor.java +++ b/src/main/java/vazkii/botania/common/item/equipment/armor/manasteel/ItemManasteelArmor.java @@ -10,6 +10,9 @@ */ package vazkii.botania.common.item.equipment.armor.manasteel; +import java.util.List; + +import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -18,6 +21,8 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; import net.minecraft.world.World; import net.minecraftforge.common.ISpecialArmor; import vazkii.botania.api.BotaniaAPI; @@ -104,5 +109,74 @@ public class ItemManasteelArmor extends ItemArmor implements ISpecialArmor, IMan public boolean usesMana(ItemStack stack) { return true; } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean adv) { + if(GuiScreen.isShiftKeyDown()) { + addStringToTooltip(getArmorSetTitle(player), list); + addArmorSetDescription(list); + ItemStack[] stacks = getArmorSetStacks(); + for(int i = 0; i < stacks.length; i++) + addStringToTooltip((hasArmorSetItem(player, i) ? EnumChatFormatting.GREEN : "") + " - " + stacks[i].getDisplayName(), list); + } else addStringToTooltip(StatCollector.translateToLocal("botaniamisc.shiftinfo"), list); + } + + public void addStringToTooltip(String s, List tooltip) { + tooltip.add(s.replaceAll("&", "\u00a7")); + } + + static ItemStack[] armorset; + + public ItemStack[] getArmorSetStacks() { + if(armorset == null) + armorset = new ItemStack[] { + new ItemStack(ModItems.manasteelHelm), + new ItemStack(ModItems.manasteelChest), + new ItemStack(ModItems.manasteelLegs), + new ItemStack(ModItems.manasteelBoots) + }; + + return armorset; + } + + public boolean hasArmorSet(EntityPlayer player) { + return hasArmorSetItem(player, 0) && hasArmorSetItem(player, 1) && hasArmorSetItem(player, 2) && hasArmorSetItem(player, 3); + } + + public boolean hasArmorSetItem(EntityPlayer player, int i) { + ItemStack stack = player.inventory.armorInventory[3 - i]; + if(stack == null) + return false; + + switch(i) { + case 0: return stack.getItem() == ModItems.manasteelHelm || stack.getItem() == ModItems.manasteelHelmRevealing; + case 1: return stack.getItem() == ModItems.manasteelChest; + case 2: return stack.getItem() == ModItems.manasteelLegs; + case 3: return stack.getItem() == ModItems.manasteelBoots; + } + + return false; + } + + public int getSetPiecesEquipped(EntityPlayer player) { + int pieces = 0; + for(int i = 0; i < 4; i++) + if(hasArmorSetItem(player, i)) + pieces++; + + return pieces; + } + + public String getArmorSetName() { + return StatCollector.translateToLocal("botania.armorset.manasteel.name"); + } + + public String getArmorSetTitle(EntityPlayer player) { + return StatCollector.translateToLocal("botaniamisc.armorset") + " " + getArmorSetName() + " (" + getSetPiecesEquipped(player) + "/" + getArmorSetStacks().length + ")"; + } + + public void addArmorSetDescription(List list) { + addStringToTooltip(StatCollector.translateToLocal("botania.armorset.manasteel.desc"), list); + } } diff --git a/src/main/resources/assets/botania/lang/en_US.lang b/src/main/resources/assets/botania/lang/en_US.lang index 3e94f7959..6a21b2d16 100644 --- a/src/main/resources/assets/botania/lang/en_US.lang +++ b/src/main/resources/assets/botania/lang/en_US.lang @@ -74,6 +74,7 @@ botaniamisc.cantCraft=Not enough Materials! botaniamisc.lotusDesc=It emits strong magical vibes botaniamisc.hasClip=&6Has Lens Clip botaniamisc.clipEmpty=(Empty) +botaniamisc.armorset=&bArmor Set&r: # NEI INTEGRATION botania.nei.brewery=Botanical Brewery @@ -127,6 +128,10 @@ botania.wings5=Wings: Black Snow Princess botania.wings6=Wings: Lord of the Pit botania.wings7=Wings: Sylph +# ARMOR SETS +botania.armorset.manasteel.name=Mana Affinity +botania.armorset.manasteel.desc=10% less Mana cost on Mana Tools + # ROMAN NUMERALS botania.roman0= botania.roman1=I