From 03b859cf0b85c9ad5ce10d71164634091b0acb4b Mon Sep 17 00:00:00 2001 From: Lance5057 Date: Thu, 14 Apr 2016 01:15:14 -0500 Subject: Added Thaum api, new modifiers, hauberd -> hauberk, fixed finishing anvil bug --- src/main/java/lance5057/tDefense/TD_Commands.java | 4 +- src/main/java/lance5057/tDefense/TD_Config.java | 13 +- .../java/lance5057/tDefense/TinkersDefense.java | 4 +- .../java/lance5057/tDefense/armor/ArmorCore.java | 34 ++++- .../tDefense/armor/items/cloth/TinkersHood.java | 31 ++++- .../tDefense/armor/items/cloth/TinkersRobe.java | 10 +- .../tDefense/armor/items/cloth/TinkersShawl.java | 11 +- .../tDefense/armor/items/cloth/TinkersShoes.java | 10 +- .../tDefense/armor/items/heavy/TinkersHelm.java | 21 ++- .../tDefense/armor/items/light/TinkersCoif.java | 24 +++- .../tDefense/armor/items/light/TinkersHalberd.java | 150 --------------------- .../tDefense/armor/items/light/TinkersHauberk.java | 141 +++++++++++++++++++ .../tDefense/armor/modifiers/ArmorMods.java | 45 ++++--- .../armor/modifiers/Thaumcraft/ThaumArmorMods.java | 55 ++++++++ .../armor/modifiers/modifierBoolExclusive.java | 23 +++- .../armor/modifiers/modifierIntExclusive.java | 80 +++++++++++ .../armor/renderers/light/ModelTinkersHalberd.java | 124 ----------------- .../armor/renderers/light/ModelTinkersHauberk.java | 124 +++++++++++++++++ .../finishingAnvil/utilities/ToolCoreTip.java | 52 ++++--- .../java/lance5057/tDefense/proxy/ClientProxy.java | 4 +- 20 files changed, 615 insertions(+), 345 deletions(-) delete mode 100644 src/main/java/lance5057/tDefense/armor/items/light/TinkersHalberd.java create mode 100644 src/main/java/lance5057/tDefense/armor/items/light/TinkersHauberk.java create mode 100644 src/main/java/lance5057/tDefense/armor/modifiers/Thaumcraft/ThaumArmorMods.java create mode 100644 src/main/java/lance5057/tDefense/armor/modifiers/modifierIntExclusive.java delete mode 100644 src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersHalberd.java create mode 100644 src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersHauberk.java (limited to 'src/main/java') diff --git a/src/main/java/lance5057/tDefense/TD_Commands.java b/src/main/java/lance5057/tDefense/TD_Commands.java index 258480f..8fc4eec 100644 --- a/src/main/java/lance5057/tDefense/TD_Commands.java +++ b/src/main/java/lance5057/tDefense/TD_Commands.java @@ -16,7 +16,7 @@ import lance5057.tDefense.armor.renderers.heavy.ModelTinkersSabatons; import lance5057.tDefense.armor.renderers.light.ModelTinkersBoots; import lance5057.tDefense.armor.renderers.light.ModelTinkersChausses; import lance5057.tDefense.armor.renderers.light.ModelTinkersCoif; -import lance5057.tDefense.armor.renderers.light.ModelTinkersHalberd; +import lance5057.tDefense.armor.renderers.light.ModelTinkersHauberk; import lance5057.tDefense.proxy.ClientProxy; import net.minecraft.command.CommandBase; import net.minecraft.command.ICommand; @@ -122,7 +122,7 @@ public class TD_Commands extends CommandBase implements ICommand ClientProxy.shoes = new ModelTinkersBoots(); ClientProxy.coif = new ModelTinkersCoif(); - ClientProxy.halberd = new ModelTinkersHalberd(); + ClientProxy.hauberk = new ModelTinkersHauberk(); ClientProxy.chausses = new ModelTinkersChausses(); ClientProxy.boots = new ModelTinkersBoots(); } diff --git a/src/main/java/lance5057/tDefense/TD_Config.java b/src/main/java/lance5057/tDefense/TD_Config.java index 6035707..4421675 100644 --- a/src/main/java/lance5057/tDefense/TD_Config.java +++ b/src/main/java/lance5057/tDefense/TD_Config.java @@ -1,10 +1,7 @@ package lance5057.tDefense; -import java.util.Vector; - -import cpw.mods.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.common.config.Configuration; -import net.minecraftforge.common.config.Property; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; public class TD_Config { @@ -37,6 +34,10 @@ public class TD_Config public boolean BotaniaAddon; public int CorpseIvyModID; + public boolean ThaumcraftAddon; + public int RevealingModID; + public int VisDiscountModID; + public TD_Config(FMLPreInitializationEvent e) { Configuration config = new Configuration(e.getSuggestedConfigurationFile()); @@ -72,6 +73,10 @@ public class TD_Config BotaniaAddon = config.getBoolean("Enable Botania Addon", "Botania Addon", true, "Still requires Botania to use"); CorpseIvyModID = config.getInt("Corpse Drinker Ivy Modifier ID", "Botania Addon", 60, 0, Integer.MAX_VALUE, ""); + ThaumcraftAddon = config.getBoolean("Enable Thaumcraft Addon", "Thaumcraft Addon", true, "Requires Thaumcraft to use"); + RevealingModID = config.getInt("Revealing Modifier ID", "Thaumcraft Addon", 70, 0, Integer.MAX_VALUE, ""); + VisDiscountModID = config.getInt("Vis Discount Modifier ID", "Thaumcraft Addon", 71, 0, Integer.MAX_VALUE, ""); + config.save(); } } diff --git a/src/main/java/lance5057/tDefense/TinkersDefense.java b/src/main/java/lance5057/tDefense/TinkersDefense.java index 04421fc..43261aa 100644 --- a/src/main/java/lance5057/tDefense/TinkersDefense.java +++ b/src/main/java/lance5057/tDefense/TinkersDefense.java @@ -25,7 +25,7 @@ import lance5057.tDefense.armor.items.heavy.TinkersSabatons; import lance5057.tDefense.armor.items.light.TinkersBoots; import lance5057.tDefense.armor.items.light.TinkersChausses; import lance5057.tDefense.armor.items.light.TinkersCoif; -import lance5057.tDefense.armor.items.light.TinkersHalberd; +import lance5057.tDefense.armor.items.light.TinkersHauberk; import lance5057.tDefense.armor.parts.Cloth; import lance5057.tDefense.armor.parts.ClothMaterial; import lance5057.tDefense.blocks.JewelersBench; @@ -406,7 +406,7 @@ public class TinkersDefense armor_TinkerShoes = new TinkersShoes(); armor_TinkerCoif = new TinkersCoif(); - armor_TinkerHalberd = new TinkersHalberd(); + armor_TinkerHalberd = new TinkersHauberk(); armor_TinkerChausses = new TinkersChausses(); armor_TinkerBoots = new TinkersBoots(); diff --git a/src/main/java/lance5057/tDefense/armor/ArmorCore.java b/src/main/java/lance5057/tDefense/armor/ArmorCore.java index 6405da0..b68210c 100644 --- a/src/main/java/lance5057/tDefense/armor/ArmorCore.java +++ b/src/main/java/lance5057/tDefense/armor/ArmorCore.java @@ -1,7 +1,6 @@ package lance5057.tDefense.armor; import lance5057.tDefense.TinkersDefense; -import lance5057.tDefense.armor.modifiers.ArmorMods; import net.minecraft.client.model.ModelBiped; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -14,15 +13,19 @@ import net.minecraft.world.World; import net.minecraftforge.common.ISpecialArmor; import tconstruct.library.tools.AbilityHelper; import tconstruct.library.tools.ToolCore; +import thaumcraft.api.IRunicArmor; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -public class ArmorCore extends ToolCore implements ISpecialArmor +public class ArmorCore extends ToolCore implements ISpecialArmor, IRunicArmor { int slot; public float reductionPercent = 0f; protected int maxReduction = 100; + //Thaumcraft + boolean Charge = false; + public ArmorCore(int baseProtection, int slot) { super(baseProtection); @@ -126,4 +129,31 @@ public class ArmorCore extends ToolCore implements ISpecialArmor TinkersDefense.mods.AMod.UpdateAll((ToolCore) itemStack.getItem(), itemStack, world, player, itemStack.getTagCompound().getCompoundTag("InfiTool")); } + @Override + public int getRunicCharge(ItemStack itemstack) + { + return 0; + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity ent, int p_77663_4_, boolean p_77663_5_) + { + //Check if runic shielding level has changed + + NBTTagCompound tcTag = stack.getTagCompound(); + NBTTagCompound ticoTag = stack.getTagCompound().getCompoundTag("InfiTool"); + + byte rs = tcTag.getByte("RS.HARDEN"); + if(!Charge && rs > 0) + { + if(ticoTag.getInteger("Modifiers") > 0) + { + ticoTag.setInteger("Modifiers", ticoTag.getInteger("Modifiers") - 1); + Charge = true; + } + else + tcTag.setByte("RS.HARDEN", (byte) 0); + } + } + } diff --git a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersHood.java b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersHood.java index 361bf54..f723793 100644 --- a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersHood.java +++ b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersHood.java @@ -1,11 +1,8 @@ package lance5057.tDefense.armor.items.cloth; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import lance5057.tDefense.TinkersDefense; import lance5057.tDefense.armor.ArmorCore; import lance5057.tDefense.armor.parts.ClothMaterial; -import lance5057.tDefense.armor.renderers.cloth.ModelTinkersHood; import lance5057.tDefense.proxy.ClientProxy; import net.minecraft.client.model.ModelBiped; import net.minecraft.entity.Entity; @@ -14,12 +11,16 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraftforge.common.ISpecialArmor.ArmorProperties; import tconstruct.library.TConstructRegistry; import tconstruct.library.tools.CustomMaterial; +import thaumcraft.api.IGoggles; +import thaumcraft.api.IVisDiscountGear; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.nodes.IRevealer; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; -public class TinkersHood extends ArmorCore +public class TinkersHood extends ArmorCore implements IRevealer, IGoggles, IVisDiscountGear { public TinkersHood() { @@ -152,4 +153,22 @@ public class TinkersHood extends ArmorCore { return 0; } + + @Override + public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player) + { + return itemstack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Revealing"); + } + + @Override + public boolean showNodes(ItemStack itemstack, EntityLivingBase player) + { + return itemstack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Revealing"); + } + + @Override + public int getVisDiscount(ItemStack stack, EntityPlayer player, Aspect aspect) + { + return stack.getTagCompound().getCompoundTag("InfiTool").getInteger("Vis Embroidery"); + } } diff --git a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersRobe.java b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersRobe.java index 394267c..beaae18 100644 --- a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersRobe.java +++ b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersRobe.java @@ -4,6 +4,8 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import tconstruct.library.TConstructRegistry; import tconstruct.library.tools.CustomMaterial; +import thaumcraft.api.IVisDiscountGear; +import thaumcraft.api.aspects.Aspect; import lance5057.tDefense.TinkersDefense; import lance5057.tDefense.armor.ArmorCore; import lance5057.tDefense.armor.parts.ClothMaterial; @@ -17,7 +19,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -public class TinkersRobe extends ArmorCore +public class TinkersRobe extends ArmorCore implements IVisDiscountGear { public TinkersRobe() { @@ -142,4 +144,10 @@ public class TinkersRobe extends ArmorCore { return 0; } + + @Override + public int getVisDiscount(ItemStack stack, EntityPlayer player, Aspect aspect) + { + return stack.getTagCompound().getCompoundTag("InfiTool").getInteger("Vis Embroidery"); + } } diff --git a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShawl.java b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShawl.java index 9afc5f1..64eebae 100644 --- a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShawl.java +++ b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShawl.java @@ -18,8 +18,10 @@ import net.minecraft.nbt.NBTTagCompound; import tconstruct.library.TConstructRegistry; import tconstruct.library.tools.CustomMaterial; import tconstruct.tools.TinkerTools; +import thaumcraft.api.IVisDiscountGear; +import thaumcraft.api.aspects.Aspect; -public class TinkersShawl extends ArmorCore +public class TinkersShawl extends ArmorCore implements IVisDiscountGear { public TinkersShawl() { @@ -152,4 +154,11 @@ public class TinkersShawl extends ArmorCore { return 0; } + + @Override + public int getVisDiscount(ItemStack stack, EntityPlayer player, Aspect aspect) + { + int test = stack.getTagCompound().getCompoundTag("InfiTool").getInteger("VisEmbroidery"); + return test; + } } diff --git a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShoes.java b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShoes.java index 1b481be..2289c4e 100644 --- a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShoes.java +++ b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShoes.java @@ -16,8 +16,10 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import tconstruct.library.TConstructRegistry; import tconstruct.library.tools.CustomMaterial; +import thaumcraft.api.IVisDiscountGear; +import thaumcraft.api.aspects.Aspect; -public class TinkersShoes extends ArmorCore +public class TinkersShoes extends ArmorCore implements IVisDiscountGear { public TinkersShoes() { @@ -146,4 +148,10 @@ public class TinkersShoes extends ArmorCore { return 0; } + + @Override + public int getVisDiscount(ItemStack stack, EntityPlayer player, Aspect aspect) + { + return stack.getTagCompound().getCompoundTag("InfiTool").getInteger("Vis Embroidery"); + } } diff --git a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java index 23287b9..e06009a 100644 --- a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java +++ b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java @@ -2,22 +2,19 @@ package lance5057.tDefense.armor.items.heavy; import lance5057.tDefense.TinkersDefense; import lance5057.tDefense.armor.ArmorCore; -import lance5057.tDefense.armor.renderers.heavy.ModelTinkersHelm; import lance5057.tDefense.proxy.ClientProxy; import net.minecraft.client.model.ModelBiped; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraftforge.common.ISpecialArmor.ArmorProperties; import tconstruct.tools.TinkerTools; +import thaumcraft.api.IGoggles; +import thaumcraft.api.nodes.IRevealer; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -public class TinkersHelm extends ArmorCore +public class TinkersHelm extends ArmorCore implements IRevealer, IGoggles { public TinkersHelm() { @@ -137,4 +134,16 @@ public class TinkersHelm extends ArmorCore ClientProxy.helm.SetColors(color, this.getDefaultFolder(), textures); return ClientProxy.helm; } + + @Override + public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player) + { + return itemstack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Revealing"); + } + + @Override + public boolean showNodes(ItemStack itemstack, EntityLivingBase player) + { + return itemstack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Revealing"); + } } diff --git a/src/main/java/lance5057/tDefense/armor/items/light/TinkersCoif.java b/src/main/java/lance5057/tDefense/armor/items/light/TinkersCoif.java index 4e1b538..d83c9d3 100644 --- a/src/main/java/lance5057/tDefense/armor/items/light/TinkersCoif.java +++ b/src/main/java/lance5057/tDefense/armor/items/light/TinkersCoif.java @@ -1,12 +1,8 @@ package lance5057.tDefense.armor.items.light; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import lance5057.tDefense.TinkersDefense; import lance5057.tDefense.armor.ArmorCore; import lance5057.tDefense.armor.parts.ClothMaterial; -import lance5057.tDefense.armor.renderers.cloth.ModelTinkersHood; -import lance5057.tDefense.armor.renderers.light.ModelTinkersCoif; import lance5057.tDefense.proxy.ClientProxy; import net.minecraft.client.model.ModelBiped; import net.minecraft.entity.Entity; @@ -14,14 +10,16 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; -import net.minecraftforge.common.ISpecialArmor.ArmorProperties; import tconstruct.library.TConstructRegistry; import tconstruct.library.tools.CustomMaterial; import tconstruct.tools.TinkerTools; +import thaumcraft.api.IGoggles; +import thaumcraft.api.nodes.IRevealer; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; -public class TinkersCoif extends ArmorCore +public class TinkersCoif extends ArmorCore implements IRevealer, IGoggles { public TinkersCoif() { @@ -160,4 +158,16 @@ public class TinkersCoif extends ArmorCore //((EntityPlayer)player).addChatComponentMessage(new ChatComponentText(Double.toString(damage))); return armorp; } + + @Override + public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player) + { + return itemstack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Revealing"); + } + + @Override + public boolean showNodes(ItemStack itemstack, EntityLivingBase player) + { + return itemstack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Revealing"); + } } diff --git a/src/main/java/lance5057/tDefense/armor/items/light/TinkersHalberd.java b/src/main/java/lance5057/tDefense/armor/items/light/TinkersHalberd.java deleted file mode 100644 index 3c7ca44..0000000 --- a/src/main/java/lance5057/tDefense/armor/items/light/TinkersHalberd.java +++ /dev/null @@ -1,150 +0,0 @@ -package lance5057.tDefense.armor.items.light; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import lance5057.tDefense.TinkersDefense; -import lance5057.tDefense.armor.ArmorCore; -import lance5057.tDefense.armor.parts.ClothMaterial; -import lance5057.tDefense.armor.renderers.cloth.ModelTinkersHood; -import lance5057.tDefense.armor.renderers.light.ModelTinkersHalberd; -import lance5057.tDefense.proxy.ClientProxy; -import net.minecraft.client.model.ModelBiped; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraftforge.common.ISpecialArmor.ArmorProperties; -import tconstruct.library.TConstructRegistry; -import tconstruct.library.tools.CustomMaterial; -import tconstruct.tools.TinkerTools; - -public class TinkersHalberd extends ArmorCore -{ - public TinkersHalberd() - { - super(1, 1); - this.setUnlocalizedName("tinkershalberd"); - this.maxReduction = 100; - this.reductionPercent = 0.24f; - } - - @Override - public Item getHeadItem() - { - return TinkersDefense.partChainmaille; - } - - @Override - public Item getHandleItem() - { - return TinkersDefense.partArmorplate; - } - - @Override - public Item getAccessoryItem() - { - return TinkersDefense.partRivet; - } - - @Override - public int durabilityTypeAccessory() - { - return 1; - } - - @Override - public float getRepairCost() - { - return 1.0f; - } - - @Override - public float getDurabilityModifier() - { - return 1f; - } - - @Override - public float getDamageModifier() - { - return 1f; - } - - @Override - public int getPartAmount() - { - return 3; - } - - @Override - public String getIconSuffix(int partType) - { - switch(partType) - { - case 0: - return "_halberd_chain"; - case 1: - return "_halberd_chain_broken"; - case 2: - return "_halberd_plate"; - case 3: - return "_halberd_rivet"; - default: - return ""; - } - } - - @Override - public String getEffectSuffix() - { - return "_halberd_effect"; - } - - @Override - public String getDefaultFolder() - { - return "armor/halberd"; - } - - // @Override - // public void onUpdate(ItemStack stack, World world, Entity entity, int par4, - // boolean par5) { - // super.onUpdate(stack, world, entity, par4, par5); - // - // } - - @Override - public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) - { - return "tinkersdefense:textures/armor/TinkersHalberd.png"; - } - - @Override - public String[] getTraits() - { - return new String[] {"armor", "chest", "halberd", "lightarmor"}; - } - - @Override - @SideOnly(Side.CLIENT) - public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) - { - String[] color = new String[10]; - - for(int j = 0; j < 10; j++) - color[j] = Integer.toHexString(itemStack.getItem().getColorFromItemStack(itemStack, j)); - - String[] textures = {this.getIconSuffix(2), this.getIconSuffix(0), this.getIconSuffix(3)}; - ClientProxy.halberd.SetColors(color, this.getDefaultFolder(), textures); - return ClientProxy.halberd; - } - - @Override - public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) - { - return 6; - } -} diff --git a/src/main/java/lance5057/tDefense/armor/items/light/TinkersHauberk.java b/src/main/java/lance5057/tDefense/armor/items/light/TinkersHauberk.java new file mode 100644 index 0000000..061f7fe --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/items/light/TinkersHauberk.java @@ -0,0 +1,141 @@ +package lance5057.tDefense.armor.items.light; + +import lance5057.tDefense.TinkersDefense; +import lance5057.tDefense.armor.ArmorCore; +import lance5057.tDefense.proxy.ClientProxy; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class TinkersHauberk extends ArmorCore +{ + public TinkersHauberk() + { + super(1, 1); + this.setUnlocalizedName("tinkershauberk"); + this.maxReduction = 100; + this.reductionPercent = 0.24f; + } + + @Override + public Item getHeadItem() + { + return TinkersDefense.partChainmaille; + } + + @Override + public Item getHandleItem() + { + return TinkersDefense.partArmorplate; + } + + @Override + public Item getAccessoryItem() + { + return TinkersDefense.partRivet; + } + + @Override + public int durabilityTypeAccessory() + { + return 1; + } + + @Override + public float getRepairCost() + { + return 1.0f; + } + + @Override + public float getDurabilityModifier() + { + return 1f; + } + + @Override + public float getDamageModifier() + { + return 1f; + } + + @Override + public int getPartAmount() + { + return 3; + } + + @Override + public String getIconSuffix(int partType) + { + switch(partType) + { + case 0: + return "_hauberk_chain"; + case 1: + return "_hauberk_chain_broken"; + case 2: + return "_hauberk_plate"; + case 3: + return "_hauberk_rivet"; + default: + return ""; + } + } + + @Override + public String getEffectSuffix() + { + return "_hauberk_effect"; + } + + @Override + public String getDefaultFolder() + { + return "armor/hauberk"; + } + + // @Override + // public void onUpdate(ItemStack stack, World world, Entity entity, int par4, + // boolean par5) { + // super.onUpdate(stack, world, entity, par4, par5); + // + // } + + @Override + public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) + { + return "tinkersdefense:textures/armor/TinkersHauberk.png"; + } + + @Override + public String[] getTraits() + { + return new String[] {"armor", "chest", "hauberk", "lightarmor"}; + } + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) + { + String[] color = new String[10]; + + for(int j = 0; j < 10; j++) + color[j] = Integer.toHexString(itemStack.getItem().getColorFromItemStack(itemStack, j)); + + String[] textures = {this.getIconSuffix(2), this.getIconSuffix(0), this.getIconSuffix(3)}; + ClientProxy.hauberk.SetColors(color, this.getDefaultFolder(), textures); + return ClientProxy.hauberk; + } + + @Override + public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) + { + return 6; + } +} diff --git a/src/main/java/lance5057/tDefense/armor/modifiers/ArmorMods.java b/src/main/java/lance5057/tDefense/armor/modifiers/ArmorMods.java index 9bc1766..183d746 100644 --- a/src/main/java/lance5057/tDefense/armor/modifiers/ArmorMods.java +++ b/src/main/java/lance5057/tDefense/armor/modifiers/ArmorMods.java @@ -2,6 +2,7 @@ package lance5057.tDefense.armor.modifiers; import lance5057.tDefense.Reference; import lance5057.tDefense.TinkersDefense; +import lance5057.tDefense.armor.modifiers.Thaumcraft.ThaumArmorMods; import net.minecraft.block.Block; import net.minecraft.block.BlockLiquid; import net.minecraft.block.material.Material; @@ -22,11 +23,13 @@ import cpw.mods.fml.common.registry.GameRegistry; public class ArmorMods { + ThaumArmorMods tcmods; + + public ArmorMods() + { + tcmods = new ThaumArmorMods(); + } - // public ArmorMods() - // { - // - // } Item item_Canister; Item item_Emptycanister; Item item_Rebreather; @@ -52,46 +55,50 @@ public class ArmorMods GameRegistry.registerItem(item_Canister, "FilledCart"); GameRegistry.registerItem(item_Emptycanister, "EmptyCart"); GameRegistry.registerItem(item_Rebreather, "Rebreather"); - + GameRegistry.registerItem(item_Feathersole, "FeatherSole"); GameRegistry.registerItem(item_Firesole, "FireSole"); GameRegistry.registerItem(item_Icesole, "IceSole"); GameRegistry.registerItem(item_Glowsole, "GlowSole"); GameRegistry.registerItem(item_Flippers, "Flippers"); + + tcmods.LoadItems(); + } public void RegisterRecipes() { GameRegistry.addShapedRecipe(new ItemStack(item_Canister), new Object[] {"-c-", "ses", "-s-", 'c', new ItemStack(Items.coal, 1, 1), 's', new ItemStack(Blocks.sapling, 1), 'e', new ItemStack(item_Emptycanister, 1, 0)}); GameRegistry.addShapedRecipe(new ItemStack(item_Emptycanister), new Object[] {"gsg", "lil", "gig", 'g', new ItemStack(Items.gold_nugget, 1, 0), 's', new ItemStack(Items.slime_ball, 1, 0), 'l', new ItemStack(Items.dye, 1, 4), 'i', new ItemStack(Items.iron_ingot, 1, 0)}); - GameRegistry.addShapedRecipe(new ItemStack(item_Rebreather), new Object[] {"-s-", "eie", "-d-", 's', new ItemStack(Items.slime_ball, 1, 0), 'e', new ItemStack(item_Emptycanister, 1, 0), 'i', new ItemStack(TinkersDefense.partArmorplate,1,2), 'd', new ItemStack(Items.dye, 1, 0)}); + GameRegistry.addShapedRecipe(new ItemStack(item_Rebreather), new Object[] {"-s-", "eie", "-d-", 's', new ItemStack(Items.slime_ball, 1, 0), 'e', new ItemStack(item_Emptycanister, 1, 0), 'i', new ItemStack(TinkersDefense.partArmorplate, 1, 2), 'd', new ItemStack(Items.dye, 1, 0)}); GameRegistry.addShapedRecipe(new ItemStack(item_Glowsole), new Object[] {"ggg", "ala", "ggg", 'g', new ItemStack(Blocks.glowstone, 1, 0), 'a', new ItemStack(Items.glowstone_dust, 1, 0), 'l', TConstructRegistry.getItemStack("lavaCrystal")}); GameRegistry.addShapedRecipe(new ItemStack(item_Glowsole), new Object[] {"gag", "glg", "gag", 'g', new ItemStack(Blocks.glowstone, 1, 0), 'a', new ItemStack(Items.glowstone_dust, 1, 0), 'l', TConstructRegistry.getItemStack("lavaCrystal")}); GameRegistry.addShapedRecipe(new ItemStack(item_Feathersole), new Object[] {"fgf", 'g', new ItemStack(Items.gold_nugget, 1, 0), 'f', new ItemStack(Items.feather, 1, 0)}); GameRegistry.addShapedRecipe(new ItemStack(item_Firesole), new Object[] {"lol", "oao", "lol", 'o', new ItemStack(Blocks.obsidian, 1, 0), 'a', TConstructRegistry.getItemStack("ingotArdite"), 'l', TConstructRegistry.getItemStack("lavaCrystal")}); GameRegistry.addShapedRecipe(new ItemStack(item_Icesole), new Object[] {"ili", "lcl", "ili", 'l', new ItemStack(Blocks.lapis_block, 1, 0), 'i', new ItemStack(Blocks.ice, 1, 0), 'c', TConstructRegistry.getItemStack("ingotCobalt")}); - GameRegistry.addShapedRecipe(new ItemStack(item_Flippers), new Object[] {"-b-", "rlr", "-s-", 'b', new ItemStack(Items.leather_boots, 1, 0), 'l', new ItemStack(Items.leather, 1, 0), 'r', new ItemStack(TinkerTools.toolRod,1,2), 's', new ItemStack(Items.slime_ball, 1, 0)}); + GameRegistry.addShapedRecipe(new ItemStack(item_Flippers), new Object[] {"-b-", "rlr", "-s-", 'b', new ItemStack(Items.leather_boots, 1, 0), 'l', new ItemStack(Items.leather, 1, 0), 'r', new ItemStack(TinkerTools.toolRod, 1, 2), 's', new ItemStack(Items.slime_ball, 1, 0)}); + tcmods.RegisterRecipes(); } public void RegisterModifiers() { //Head only - ModifyBuilder.registerModifier(new modifierBoolExclusive(new ItemStack[] {new ItemStack(item_Rebreather, 1, 0)}, TinkersDefense.config.ArmorRebreatherID, "Rebreather", "\u00A76", "Rebreather", new String[] {"head"})); - + ModifyBuilder.registerModifier(new modifierBoolExclusive(new ItemStack[] {new ItemStack(item_Rebreather, 1, 0)}, TinkersDefense.config.ArmorRebreatherID, "Rebreather", "\u00A76", "Rebreather", new String[] {"head"}, 1)); + //Excluding Cloth ModifyBuilder.registerModifier(new modifierProtection(new ItemStack[] {new ItemStack(TinkersDefense.partArmorplate, 1, 2)}, TinkersDefense.config.ArmorProtectionID, 1, "\u00A77", "Protection")); ModifyBuilder.registerModifier(new modifierProtection(new ItemStack[] {new ItemStack(Items.magma_cream, 1)}, TinkersDefense.config.ArmorFireProtectionID, 1, "\u00A7c", "Fire Protection")); ModifyBuilder.registerModifier(new modifierProtection(new ItemStack[] {new ItemStack(Blocks.wool, 1)}, TinkersDefense.config.ArmorBlastProtectionID, 1, "\u00A72", "Blast Protection")); ModifyBuilder.registerModifier(new modifierProtection(new ItemStack[] {new ItemStack(TinkersDefense.partRivet, 1, 2)}, TinkersDefense.config.ArmorProjectileProtectionID, 1, "\u00A7f", "Projectile Protection")); ModifyBuilder.registerModifier(new modifierProtection(new ItemStack[] {new ItemStack(item_Feathersole, 1, 0)}, TinkersDefense.config.ArmorFeatherfallID, 1, "\u00A7f", "Featherfall")); - + //Feet only - ModifyBuilder.registerModifier(new modifierBoolExclusive(new ItemStack[] {new ItemStack(item_Glowsole, 1, 0)}, TinkersDefense.config.ArmorGlowstepID, "GlowStep", "\u00A76", "GlowStep", new String[] {"feet"})); - ModifyBuilder.registerModifier(new modifierBoolExclusive(new ItemStack[] {new ItemStack(item_Firesole, 1, 0)}, TinkersDefense.config.ArmorFirewalkerID, "Firewalker", "\u00A74", "Firewalker", new String[] {"feet"})); - ModifyBuilder.registerModifier(new modifierBoolExclusive(new ItemStack[] {new ItemStack(item_Icesole, 1, 0)}, TinkersDefense.config.ArmorFrostwalkerID, "Frostwalker", "\u00A7b", "Frostwalker", new String[] {"feet"})); - ModifyBuilder.registerModifier(new modifierBoolExclusive(new ItemStack[] {new ItemStack(item_Flippers, 1, 0)}, TinkersDefense.config.ArmorDepthstriderID, "Depthstrider", "\u00A71", "Depthstrider", new String[] {"feet"})); + ModifyBuilder.registerModifier(new modifierBoolExclusive(new ItemStack[] {new ItemStack(item_Glowsole, 1, 0)}, TinkersDefense.config.ArmorGlowstepID, "GlowStep", "\u00A76", "GlowStep", new String[] {"feet"}, 1)); + ModifyBuilder.registerModifier(new modifierBoolExclusive(new ItemStack[] {new ItemStack(item_Firesole, 1, 0)}, TinkersDefense.config.ArmorFirewalkerID, "Firewalker", "\u00A74", "Firewalker", new String[] {"feet"}, 1)); + ModifyBuilder.registerModifier(new modifierBoolExclusive(new ItemStack[] {new ItemStack(item_Icesole, 1, 0)}, TinkersDefense.config.ArmorFrostwalkerID, "Frostwalker", "\u00A7b", "Frostwalker", new String[] {"feet"}, 1)); + ModifyBuilder.registerModifier(new modifierBoolExclusive(new ItemStack[] {new ItemStack(item_Flippers, 1, 0)}, TinkersDefense.config.ArmorDepthstriderID, "Depthstrider", "\u00A71", "Depthstrider", new String[] {"feet"}, 1)); for(ToolCore tool : TConstructRegistry.getToolMapping()) { @@ -102,13 +109,15 @@ public class ArmorMods TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.ArmorBlastProtectionID, "tinker", "blastprotection", true); TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.ArmorProjectileProtectionID, "tinker", "projprotection", true); TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.ArmorFeatherfallID, "tinker", "featherfall", true); - + TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.ArmorGlowstepID, "tinker", "glowstep", true); TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.ArmorFirewalkerID, "tinker", "firewalk", true); TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.ArmorFrostwalkerID, "tinker", "frostwalk", true); TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.ArmorDepthstriderID, "tinker", "depthstrider", true); } + + tcmods.RegisterModifiers(); } public void UpdateAll(ToolCore tool, ItemStack stack, World world, Entity entity, NBTTagCompound tags) @@ -129,6 +138,8 @@ public class ArmorMods if(tags.hasKey("Depthstrider")) UpdateFlippers(tool, stack, world, entity); } + + tcmods.UpdateAll(tool, stack, world, entity, tags); } public void UpdateWalker(ToolCore tool, ItemStack stack, World world, Entity entity, Material mat, Block replacement, int meta) @@ -181,7 +192,7 @@ public class ArmorMods prevX = x; prevZ = z; } - + public void UpdateFlippers(ToolCore tool, ItemStack stack, World world, Entity entity) { if(entity.isInWater()) @@ -191,7 +202,7 @@ public class ArmorMods entity.motionZ *= 1.2; } } - + public void UpdateRebreather(ToolCore tool, ItemStack stack, World world, Entity entity) { EntityPlayer player = (EntityPlayer) entity; diff --git a/src/main/java/lance5057/tDefense/armor/modifiers/Thaumcraft/ThaumArmorMods.java b/src/main/java/lance5057/tDefense/armor/modifiers/Thaumcraft/ThaumArmorMods.java new file mode 100644 index 0000000..ec0a444 --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/modifiers/Thaumcraft/ThaumArmorMods.java @@ -0,0 +1,55 @@ +package lance5057.tDefense.armor.modifiers.Thaumcraft; + +import lance5057.tDefense.Reference; +import lance5057.tDefense.TinkersDefense; +import lance5057.tDefense.armor.modifiers.modifierBoolExclusive; +import lance5057.tDefense.armor.modifiers.modifierIntExclusive; +import lance5057.tDefense.armor.modifiers.modifierProtection; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import tconstruct.library.TConstructRegistry; +import tconstruct.library.client.TConstructClientRegistry; +import tconstruct.library.crafting.ModifyBuilder; +import tconstruct.library.tools.ToolCore; +import tconstruct.modifiers.tools.ModInteger; +import tconstruct.tools.TinkerTools; +import thaumcraft.api.ItemApi; +import cpw.mods.fml.common.registry.GameRegistry; + +public class ThaumArmorMods +{ + + //Runic Shielding is handled in ArmorCore.java + + public void LoadItems() + { + } + + public void RegisterRecipes() + { + } + + public void RegisterModifiers() + { + ModifyBuilder.registerModifier(new modifierBoolExclusive(new ItemStack[] {ItemApi.getItem("itemGoggles", 0)}, TinkersDefense.config.RevealingModID, "Revealing", "\u00A75", "Revealing", new String[] {"head"}, 0)); + + ModifyBuilder.registerModifier(new modifierIntExclusive(new ItemStack[] {ItemApi.getItem("itemResource", 7)}, TinkersDefense.config.VisDiscountModID, "VisEmbroidery", 1, "\u00A79", "Vis Embroidery", new String[] {"cloth"}, 1)); + + for(ToolCore tool : TConstructRegistry.getToolMapping()) + { + TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.RevealingModID, "tinker", "revealing", true); + TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.VisDiscountModID, "tinker", "vis", true); + + } + } + + public void UpdateAll(ToolCore tool, ItemStack stack, World world, Entity entity, NBTTagCompound tags) + { + } +} diff --git a/src/main/java/lance5057/tDefense/armor/modifiers/modifierBoolExclusive.java b/src/main/java/lance5057/tDefense/armor/modifiers/modifierBoolExclusive.java index f573ada..aa55571 100644 --- a/src/main/java/lance5057/tDefense/armor/modifiers/modifierBoolExclusive.java +++ b/src/main/java/lance5057/tDefense/armor/modifiers/modifierBoolExclusive.java @@ -11,10 +11,17 @@ import tconstruct.modifiers.tools.ModBoolean; public class modifierBoolExclusive extends ModBoolean { String[] exclusive; - public modifierBoolExclusive(ItemStack[] items, int effect, String tag, String c, String tip, String[] exclusive) + int modsNeeded = 0; + String color; + String tooltipName; + + public modifierBoolExclusive(ItemStack[] items, int effect, String tag, String c, String tip, String[] exclusive, int modsNeeded) { super(items, effect, tag, c, tip); this.exclusive = exclusive; + this.modsNeeded = modsNeeded; + this.color = c; + this.tooltipName = tip; } @Override @@ -33,4 +40,18 @@ public class modifierBoolExclusive extends ModBoolean return false; } + + @Override + public void modify (ItemStack[] input, ItemStack tool) + { + NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); + + tags.setBoolean(key, true); + + int modifiers = tags.getInteger("Modifiers"); + modifiers -= modsNeeded; + tags.setInteger("Modifiers", modifiers); + + addToolTip(tool, color + tooltipName, color + key); + } } diff --git a/src/main/java/lance5057/tDefense/armor/modifiers/modifierIntExclusive.java b/src/main/java/lance5057/tDefense/armor/modifiers/modifierIntExclusive.java new file mode 100644 index 0000000..77116ee --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/modifiers/modifierIntExclusive.java @@ -0,0 +1,80 @@ +package lance5057.tDefense.armor.modifiers; + +import java.util.Arrays; +import java.util.List; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import tconstruct.library.tools.ToolCore; +import tconstruct.modifiers.tools.ModInteger; + +public class modifierIntExclusive extends ModInteger +{ + String[] exclusive; + int modsNeeded = 0; + String color; + String tooltipName; + int initialIncrease; + int secondaryIncrease; + int max = 5; + + public modifierIntExclusive(ItemStack[] items, int effect, String dataKey, int increase, String c, String tip, String[] exclusive, int modsNeeded) + { + super(items, effect, dataKey, increase, c, tip); + this.exclusive = exclusive; + this.modsNeeded = modsNeeded; + initialIncrease = secondaryIncrease = increase; + color = c; + tooltipName = tip; + } + + public modifierIntExclusive(ItemStack[] items, int effect, String dataKey, int increase, String c, String tip, String[] exclusive, int modsNeeded, int max) + { + super(items, effect, dataKey, increase, c, tip); + this.exclusive = exclusive; + this.modsNeeded = modsNeeded; + initialIncrease = secondaryIncrease = increase; + color = c; + tooltipName = tip; + this.max = max; + } + + @Override + protected boolean canModify(ItemStack tool, ItemStack[] input) + { + List list = Arrays.asList(((ToolCore) tool.getItem()).getTraits()); + NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); + + for(int i = 0; i < exclusive.length; i++) + { + if(list.contains(exclusive[i])) + { + return tags.getInteger(tooltipName) < max; + } + } + + return false; + } + + @Override + public void modify(ItemStack[] input, ItemStack tool) + { + NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); + if(tags.hasKey(key)) + { + int increase = tags.getInteger(key); + increase += secondaryIncrease; + tags.setInteger(key, increase); + } + else + { + tags.setInteger(key, initialIncrease); + } + + int modifiers = tags.getInteger("Modifiers"); + modifiers -= modsNeeded; + tags.setInteger("Modifiers", modifiers); + + addToolTip(tool, color + tooltipName, color + key); + } +} diff --git a/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersHalberd.java b/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersHalberd.java deleted file mode 100644 index 0eff717..0000000 --- a/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersHalberd.java +++ /dev/null @@ -1,124 +0,0 @@ -package lance5057.tDefense.armor.renderers.light; - -import lance5057.tDefense.TinkersDefense; -import lance5057.tDefense.armor.renderers.ArmorRenderer; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; - -import cpw.mods.fml.client.FMLClientHandler; - -/** - * ModelBiped - Either Mojang or a mod author - * Created using Tabula 4.1.1 - */ -public class ModelTinkersHalberd extends ArmorRenderer -{ - public ModelRenderer Pauldron1; - public ModelRenderer Pauldron2; - public ModelRenderer Pauldron3; - public ModelRenderer ArmR; - public ModelRenderer Body; - public ModelRenderer Pauldron1_1; - public ModelRenderer Pauldron2_1; - public ModelRenderer Pauldron3_1; - public ModelRenderer ArmL; - - public ModelTinkersHalberd() - { - super(1.1f, 0, 64, 64); - - this.textureWidth = 64; - this.textureHeight = 64; - - this.Pauldron2_1 = new ModelRenderer(this, 0, 32); - this.Pauldron2_1.mirror = true; - this.Pauldron2_1.setRotationPoint(0.0F, 0.0F, 0.01F); - this.Pauldron2_1.addBox(-0.7F, -2.7F, -2.0F, 3, 3, 4, 0.1F); - this.setRotateAngle(Pauldron2_1, 0.0F, 0.0F, 0.2617993877991494F); - this.bipedLeftArm.addChild(this.Pauldron2_1); - - this.Body = new ModelRenderer(this, 16, 48); - this.Body.setRotationPoint(0.0F, 0.0F, 0.0F); - this.Body.addBox(-4.0F, 0.0F, -2.0F, 8, 12, 4, 0.01F); - this.bipedBody.addChild(this.Body); - - this.Pauldron1_1 = new ModelRenderer(this, 30, 32); - this.Pauldron1_1.mirror = true; - this.Pauldron1_1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.Pauldron1_1.addBox(0.5F, -1.9F, -2.5F, 3, 4, 5, 0.01F); - this.setRotateAngle(Pauldron1_1, 0.0F, 0.0F, -0.2617993877991494F); - this.bipedLeftArm.addChild(this.Pauldron1_1); - - this.Pauldron3 = new ModelRenderer(this, 16, 32); - this.Pauldron3.setRotationPoint(0.0F, 0.0F, 0.0F); - this.Pauldron3.addBox(-1.2F, -1.5F, -2.5F, 2, 2, 5, 0.11F); - this.setRotateAngle(Pauldron3, 0.0F, 0.0F, -0.2617993877991494F); - this.bipedRightArm.addChild(this.Pauldron3); - - this.ArmL = new ModelRenderer(this, 0, 48); - this.ArmL.mirror = true; - this.ArmL.setRotationPoint(0.0F, 0.0F, 0.0F); - this.ArmL.addBox(-1.0F, -2.0F, -2.0F, 4, 12, 4, 0.02F); - this.bipedLeftArm.addChild(this.ArmL); - - this.Pauldron1 = new ModelRenderer(this, 30, 32); - this.Pauldron1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.Pauldron1.addBox(-3.5F, -1.9F, -2.5F, 3, 4, 5, 0.01F); - this.setRotateAngle(Pauldron1, 0.0F, 0.0F, 0.2617993877991494F); - this.bipedRightArm.addChild(this.Pauldron1); - - this.Pauldron3_1 = new ModelRenderer(this, 16, 32); - this.Pauldron3_1.mirror = true; - this.Pauldron3_1.setRotationPoint(0.0F, 0.0F, 0.0F); - this.Pauldron3_1.addBox(-0.8F, -1.5F, -2.5F, 2, 2, 5, 0.11F); - this.setRotateAngle(Pauldron3_1, 0.0F, 0.0F, 0.2617993877991494F); - this.bipedLeftArm.addChild(this.Pauldron3_1); - - this.Pauldron2 = new ModelRenderer(this, 0, 32); - this.Pauldron2.setRotationPoint(0.0F, 0.0F, 0.0F); - this.Pauldron2.addBox(-2.3F, -2.7F, -2.0F, 3, 3, 4, 0.11F); - this.setRotateAngle(Pauldron2, 0.0F, 0.0F, -0.2617993877991494F); - this.bipedRightArm.addChild(this.Pauldron2); - - this.ArmR = new ModelRenderer(this, 0, 48); - this.ArmR.setRotationPoint(0.0F, 0.0F, 0.0F); - this.ArmR.addBox(-3.0F, -2.0F, -2.0F, 4, 12, 4, 0.02F); - this.bipedRightArm.addChild(this.ArmR); - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - GL11.glPushMatrix(); - for(int i = 0; i < 3; i++) - { - GL11.glPushMatrix(); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation("tinkersdefense:textures/" + defaultFolder + "/" + textures[i] + ".png")); - - float size = 1.6f; - GL11.glScalef(1.0F / size, 1.0F / size, 1.0F / size); - GL11.glTranslatef(0.0F, 0F * f5, 0.0F); - - int[] intColors = TinkersDefense.hexToRGB(colors[i]); - GL11.glColor3d((float) intColors[0] / 255, (float) intColors[1] / 255, (float) intColors[2] / 255); - - super.render(entity, f, f1, f2, f3, f4, f5); - GL11.glPopMatrix(); - } - GL11.glPopMatrix(); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) - { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } -} diff --git a/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersHauberk.java b/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersHauberk.java new file mode 100644 index 0000000..455ac3b --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersHauberk.java @@ -0,0 +1,124 @@ +package lance5057.tDefense.armor.renderers.light; + +import lance5057.tDefense.TinkersDefense; +import lance5057.tDefense.armor.renderers.ArmorRenderer; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.FMLClientHandler; + +/** + * ModelBiped - Either Mojang or a mod author + * Created using Tabula 4.1.1 + */ +public class ModelTinkersHauberk extends ArmorRenderer +{ + public ModelRenderer Pauldron1; + public ModelRenderer Pauldron2; + public ModelRenderer Pauldron3; + public ModelRenderer ArmR; + public ModelRenderer Body; + public ModelRenderer Pauldron1_1; + public ModelRenderer Pauldron2_1; + public ModelRenderer Pauldron3_1; + public ModelRenderer ArmL; + + public ModelTinkersHauberk() + { + super(1.1f, 0, 64, 64); + + this.textureWidth = 64; + this.textureHeight = 64; + + this.Pauldron2_1 = new ModelRenderer(this, 0, 32); + this.Pauldron2_1.mirror = true; + this.Pauldron2_1.setRotationPoint(0.0F, 0.0F, 0.01F); + this.Pauldron2_1.addBox(-0.7F, -2.7F, -2.0F, 3, 3, 4, 0.1F); + this.setRotateAngle(Pauldron2_1, 0.0F, 0.0F, 0.2617993877991494F); + this.bipedLeftArm.addChild(this.Pauldron2_1); + + this.Body = new ModelRenderer(this, 16, 48); + this.Body.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Body.addBox(-4.0F, 0.0F, -2.0F, 8, 12, 4, 0.01F); + this.bipedBody.addChild(this.Body); + + this.Pauldron1_1 = new ModelRenderer(this, 30, 32); + this.Pauldron1_1.mirror = true; + this.Pauldron1_1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron1_1.addBox(0.5F, -1.9F, -2.5F, 3, 4, 5, 0.01F); + this.setRotateAngle(Pauldron1_1, 0.0F, 0.0F, -0.2617993877991494F); + this.bipedLeftArm.addChild(this.Pauldron1_1); + + this.Pauldron3 = new ModelRenderer(this, 16, 32); + this.Pauldron3.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron3.addBox(-1.2F, -1.5F, -2.5F, 2, 2, 5, 0.11F); + this.setRotateAngle(Pauldron3, 0.0F, 0.0F, -0.2617993877991494F); + this.bipedRightArm.addChild(this.Pauldron3); + + this.ArmL = new ModelRenderer(this, 0, 48); + this.ArmL.mirror = true; + this.ArmL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ArmL.addBox(-1.0F, -2.0F, -2.0F, 4, 12, 4, 0.02F); + this.bipedLeftArm.addChild(this.ArmL); + + this.Pauldron1 = new ModelRenderer(this, 30, 32); + this.Pauldron1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron1.addBox(-3.5F, -1.9F, -2.5F, 3, 4, 5, 0.01F); + this.setRotateAngle(Pauldron1, 0.0F, 0.0F, 0.2617993877991494F); + this.bipedRightArm.addChild(this.Pauldron1); + + this.Pauldron3_1 = new ModelRenderer(this, 16, 32); + this.Pauldron3_1.mirror = true; + this.Pauldron3_1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron3_1.addBox(-0.8F, -1.5F, -2.5F, 2, 2, 5, 0.11F); + this.setRotateAngle(Pauldron3_1, 0.0F, 0.0F, 0.2617993877991494F); + this.bipedLeftArm.addChild(this.Pauldron3_1); + + this.Pauldron2 = new ModelRenderer(this, 0, 32); + this.Pauldron2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron2.addBox(-2.3F, -2.7F, -2.0F, 3, 3, 4, 0.11F); + this.setRotateAngle(Pauldron2, 0.0F, 0.0F, -0.2617993877991494F); + this.bipedRightArm.addChild(this.Pauldron2); + + this.ArmR = new ModelRenderer(this, 0, 48); + this.ArmR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ArmR.addBox(-3.0F, -2.0F, -2.0F, 4, 12, 4, 0.02F); + this.bipedRightArm.addChild(this.ArmR); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glPushMatrix(); + for(int i = 0; i < 3; i++) + { + GL11.glPushMatrix(); + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation("tinkersdefense:textures/" + defaultFolder + "/" + textures[i] + ".png")); + + float size = 1.6f; + GL11.glScalef(1.0F / size, 1.0F / size, 1.0F / size); + GL11.glTranslatef(0.0F, 0F * f5, 0.0F); + + int[] intColors = TinkersDefense.hexToRGB(colors[i]); + GL11.glColor3d((float) intColors[0] / 255, (float) intColors[1] / 255, (float) intColors[2] / 255); + + super.render(entity, f, f1, f2, f3, f4, f5); + GL11.glPopMatrix(); + } + GL11.glPopMatrix(); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/src/main/java/lance5057/tDefense/finishingAnvil/utilities/ToolCoreTip.java b/src/main/java/lance5057/tDefense/finishingAnvil/utilities/ToolCoreTip.java index 1948779..7da31f0 100644 --- a/src/main/java/lance5057/tDefense/finishingAnvil/utilities/ToolCoreTip.java +++ b/src/main/java/lance5057/tDefense/finishingAnvil/utilities/ToolCoreTip.java @@ -4,42 +4,56 @@ import java.util.ArrayList; import java.util.List; public class ToolCoreTip -{ - String head; - String handle; - String accessory; - String extra; - +{ + String head = ""; + String handle = ""; + String accessory = ""; + String extra = ""; + List headTT = new ArrayList(); List accessoryTT = new ArrayList(); List handleTT = new ArrayList(); List extraTT = new ArrayList(); - + public ToolCoreTip() { } - + public String getPart(int id /*1-4*/) { switch(id) { - case 1: return head; - case 2: return handle; - case 3: return accessory; - case 4: return extra; - default: return ""; + case 1: + return head; + case 2: + return handle; + case 3: + return accessory; + case 4: + return extra; + default: + return ""; } } - + public String getPartName(int partId /*1-4*/, int id) { switch(partId) { - case 1: return headTT.get(id); - case 2: return handleTT.get(id); - case 3: return accessoryTT.get(id); - case 4: return extraTT.get(id); - default: return ""; + case 1: + if(headTT.size() > 0 && headTT.size() >= id - 1 && headTT.get(id) != null) + return headTT.get(id); + case 2: + if(handleTT.size() > 0 && handleTT.size() >= id - 1 && handleTT.get(id) != null) + return handleTT.get(id); + case 3: + if(accessoryTT.size() > 0 && accessoryTT.size() >= id - 1 && accessoryTT.get(id) != null) + return accessoryTT.get(id); + case 4: + if(extraTT.size() > 0 && extraTT.size() >= id - 1 && extraTT.get(id) != null) + return extraTT.get(id); + default: + return ""; } } } diff --git a/src/main/java/lance5057/tDefense/proxy/ClientProxy.java b/src/main/java/lance5057/tDefense/proxy/ClientProxy.java index 9358e69..dbd2492 100644 --- a/src/main/java/lance5057/tDefense/proxy/ClientProxy.java +++ b/src/main/java/lance5057/tDefense/proxy/ClientProxy.java @@ -14,7 +14,7 @@ import lance5057.tDefense.armor.renderers.heavy.ModelTinkersSabatons; import lance5057.tDefense.armor.renderers.light.ModelTinkersBoots; import lance5057.tDefense.armor.renderers.light.ModelTinkersChausses; import lance5057.tDefense.armor.renderers.light.ModelTinkersCoif; -import lance5057.tDefense.armor.renderers.light.ModelTinkersHalberd; +import lance5057.tDefense.armor.renderers.light.ModelTinkersHauberk; import lance5057.tDefense.core.blocks.crestMount.Renderer_CrestMount; import lance5057.tDefense.core.blocks.crestMount.TileEntity_CrestMount; import lance5057.tDefense.core.renderer.BigFlexibleToolRenderer; @@ -45,7 +45,7 @@ public class ClientProxy extends CommonProxy public static ModelTinkersBoots shoes = new ModelTinkersBoots(); public static ModelTinkersCoif coif = new ModelTinkersCoif(); - public static ModelTinkersHalberd halberd = new ModelTinkersHalberd(); + public static ModelTinkersHauberk hauberk = new ModelTinkersHauberk(); public static ModelTinkersChausses chausses = new ModelTinkersChausses(); public static ModelTinkersBoots boots = new ModelTinkersBoots(); -- cgit v1.2.3