mirror of
https://github.com/GTNewHorizons/Botania.git
synced 2026-11-13 16:54:06 +00:00
First steps for armor sets.
This commit is contained in:
1 parent
e02179404a
commit
4a050b150f
2 files changed
+79
No files matched your search
+74
@@ -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<String> 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<String> list) {
|
||||
addStringToTooltip(StatCollector.translateToLocal("botania.armorset.manasteel.desc"), list);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user