diff options
| author | Lance5057 <Lance5057@gmail.com> | 2015-11-05 04:48:34 -0600 |
|---|---|---|
| committer | Lance5057 <Lance5057@gmail.com> | 2015-11-05 04:48:34 -0600 |
| commit | 1138bd307f49f8ae4913d836f5a43f827f60417b (patch) | |
| tree | b9a4431c09b65de04253bca2a7169437776a3278 /src/main/java | |
| parent | 2b70895bbb350ba51e0aa3eebf772ca8267af0fe (diff) | |
Armor, Armor, ARMOR!
Diffstat (limited to 'src/main/java')
19 files changed, 1254 insertions, 302 deletions
diff --git a/src/main/java/lance5057/tDefense/TinkersDefense.java b/src/main/java/lance5057/tDefense/TinkersDefense.java index 2f322cc..55723ef 100644 --- a/src/main/java/lance5057/tDefense/TinkersDefense.java +++ b/src/main/java/lance5057/tDefense/TinkersDefense.java @@ -3,11 +3,16 @@ package lance5057.tDefense; import static net.minecraft.util.EnumChatFormatting.DARK_RED; import static net.minecraft.util.EnumChatFormatting.GOLD; import static net.minecraft.util.EnumChatFormatting.LIGHT_PURPLE; +import lance5057.tDefense.armor.ArmorCore; +import lance5057.tDefense.armor.events.ArmorRenderEvent; import lance5057.tDefense.armor.items.ChainArmor; import lance5057.tDefense.armor.items.ClothArmor; import lance5057.tDefense.armor.items.Mask; import lance5057.tDefense.armor.items.Sheath; -import lance5057.tDefense.armor.items.TinkerArmor; +import lance5057.tDefense.armor.items.heavy.TinkersBreastplate; +import lance5057.tDefense.armor.items.heavy.TinkersGrieves; +import lance5057.tDefense.armor.items.heavy.TinkersHelm; +import lance5057.tDefense.armor.items.heavy.TinkersSabatons; import lance5057.tDefense.armor.parts.Item_Cloth; import lance5057.tDefense.armor.parts.Item_Glowthread; import lance5057.tDefense.armor.parts.Item_Thread; @@ -26,15 +31,10 @@ import lance5057.tDefense.core.liquids.moltenQueensGoldFluid; import lance5057.tDefense.core.network.PacketHandler; import lance5057.tDefense.core.tools.HeaterShield; import lance5057.tDefense.core.tools.RoundShield; +import lance5057.tDefense.core.tools.Shears; import lance5057.tDefense.core.tools.TinkerWrench; import lance5057.tDefense.core.tools.TinkerZweihander; -import lance5057.tDefense.core.tools.modifiers.TDefenseActiveToolMod; -import lance5057.tDefense.core.tools.modifiers.shields.modifierCrestofBlades; -import lance5057.tDefense.core.tools.modifiers.shields.modifierCrestofFeathers; -import lance5057.tDefense.core.tools.modifiers.shields.modifierCrestofLegends; -import lance5057.tDefense.core.tools.modifiers.shields.modifierCrestofMirrors; -import lance5057.tDefense.core.tools.modifiers.weapons.modifierDaze; -import lance5057.tDefense.core.tools.modifiers.weapons.modifierTorchArrow; +import lance5057.tDefense.core.tools.modifiers.Modifiers; import lance5057.tDefense.finishingAnvil.blocks.finishingAnvil.FinishingAnvil; import lance5057.tDefense.finishingAnvil.blocks.finishingAnvil.TileEntity_FinishingAnvil; import lance5057.tDefense.proxy.CommonProxy; @@ -42,8 +42,6 @@ import lance5057.tDefense.tileentities.TileEntity_JewelersBench; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemArmor.ArmorMaterial; import net.minecraft.item.ItemStack; @@ -58,7 +56,6 @@ import tconstruct.library.client.TConstructClientRegistry; import tconstruct.library.client.ToolGuiElement; import tconstruct.library.crafting.FluidType; import tconstruct.library.crafting.LiquidCasting; -import tconstruct.library.crafting.ModifyBuilder; import tconstruct.library.crafting.PatternBuilder; import tconstruct.library.crafting.Smeltery; import tconstruct.library.crafting.StencilBuilder; @@ -97,6 +94,7 @@ public class TinkersDefense { }; public static TDEventHandler TDevents; + public static ArmorRenderEvent AREvent; public static TD_Config config; @@ -105,6 +103,8 @@ public class TinkersDefense { public static Item tabIcon; + public static Modifiers mods; + public static Item item_AeonSteelIngot; public static Block block_AeonSteelBlock; @@ -129,22 +129,24 @@ public class TinkersDefense { public static ToolCore tool_sheath; public static ToolCore tool_mask; public static ToolCore tool_zweihander; + public static ToolCore tool_shears; public static Block block_CrestMount; public static Block block_ArmorAnvil; public static Block block_JewelersBench; - public static Item item_TinkerArmor; + public static ToolCore armor_TinkerHelm; + public static Item item_TinkerBreastplate; + public static Item item_TinkerGrieves; + public static Item item_TinkerSabatons; + public static Item item_ChainArmor; public static Item item_ClothArmor; - public static Item item_thread; public static Item item_glowthread; public static Item item_cloth; - public static Item item_relic; - public static Pattern woodPattern; public static Pattern metalPattern; @@ -162,8 +164,15 @@ public class TinkersDefense { @EventHandler public void preInit(FMLPreInitializationEvent e) { PacketHandler.init(); - //TDevents = new TDEventHandler(); + TDevents = new TDEventHandler(); + + AREvent = new ArmorRenderEvent(); + MinecraftForge.EVENT_BUS.register(AREvent); + config = new TD_Config(e); + mods = new Modifiers(); + + mods.init(); block_CrestMount = new CrestMount().setHardness(4.0F) @@ -202,11 +211,8 @@ public class TinkersDefense { tabIcon = new Item().setMaxStackSize(1).setCreativeTab(tabName).setUnlocalizedName("tabIcon").setTextureName(Reference.MOD_ID + ":Icon"); GameRegistry.registerItem(tabIcon, "tabIcon"); - item_relic = new Item().setCreativeTab(tabName).setMaxStackSize(1) - .setUnlocalizedName("AncientRelic") - .setTextureName(Reference.MOD_ID + ":AncientRelic"); - GameRegistry.registerItem(item_relic, "Ancient Relic"); + // AeonSteel item_AeonSteelIngot = new Item().setCreativeTab(tabName) @@ -299,27 +305,35 @@ public class TinkersDefense { tool_roundShield = new RoundShield(); tool_heaterShield = new HeaterShield(); + tool_shears = new Shears(); tool_wrench = new TinkerWrench(); tool_sheath = new Sheath(); tool_mask = new Mask(); tool_zweihander = new TinkerZweihander(0); - + + armor_TinkerHelm = new TinkersHelm(); + //Register Tools + GameRegistry.registerItem(tool_roundShield, "Round Shield"); GameRegistry.registerItem(tool_heaterShield, "Heater Shield"); + GameRegistry.registerItem(tool_shears, "Tinker Shears"); GameRegistry.registerItem(tool_wrench, "Tinker Wrench"); GameRegistry.registerItem(tool_sheath, "Sheath"); GameRegistry.registerItem(tool_mask, "Mask"); GameRegistry.registerItem(tool_zweihander, "Zweihander"); + GameRegistry.registerItem(armor_TinkerHelm,"tinkerhelm"); //Add Tools to TiCo directory TConstructRegistry.addItemToDirectory("Round Shield", tool_roundShield); TConstructRegistry.addItemToDirectory("Heater Shield", tool_heaterShield); + TConstructRegistry.addItemToDirectory("Tinker Shears", tool_shears); TConstructRegistry.addItemToDirectory("Tinker Wrench", tool_wrench); TConstructRegistry.addItemToDirectory("Sheath", tool_sheath); TConstructRegistry.addItemToDirectory("Mask", tool_mask); TConstructRegistry.addItemToDirectory("Zweihander", tool_zweihander); + TConstructRegistry.addItemToDirectory("tinkerhelm", armor_TinkerHelm); //Register Items GameRegistry.registerItem(item_thread = new Item_Thread(), "thread"); @@ -344,13 +358,17 @@ public class TinkersDefense { // Renderers proxy.registerRenderers(); - - item_TinkerArmor = new TinkerArmor(ArmorMaterial.IRON, 4, - 1).setUnlocalizedName("Tinker_Armor"); - GameRegistry.registerItem(item_TinkerArmor,"Tinker Armor"); + + item_TinkerBreastplate = new TinkersBreastplate(ArmorMaterial.IRON, 4, 1).setUnlocalizedName("Tinkers_Breastplate"); + GameRegistry.registerItem(item_TinkerBreastplate,"Tinkers Breastplate"); + + item_TinkerGrieves = new TinkersGrieves(ArmorMaterial.IRON, 4, 2).setUnlocalizedName("Tinkers_Grieves"); + GameRegistry.registerItem(item_TinkerGrieves,"Tinkers Grieves"); + + item_TinkerSabatons = new TinkersSabatons(ArmorMaterial.IRON, 4, 3).setUnlocalizedName("Tinkers_Sabatons"); + GameRegistry.registerItem(item_TinkerSabatons,"Tinkers Sabatons"); - item_ChainArmor = new ChainArmor(ArmorMaterial.IRON, 4, - 1).setUnlocalizedName("Chain_Armor"); + item_ChainArmor = new ChainArmor(ArmorMaterial.IRON, 4, 1).setUnlocalizedName("Chain_Armor"); GameRegistry.registerItem(item_ChainArmor,"Chain Armor"); item_ClothArmor = new ClothArmor(ArmorMaterial.IRON, 4, @@ -368,7 +386,7 @@ public class TinkersDefense { @EventHandler public void init(FMLInitializationEvent e) { - System.out.print(Reference.MOD_ID); + //System.out.print(Reference.MOD_ID); StencilBuilder.registerStencil(50, woodPattern, 0); // rivets StencilBuilder.registerStencil(51, woodPattern, 1); // clasp @@ -401,32 +419,7 @@ public class TinkersDefense { PatternBuilder pb = PatternBuilder.instance; - ModifyBuilder.registerModifier(new modifierDaze("Daze", config.DazeID, new ItemStack[] { new ItemStack(Blocks.light_weighted_pressure_plate), new ItemStack(Items.potionitem,1,8202)}, - new int[] {1,0})); - - //ModifyBuilder.registerModifier(new modifierTorchArrow(new ItemStack[] {new ItemStack(Blocks.glowstone)}, 12)); - - ModifyBuilder.registerModifier(new modifierCrestofFeathers("Crest of Feathers", config.CrestFeathersID, new ItemStack[] { new ItemStack(Items.feather)}, - new int[] {1})); - - ModifyBuilder.registerModifier(new modifierCrestofMirrors("Crest of Mirrors", config.CrestMirrorsID, new ItemStack[] { new ItemStack(Blocks.glass_pane)}, - new int[] {1})); - - ModifyBuilder.registerModifier(new modifierCrestofLegends("Crest of Legends", config.CrestLegendsID, new ItemStack[] { new ItemStack(item_relic)}, - new int[] {1})); - - ModifyBuilder.registerModifier(new modifierCrestofBlades("Crest of Blades", config.CrestBladesID, new ItemStack[] { new ItemStack(Items.iron_sword)},new int[] {1})); - - TConstructRegistry.registerActiveToolMod(new TDefenseActiveToolMod()); - - for (ToolCore tool : TConstructRegistry.getToolMapping()) - { - TConstructClientRegistry.addEffectRenderMapping(tool, config.DazeID, "tinker", "daze", true); - TConstructClientRegistry.addEffectRenderMapping(tool, config.CrestFeathersID, "tinker", "feathers", true); - TConstructClientRegistry.addEffectRenderMapping(tool, config.CrestMirrorsID, "tinker", "mirrors", true); - TConstructClientRegistry.addEffectRenderMapping(tool, config.CrestLegendsID, "tinker", "legends", true); - TConstructClientRegistry.addEffectRenderMapping(tool, config.CrestBladesID, "tinker", "blades", true); - } + TConstructClientRegistry.toolButtons @@ -599,6 +592,9 @@ public class TinkersDefense { TConstructRegistry.addToolRecipe(tool_wrench, TinkerTools.handGuard, TinkerTools.toolRod, TinkerTools.binding); + TConstructRegistry.addToolRecipe(tool_shears, TinkerTools.knifeBlade, + TinkerTools.binding, TinkerTools.knifeBlade); + //Zweihander TConstructRegistry.addToolRecipe(tool_zweihander, TinkerTools.largeSwordBlade, TinkerTools.toughRod, TinkerTools.wideGuard, TinkerTools.swordBlade); @@ -607,6 +603,8 @@ public class TinkersDefense { TConstructRegistry.addToolRecipe(tool_sheath, partArmorplate,TinkerTools.toolRod, partCloth, partClasp); TConstructRegistry.addToolRecipe(tool_mask, partArmorplate, partCloth, partClasp); + TConstructRegistry.addToolRecipe(armor_TinkerHelm, TinkerTools.frypanHead, TinkerTools.toughRod, partArmorplate); + tcInject = new Injector(0,TinkerTools.broadsword); GameRegistry.registerItem(tcInject, "debugger"); } diff --git a/src/main/java/lance5057/tDefense/armor/ArmorCore.java b/src/main/java/lance5057/tDefense/armor/ArmorCore.java new file mode 100644 index 0000000..f4f52d7 --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/ArmorCore.java @@ -0,0 +1,141 @@ +package lance5057.tDefense.armor; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +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.minecraft.util.ResourceLocation; +import net.minecraftforge.common.ISpecialArmor; +import tconstruct.library.accessory.IAccessoryModel; +import tconstruct.library.tools.ToolCore; + +public class ArmorCore extends ToolCore implements ISpecialArmor//, IAccessoryModel +{ + int slot; + public ModelBiped armorModel; + + public ArmorCore(int baseProtection, int slot) { + super(baseProtection); + + this.slot = slot; + } + + @Override + public ArmorProperties getProperties(EntityLivingBase player, + ItemStack armor, DamageSource source, double damage, int slot) + { + return new ArmorProperties(0, 10, 100); //TODO figure this out + } + + @Override + public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) + { + return 1; + } + + @Override + public boolean isValidArmor(ItemStack stack, int armorType, Entity entity) + { + return armorType == slot; + } + + @Override + public void damageArmor(EntityLivingBase entity, ItemStack stack, + DamageSource source, int damage, int slot) { + if (stack.hasTagCompound()) + { + NBTTagCompound tags = stack.getTagCompound().getCompoundTag(getBaseTagName()); + if (!tags.getBoolean("Broken")) + { + int maxDurability = tags.getInteger("TotalDurability"); + int currentDurability = tags.getInteger("Damage"); + if (currentDurability + damage > maxDurability) + { + tags.setInteger("Damage", 0); + tags.setBoolean("Broken", true); + stack.setItemDamage(0); + entity.worldObj.playSound(entity.posX, entity.posY, entity.posZ, "random.break", 1f, 1f, true); + } + else + { + tags.setInteger("Damage", currentDurability + damage); + stack.setItemDamage(currentDurability + damage); + } + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getArmorModel(EntityLivingBase entityLiving, + ItemStack itemStack, int armorSlot) + { + if (itemStack != null) { + + if (armorModel != null) { + armorModel.isSneak = entityLiving.isSneaking(); + armorModel.isRiding = entityLiving.isRiding(); + armorModel.isChild = entityLiving.isChild(); + armorModel.heldItemRight = entityLiving.getHeldItem() != null ? 1 + : 0; + + if (entityLiving instanceof EntityPlayer) { + armorModel.aimedBow = ((EntityPlayer) entityLiving) + .getItemInUseDuration() > 2; + } + return armorModel; + } + } + return armorModel; + //this.armor + } + + @Override + public Item getAccessoryItem() + { + return null; + } + + @Override + public String getDefaultFolder() + { + return null; + } + + @Override + public String getEffectSuffix() + { + return null; + } + + @Override + public Item getHeadItem() + { + return null; + } + + @Override + public String getIconSuffix(int arg0) + { + return null; + } + + @Override + public String[] getTraits() { + return new String[] {"armor"}; + } + +// @Override +// public ResourceLocation getWearbleTexture(Entity arg0, ItemStack arg1, +// int arg2) { +// // TODO Auto-generated method stub +// return null; +// } + +} diff --git a/src/main/java/lance5057/tDefense/armor/events/ArmorRenderEvent.java b/src/main/java/lance5057/tDefense/armor/events/ArmorRenderEvent.java new file mode 100644 index 0000000..e76325d --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/events/ArmorRenderEvent.java @@ -0,0 +1,33 @@ +package lance5057.tDefense.armor.events; + +import lance5057.tDefense.armor.ArmorCore; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.event.RenderPlayerEvent; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class ArmorRenderEvent +{ + + @SubscribeEvent + public void renderArmorEvent(RenderPlayerEvent.Specials.Post event) { + if (event.entityPlayer != null) + { + for(int i = 0; i < 4 ; i++) + { + if(event.entityPlayer.inventory.armorItemInSlot(i) != null) + { + ItemStack Armor = event.entityPlayer.inventory.armorItemInSlot(i); + + if(Armor.getItem() instanceof ArmorCore) + { + ArmorCore AArmor = ((ArmorCore)Armor.getItem()); + + AArmor.armorModel.render(event.entityPlayer, event.entityPlayer.limbSwing, event.entityPlayer.limbSwingAmount,event.entityPlayer.ticksExisted , event.entityPlayer.rotationYaw - event.entityPlayer.renderYawOffset, event.entityPlayer.rotationPitch, 0.0625f); + } + } + } + } + } + +} diff --git a/src/main/java/lance5057/tDefense/armor/items/TinkerArmor.java b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersBreastplate.java index 964d8ca..c5bde60 100644 --- a/src/main/java/lance5057/tDefense/armor/items/TinkerArmor.java +++ b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersBreastplate.java @@ -1,6 +1,6 @@ -package lance5057.tDefense.armor.items; +package lance5057.tDefense.armor.items.heavy; -import lance5057.tDefense.proxy.ClientProxy; +import lance5057.tDefense.armor.renderers.heavy.ModelTinkersBreastplate; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; @@ -11,22 +11,22 @@ import net.minecraft.item.ItemStack; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -public class TinkerArmor extends ItemArmor { - public TinkerArmor(ArmorMaterial par2EnumArmorMaterial, int par3, int par4) { +public class TinkersBreastplate extends ItemArmor { + public TinkersBreastplate(ArmorMaterial par2EnumArmorMaterial, int par3, int par4) { super(par2EnumArmorMaterial, par3, par4); } @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister par1IconRegister) { - String itemName = "tinkersdefense:textures/armor/TinkerArmor"; + String itemName = "tinkersdefense:textures/armor/TinkersBreastPlate"; this.itemIcon = par1IconRegister.registerIcon(itemName); } @Override public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) { - return "tinkersdefense:textures/armor/TinkerArmor.png"; + return "tinkersdefense:textures/armor/TinkersBreastPlate.png"; } @Override @@ -34,30 +34,10 @@ public class TinkerArmor extends ItemArmor { public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { - -// return ClientProxy.chain; - ModelBiped armorModel = ClientProxy.mask; + ModelBiped armorModel = new ModelTinkersBreastplate(); if (itemStack != null) { -// if (itemStack.getItem() instanceof TinkerArmor) { -// int type = ((ItemArmor) itemStack.getItem()).armorType; -// if (type == 1 || type == 3) { -// armorModel = TinkersDefense.proxy.getArmorModel(0); -// } else { -// armorModel = TinkersDefense.proxy.getArmorModel(1); -// } -// -// } + if (armorModel != null) { -// armorModel.bipedHead.showModel = armorSlot == 0; -// armorModel.bipedHeadwear.showModel = armorSlot == 0; -// armorModel.bipedBody.showModel = armorSlot == 1 -// || armorSlot == 2; -// armorModel.bipedRightArm.showModel = armorSlot == 1; -// armorModel.bipedLeftArm.showModel = armorSlot == 1; -// armorModel.bipedRightLeg.showModel = armorSlot == 2 -// || armorSlot == 3; -// armorModel.bipedLeftLeg.showModel = armorSlot == 2 -// || armorSlot == 3; armorModel.isSneak = entityLiving.isSneaking(); armorModel.isRiding = entityLiving.isRiding(); armorModel.isChild = entityLiving.isChild(); diff --git a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersGrieves.java b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersGrieves.java new file mode 100644 index 0000000..d0fd9f8 --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersGrieves.java @@ -0,0 +1,57 @@ +package lance5057.tDefense.armor.items.heavy; + +import lance5057.tDefense.armor.renderers.heavy.ModelTinkersGrieves; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemArmor; +import net.minecraft.item.ItemStack; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class TinkersGrieves extends ItemArmor { + public TinkersGrieves(ArmorMaterial par2EnumArmorMaterial, int par3, int par4) { + super(par2EnumArmorMaterial, par3, par4); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister par1IconRegister) { + String itemName = "tinkersdefense:textures/armor/TinkersGrieves"; + this.itemIcon = par1IconRegister.registerIcon(itemName); + } + + @Override + public String getArmorTexture(ItemStack stack, Entity entity, int slot, + String type) { + return "tinkersdefense:textures/armor/TinkersGrieves.png"; + } + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getArmorModel(EntityLivingBase entityLiving, + ItemStack itemStack, int armorSlot) + { + ModelBiped armorModel = new ModelTinkersGrieves(); + if (itemStack != null) { + + if (armorModel != null) { + armorModel.isSneak = entityLiving.isSneaking(); + armorModel.isRiding = entityLiving.isRiding(); + armorModel.isChild = entityLiving.isChild(); + armorModel.heldItemRight = entityLiving.getHeldItem() != null ? 1 + : 0; + + if (entityLiving instanceof EntityPlayer) { + armorModel.aimedBow = ((EntityPlayer) entityLiving) + .getItemInUseDuration() > 2; + } + return armorModel; + } + } + return armorModel; + } + +}
\ No newline at end of file diff --git a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java new file mode 100644 index 0000000..6217bfd --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java @@ -0,0 +1,118 @@ +package lance5057.tDefense.armor.items.heavy; + +import tconstruct.library.tools.ToolCore; +import tconstruct.tools.TinkerTools; +import lance5057.tDefense.TinkersDefense; +import lance5057.tDefense.armor.ArmorCore; +import lance5057.tDefense.armor.renderers.heavy.ModelTinkersHelm; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.renderer.texture.IIconRegister; +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.ItemArmor; +import net.minecraft.item.ItemArmor.ArmorMaterial; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class TinkersHelm extends ArmorCore +{ + public TinkersHelm() { + super(0,0); + this.setUnlocalizedName("tinkershelm"); + armorModel = new ModelTinkersHelm(); + } + + @Override + public Item getHeadItem() + { + return TinkerTools.frypanHead; + } + + @Override + public Item getHandleItem() { + return TinkerTools.toughRod; + } + + @Override + public Item getAccessoryItem() + { + return TinkersDefense.partArmorplate; + } + + @Override + public int durabilityTypeAccessory() { + return 2; + } + + @Override + public float getRepairCost() { + return 4.0f; + } + + @Override + public float getDurabilityModifier() { + return 2.5f; + } + + @Override + public float getDamageModifier() { + return 1.4f; + } + + @Override + public int getPartAmount() { + return 3; + } + + @Override + public String getIconSuffix(int partType) + { + switch (partType) { + case 0: + return "_helm_top"; + case 1: + return "_helm_top_broken"; + case 2: + return "_helm_visor"; + case 3: + return "_helm_plates"; + default: + return ""; + } + } + + @Override + public String getEffectSuffix() + { + return "_helm_effect"; + } + + @Override + public String getDefaultFolder() + { + return "armor/helm"; + } + +// @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/TinkersHelm.png"; + } + + @Override + public String[] getTraits() { + return new String[] {"armor","helmet","helm","heavyarmor"}; + } + +} diff --git a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersSabatons.java b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersSabatons.java new file mode 100644 index 0000000..38078af --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersSabatons.java @@ -0,0 +1,57 @@ +package lance5057.tDefense.armor.items.heavy; + +import lance5057.tDefense.armor.renderers.heavy.ModelTinkersSabatons; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemArmor; +import net.minecraft.item.ItemStack; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class TinkersSabatons extends ItemArmor { + public TinkersSabatons(ArmorMaterial par2EnumArmorMaterial, int par3, int par4) { + super(par2EnumArmorMaterial, par3, par4); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister par1IconRegister) { + String itemName = "tinkersdefense:textures/armor/TinkersSabatons"; + this.itemIcon = par1IconRegister.registerIcon(itemName); + } + + @Override + public String getArmorTexture(ItemStack stack, Entity entity, int slot, + String type) { + return "tinkersdefense:textures/armor/TinkersSabatons.png"; + } + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getArmorModel(EntityLivingBase entityLiving, + ItemStack itemStack, int armorSlot) + { + ModelBiped armorModel = new ModelTinkersSabatons(); + if (itemStack != null) { + + if (armorModel != null) { + armorModel.isSneak = entityLiving.isSneaking(); + armorModel.isRiding = entityLiving.isRiding(); + armorModel.isChild = entityLiving.isChild(); + armorModel.heldItemRight = entityLiving.getHeldItem() != null ? 1 + : 0; + + if (entityLiving instanceof EntityPlayer) { + armorModel.aimedBow = ((EntityPlayer) entityLiving) + .getItemInUseDuration() > 2; + } + return armorModel; + } + } + return armorModel; + } + +}
\ No newline at end of file diff --git a/src/main/java/lance5057/tDefense/armor/renderers/ModelTinkerArmor.java b/src/main/java/lance5057/tDefense/armor/renderers/ModelTinkerArmor.java deleted file mode 100644 index d8d17d1..0000000 --- a/src/main/java/lance5057/tDefense/armor/renderers/ModelTinkerArmor.java +++ /dev/null @@ -1,109 +0,0 @@ -// Date: 1/19/2015 11:08:25 PM -// Template version 1.1 -// Java generated by Techne -// Keep in mind that you still need to fill in some blanks -// - ZeuX - -package lance5057.tDefense.armor.renderers; - -import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelTinkerArmor extends ModelBiped -{ - //fields - ModelRenderer BackPlate; - ModelRenderer BreastPlate; - ModelRenderer Plackart; - ModelRenderer PauldronL; - ModelRenderer ArmL; - ModelRenderer PauldronR; - ModelRenderer ArmR; - - public ModelTinkerArmor(float f) - { - super(f, 0, 64,64); - textureWidth = 64; - textureHeight = 64; - - BackPlate = new ModelRenderer(this, 0, 56); - BackPlate.addBox(-4F, 0F, 1F, 8, 5, 3); - BackPlate.setRotationPoint(0F, 0F, 0F); - BackPlate.setTextureSize(64, 32); - BackPlate.mirror = true; - setRotation(BackPlate, -0.0872665F, 0F, 0F); - this.bipedBody.addChild(BackPlate); - - BreastPlate = new ModelRenderer(this, 0, 32); - BreastPlate.addBox(-4F, -1F, -5F, 8, 6, 4); - BreastPlate.setRotationPoint(0F, 0F, 0F); - BreastPlate.setTextureSize(64, 32); - BreastPlate.mirror = true; - setRotation(BreastPlate, 0.4363323F, 0F, 0F); - this.bipedBody.addChild(BreastPlate); - - Plackart = new ModelRenderer(this, 0, 42); - Plackart.addBox(-4F, 5F, -3F, 8, 7, 6); - Plackart.setRotationPoint(0F, 0F, 0F); - Plackart.setTextureSize(64, 32); - Plackart.mirror = true; - setRotation(Plackart, 0F, 0F, 0F); - this.bipedBody.addChild(Plackart); - - PauldronL = new ModelRenderer(this, 28, 32); - PauldronL.addBox(1F, -2F, -3.5F, 5, 5, 7); - PauldronL.setRotationPoint(0F, 0F, 0F); - PauldronL.setTextureSize(64, 32); - PauldronL.mirror = true; - setRotation(PauldronL, 0F, 0F, -0.7853982F); - this.bipedLeftArm.addChild(PauldronL); - - ArmL = new ModelRenderer(this, 28, 44); - ArmL.addBox(-1F, -2F, -3F, 5, 10, 6); - ArmL.setRotationPoint(0F, 0F, 0F); - ArmL.setTextureSize(64, 32); - ArmL.mirror = true; - setRotation(ArmL, 0F, 0F, 0F); - this.bipedLeftArm.addChild(ArmL); - - PauldronR = new ModelRenderer(this, 28, 32); - PauldronR.mirror = true; - PauldronR.addBox(-6F, -2F, -3.5F, 5, 5, 7); - PauldronR.setRotationPoint(0F, 0F, 0F); - PauldronR.setTextureSize(64, 32); - PauldronR.mirror = true; - setRotation(PauldronR, 0F, 0F, 0.7853982F); - PauldronR.mirror = false; - this.bipedRightArm.addChild(PauldronR); - - ArmR = new ModelRenderer(this, 28, 44); - ArmR.mirror = true; - ArmR.addBox(-4F, -2F, -3F, 5, 10, 6); - ArmR.setRotationPoint(0F, 0F, 0F); - ArmR.setTextureSize(64, 32); - ArmR.mirror = true; - setRotation(ArmR, 0F, 0F, 0F); - ArmR.mirror = false; - this.bipedRightArm.addChild(ArmR); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersBreastplate.java b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersBreastplate.java new file mode 100644 index 0000000..519a56f --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersBreastplate.java @@ -0,0 +1,103 @@ +package lance5057.tDefense.armor.renderers.heavy; + +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +/** + * ModelBiped - Either Mojang or a mod author + * Created using Tabula 4.1.1 + */ +public class ModelTinkersBreastplate extends ModelBiped +{ + public ModelRenderer BackPlate; + public ModelRenderer BreastPlate; + public ModelRenderer Plackart; + public ModelRenderer PauldronR; + public ModelRenderer ArmGuardR; + public ModelRenderer PauldronL; + public ModelRenderer ArmGuardL; + public ModelRenderer ArmL; + public ModelRenderer ArmR; + public ModelRenderer BreastPlateFront; + + public ModelTinkersBreastplate() + { + super(1.1f, 0, 64,64); + + this.textureWidth = 64; + this.textureHeight = 64; + + this.BreastPlate = new ModelRenderer(this, 0, 32); + this.BreastPlate.setRotationPoint(0.0F, 0.0F, 0.0F); + this.BreastPlate.addBox(-4.0F, 0.1F, -3.6F, 8, 6, 4, 0.1F); + this.bipedBody.addChild(this.BreastPlate); + + this.BreastPlateFront = new ModelRenderer(this, 22, 56); + this.BreastPlateFront.setRotationPoint(0.0F, 0.0F, 0.0F); + this.BreastPlateFront.addBox(-3.0F, 0.5F, -4.2F, 6, 4, 4, 0.1F); + this.bipedBody.addChild(this.BreastPlateFront); + + this.Plackart = new ModelRenderer(this, 0, 42); + this.Plackart.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Plackart.addBox(-4.0F, 5.0F, -3.0F, 8, 7, 6, 0.0F); + this.bipedBody.addChild(this.Plackart); + + this.ArmGuardR = new ModelRenderer(this, 28, 44); + this.ArmGuardR.mirror = true; + this.ArmGuardR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ArmGuardR.addBox(-4.0F, -2.1F, -3.0F, 5, 6, 6, 0.0F); + this.bipedRightArm.addChild(this.ArmGuardR); + + this.ArmGuardL = new ModelRenderer(this, 28, 44); + this.ArmGuardL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ArmGuardL.addBox(-1.0F, -2.1F, -3.0F, 5, 6, 6, 0.0F); + this.bipedLeftArm.addChild(this.ArmGuardL); + + this.PauldronR = new ModelRenderer(this, 24, 32); + this.PauldronR.mirror = true; + this.PauldronR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.PauldronR.addBox(-4.6F, -2.0F, -3.5F, 4, 5, 7, 0.0F); + this.setRotateAngle(PauldronR, 0.0F, -0.0F, 0.4363323129985824F); + this.bipedRightArm.addChild(this.PauldronR); + + this.ArmL = new ModelRenderer(this, 48, 34); + 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.0F); + this.setRotateAngle(ArmL, 0.0F, 0.0F, 0.0017453292519943296F); + this.bipedLeftArm.addChild(this.ArmL); + + this.ArmR = new ModelRenderer(this, 48, 34); + this.ArmR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ArmR.addBox(-3.0F, -2.0F, -2.0F, 4, 12, 4, 0.0F); + this.bipedRightArm.addChild(this.ArmR); + + this.BackPlate = new ModelRenderer(this, 0, 56); + this.BackPlate.setRotationPoint(0.0F, 0.0F, 0.0F); + this.BackPlate.addBox(-4.0F, 0.0F, 1.0F, 8, 5, 3, 0.0F); + this.setRotateAngle(BackPlate, -0.08726646006107329F, -0.0F, 0.0F); + this.bipedBody.addChild(this.BackPlate); + + this.PauldronL = new ModelRenderer(this, 24, 32); + this.PauldronL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.PauldronL.addBox(0.5F, -2.0F, -3.5F, 4, 5, 7, 0.0F); + this.setRotateAngle(PauldronL, 0.0F, -0.0F, -0.4363323129985824F); + this.bipedLeftArm.addChild(this.PauldronL); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + } + + /** + * 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/heavy/ModelTinkersGrieves.java b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersGrieves.java new file mode 100644 index 0000000..99ee68b --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersGrieves.java @@ -0,0 +1,90 @@ +package lance5057.tDefense.armor.renderers.heavy; + +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +/** + * TinkersGrieves - Either Mojang or a mod author + * Created using Tabula 4.1.1 + */ +public class ModelTinkersGrieves extends ModelBiped { + public ModelRenderer LegPlateL; + public ModelRenderer CodPiece; + public ModelRenderer LegPlateBackL; + public ModelRenderer LegPlateBackR; + public ModelRenderer LegPlateR; + public ModelRenderer Belt; + public ModelRenderer LeftLeg; + public ModelRenderer RightLeg; + + public ModelTinkersGrieves() + { + super(1.0f, 0, 64,64); + + this.textureWidth = 64; + this.textureHeight = 64; + + this.LegPlateBackL = new ModelRenderer(this, 0, 43); + this.LegPlateBackL.mirror = true; + this.LegPlateBackL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.LegPlateBackL.addBox(-2.0F, 0.0F, 1.2F, 4, 5, 1, 0.1F); + this.setRotateAngle(LegPlateBackL, 0.2617993877991494F, 0.0F, 0.0F); + this.bipedLeftLeg.addChild(this.LegPlateBackL); + + this.LegPlateR = new ModelRenderer(this, 0, 32); + this.LegPlateR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.LegPlateR.addBox(1.1F, 0.0F, -1.9F, 1, 5, 4, 0.1F); + this.setRotateAngle(LegPlateR, 0.0F, 3.141592653589793F, 0.2617993877991494F); + this.bipedRightLeg.addChild(this.LegPlateR); + + this.LeftLeg = new ModelRenderer(this, 32, 32); + this.LeftLeg.mirror = true; + this.LeftLeg.setRotationPoint(0.0F, 0.0F, 0.0F); + this.LeftLeg.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, 0.0F); + this.bipedLeftLeg.addChild(this.LeftLeg); + + this.LegPlateL = new ModelRenderer(this, 0, 32); + this.LegPlateL.mirror = true; + this.LegPlateL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.LegPlateL.addBox(1.1F, 0.0F, -2.1F, 1, 5, 4, 0.1F); + this.setRotateAngle(LegPlateL, 0.0F, 0.0F, -0.2617993877991494F); + this.bipedLeftLeg.addChild(this.LegPlateL); + + this.CodPiece = new ModelRenderer(this, 0, 50); + this.CodPiece.setRotationPoint(0.0F, 0.0F, 0.0F); + this.CodPiece.addBox(-2.0F, 10.0F, -2.8F, 4, 4, 3, -0.4F); + this.bipedBody.addChild(this.CodPiece); + + this.LegPlateBackR = new ModelRenderer(this, 0, 43); + this.LegPlateBackR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.LegPlateBackR.addBox(-2.0F, 0.0F, 1.2F, 4, 5, 1, 0.1F); + this.setRotateAngle(LegPlateBackR, 0.2617993877991494F, 0.0F, 0.0F); + this.bipedRightLeg.addChild(this.LegPlateBackR); + + this.RightLeg = new ModelRenderer(this, 32, 32); + this.RightLeg.setRotationPoint(0.0F, 0.0F, 0.0F); + this.RightLeg.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, 0.0F); + this.bipedRightLeg.addChild(this.RightLeg); + + this.Belt = new ModelRenderer(this, 0, 57); + this.Belt.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Belt.addBox(-4.5F, 10.0F, -2.5F, 9, 2, 5, 0.0F); + this.bipedBody.addChild(this.Belt); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + } + + /** + * 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/heavy/ModelTinkersHelm.java b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersHelm.java new file mode 100644 index 0000000..796489e --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersHelm.java @@ -0,0 +1,66 @@ +package lance5057.tDefense.armor.renderers.heavy; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.FMLClientHandler; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +/** + * TinkerHelm - Either Mojang or a mod author + * Created using Tabula 4.1.1 + */ +public class ModelTinkersHelm extends ModelBiped +{ + public ModelRenderer Visor; + public ModelRenderer Helm; + public ModelRenderer Trim; + + public ModelTinkersHelm() + { + super(1f, 0, 64,64); + + this.textureWidth = 64; + this.textureHeight = 64; + this.Helm = new ModelRenderer(this, 0, 47); + this.Helm.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Helm.addBox(-4.0F, -8.0F, -4.0F, 8, 9, 8, 0.5F); + this.bipedHead.addChild(this.Helm); + + this.Visor = new ModelRenderer(this, 0, 32); + this.Visor.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Visor.addBox(-4.5F, -6.5F, -4.7F, 9, 5, 8, 0.1F); + this.bipedHead.addChild(this.Visor); + + this.Trim = new ModelRenderer(this, 44, 47); + this.Trim.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Trim.addBox(-1.0F, -8.3F, -4.0F, 2, 9, 8, 0.7F); + this.bipedHead.addChild(this.Trim); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glPushMatrix(); + + GL11.glTranslatef(0f, -1f, 0f); + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation("tinkersdefense:textures/armor/TinkersHelm.png")); + + super.render(entity, f, f1, f2, f3, f4, f5); + GL11.glPopMatrix(); + + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + } + + /** + * 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/heavy/ModelTinkersSabatons.java b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersSabatons.java new file mode 100644 index 0000000..572f4cb --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersSabatons.java @@ -0,0 +1,120 @@ +package lance5057.tDefense.armor.renderers.heavy; + +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +/** + * ModelBiped - Either Mojang or a mod author + * Created using Tabula 4.1.1 + */ +public class ModelTinkersSabatons extends ModelBiped +{ + public ModelRenderer BootL; + public ModelRenderer KneeGuardR; + public ModelRenderer ShinGuardL; + public ModelRenderer KneeGuardCapL; + public ModelRenderer LegBackL; + public ModelRenderer BootR; + public ModelRenderer ShinGuardR; + public ModelRenderer BootCapR; + public ModelRenderer BootCapL; + public ModelRenderer LegBackR; + public ModelRenderer KneeGuardL; + public ModelRenderer KneeGuardCapR; + + public ModelTinkersSabatons() + { + super(1f, 0, 64,64); + + this.textureWidth = 64; + this.textureHeight = 64; + + this.ShinGuardL = new ModelRenderer(this, 0, 48); + this.ShinGuardL.mirror = true; + this.ShinGuardL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ShinGuardL.addBox(-2.0F, 4.0F, -2.6F, 4, 5, 3, 0.11F); + this.setRotateAngle(ShinGuardL, 0.05759586531581287F, 0.0F, 0.0F); + this.bipedLeftLeg.addChild(this.ShinGuardL); + + this.KneeGuardL = new ModelRenderer(this, 6, 32); + this.KneeGuardL.mirror = true; + this.KneeGuardL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.KneeGuardL.addBox(-2.0F, 3.0F, -2.5F, 4, 3, 4, 0.2F); + this.bipedLeftLeg.addChild(this.KneeGuardL); + + this.BootL = new ModelRenderer(this, 0, 56); + this.BootL.mirror = true; + this.BootL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.BootL.addBox(-2.0F, 9.0F, -3.0F, 4, 3, 5, 0.2F); + this.bipedLeftLeg.addChild(this.BootL); + + this.KneeGuardCapL = new ModelRenderer(this, 0, 37); + this.KneeGuardCapL.mirror = true; + this.KneeGuardCapL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.KneeGuardCapL.addBox(-1.0F, 2.4F, -3.0F, 2, 2, 1, 0.2F); + this.bipedLeftLeg.addChild(this.KneeGuardCapL); + + this.KneeGuardR = new ModelRenderer(this, 6, 32); + this.KneeGuardR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.KneeGuardR.addBox(-2.0F, 3.0F, -2.5F, 4, 3, 4, 0.2F); + this.bipedRightLeg.addChild(this.KneeGuardR); + + this.LegBackL = new ModelRenderer(this, 0, 40); + this.LegBackL.mirror = true; + this.LegBackL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.LegBackL.addBox(-2.0F, 3.0F, -2.6F, 4, 6, 2, 0.1F); + this.setRotateAngle(LegBackL, 0.05759586531581287F, 3.141592653589793F, 0.0F); + this.bipedLeftLeg.addChild(this.LegBackL); + + this.BootCapL = new ModelRenderer(this, 0, 33); + this.BootCapL.mirror = true; + this.BootCapL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.BootCapL.addBox(-1.0F, 9.1F, -5.2F, 2, 2, 1, 0.2F); + this.setRotateAngle(BootCapL, 0.17453292519943295F, 0.0F, 0.0F); + this.bipedLeftLeg.addChild(this.BootCapL); + + this.KneeGuardCapR = new ModelRenderer(this, 0, 37); + this.KneeGuardCapR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.KneeGuardCapR.addBox(-1.0F, 2.4F, -3.0F, 2, 2, 1, 0.2F); + this.bipedRightLeg.addChild(this.KneeGuardCapR); + + this.BootR = new ModelRenderer(this, 0, 56); + this.BootR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.BootR.addBox(-2.0F, 9.0F, -3.0F, 4, 3, 5, 0.2F); + this.bipedRightLeg.addChild(this.BootR); + + this.ShinGuardR = new ModelRenderer(this, 0, 48); + this.ShinGuardR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ShinGuardR.addBox(-2.0F, 4.0F, -2.6F, 4, 5, 3, 0.11F); + this.setRotateAngle(ShinGuardR, 0.05759586531581287F, 0.0F, 0.0F); + this.bipedRightLeg.addChild(this.ShinGuardR); + + this.LegBackR = new ModelRenderer(this, 0, 40); + this.LegBackR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.LegBackR.addBox(-2.0F, 3.0F, -2.6F, 4, 6, 2, 0.1F); + this.setRotateAngle(LegBackR, 0.05759586531581287F, 3.141592653589793F, 0.0F); + this.bipedRightLeg.addChild(this.LegBackR); + + this.BootCapR = new ModelRenderer(this, 0, 33); + this.BootCapR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.BootCapR.addBox(-1.0F, 9.1F, -5.2F, 2, 2, 1, 0.2F); + this.setRotateAngle(BootCapR, 0.17453292519943295F, 0.0F, 0.0F); + this.bipedRightLeg.addChild(this.BootCapR); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + } + + /** + * 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/core/tools/Shears.java b/src/main/java/lance5057/tDefense/core/tools/Shears.java new file mode 100644 index 0000000..bade000 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/Shears.java @@ -0,0 +1,169 @@ +package lance5057.tDefense.core.tools; + +import java.util.ArrayList; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.World; +import net.minecraftforge.common.IShearable; +import tconstruct.library.tools.ToolCore; +import tconstruct.tools.TinkerTools; + +public class Shears extends ToolCore +{ + + public Shears() { + super(0); + } + + @Override + public String getDefaultFolder() { + return "shears"; + } + + @Override + public String getEffectSuffix() { + return "_shears_effect"; + } + + @Override + public int getPartAmount() { + return 3; + } + + @Override + public Item getHeadItem() { + return TinkerTools.knifeBlade; + } + + @Override + public Item getAccessoryItem() { + return TinkerTools.knifeBlade; + } + + @Override + public Item getHandleItem() { + return TinkerTools.binding; + } + + @Override + public String getIconSuffix(int partType) { + switch (partType) { + case 0: + return "_shears_top"; + case 1: + return "_shears_top_broken"; + case 2: + return "_shears_binding"; + case 3: + return "_shears_bottom"; + default: + return ""; + } + } + + @Override + public String[] getTraits() { + return new String[] { "shears"}; + } + + public boolean onBlockDestroyed(ItemStack p_150894_1_, World p_150894_2_, Block p_150894_3_, int p_150894_4_, int p_150894_5_, int p_150894_6_, EntityLivingBase p_150894_7_) + { + if (p_150894_3_.getMaterial() != Material.leaves && p_150894_3_ != Blocks.web && p_150894_3_ != Blocks.tallgrass && p_150894_3_ != Blocks.vine && p_150894_3_ != Blocks.tripwire && !(p_150894_3_ instanceof IShearable)) + { + return super.onBlockDestroyed(p_150894_1_, p_150894_2_, p_150894_3_, p_150894_4_, p_150894_5_, p_150894_6_, p_150894_7_); + } + else + { + return true; + } + } + + public boolean func_150897_b(Block p_150897_1_) + { + return p_150897_1_ == Blocks.web || p_150897_1_ == Blocks.redstone_wire || p_150897_1_ == Blocks.tripwire; + } + + public float func_150893_a(ItemStack p_150893_1_, Block p_150893_2_) + { + return p_150893_2_ != Blocks.web && p_150893_2_.getMaterial() != Material.leaves ? (p_150893_2_ == Blocks.wool ? 5.0F : super.func_150893_a(p_150893_1_, p_150893_2_)) : 15.0F; + } + + /** + * Returns true if the item can be used on the given entity, e.g. shears on sheep. + */ + @Override + public boolean itemInteractionForEntity(ItemStack itemstack, EntityPlayer player, EntityLivingBase entity) + { + if (entity.worldObj.isRemote) + { + return false; + } + if (entity instanceof IShearable) + { + IShearable target = (IShearable)entity; + if (target.isShearable(itemstack, entity.worldObj, (int)entity.posX, (int)entity.posY, (int)entity.posZ)) + { + ArrayList<ItemStack> drops = target.onSheared(itemstack, entity.worldObj, (int)entity.posX, (int)entity.posY, (int)entity.posZ, + EnchantmentHelper.getEnchantmentLevel(Enchantment.fortune.effectId, itemstack)); + + Random rand = new Random(); + for(ItemStack stack : drops) + { + EntityItem ent = entity.entityDropItem(stack, 1.0F); + ent.motionY += rand.nextFloat() * 0.05F; + ent.motionX += (rand.nextFloat() - rand.nextFloat()) * 0.1F; + ent.motionZ += (rand.nextFloat() - rand.nextFloat()) * 0.1F; + } + itemstack.damageItem(1, entity); + } + return true; + } + return false; + } + + @Override + public boolean onBlockStartBreak(ItemStack itemstack, int x, int y, int z, EntityPlayer player) + { + if (player.worldObj.isRemote) + { + return false; + } + Block block = player.worldObj.getBlock(x, y, z); + if (block instanceof IShearable) + { + IShearable target = (IShearable)block; + if (target.isShearable(itemstack, player.worldObj, x, y, z)) + { + ArrayList<ItemStack> drops = target.onSheared(itemstack, player.worldObj, x, y, z, + EnchantmentHelper.getEnchantmentLevel(Enchantment.fortune.effectId, itemstack)); + Random rand = new Random(); + + for(ItemStack stack : drops) + { + float f = 0.7F; + double d = (double)(rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D; + double d1 = (double)(rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D; + double d2 = (double)(rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D; + EntityItem entityitem = new EntityItem(player.worldObj, (double)x + d, (double)y + d1, (double)z + d2, stack); + entityitem.delayBeforeCanPickup = 10; + player.worldObj.spawnEntityInWorld(entityitem); + } + + itemstack.damageItem(1, player); + player.addStat(StatList.mineBlockStatArray[Block.getIdFromBlock(block)], 1); + } + } + return false; + } +} diff --git a/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/BotaniaToolMods.java b/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/BotaniaToolMods.java new file mode 100644 index 0000000..0ce9eb2 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/BotaniaToolMods.java @@ -0,0 +1,54 @@ +package lance5057.tDefense.core.tools.modifiers.ActiveToolMods; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.World; +import tconstruct.library.TConstructRegistry; +import tconstruct.library.tools.ToolCore; +import vazkii.botania.common.entity.EntityManaBurst; +import vazkii.botania.common.item.ModItems; +import vazkii.botania.common.item.equipment.tool.ToolCommons; +import vazkii.botania.common.item.equipment.tool.terrasteel.ItemTerraSword; +import cpw.mods.fml.common.Optional; + +@Optional.InterfaceList({ + @Optional.Interface(modid = "botania", iface = "vazkii.botania.common.entity.EntityManaBurst"), + @Optional.Interface(modid = "botania", iface = "vazkii.botania.common.item.ModItems"), + @Optional.Interface(modid = "botania", iface = "vazkii.botania.common.item.equipment.tool.ToolCommons"), + @Optional.Interface(modid = "botania", iface = "vazkii.botania.common.item.equipment.tool.terrasteel.ItemTerraSword"), +}) + +public class BotaniaToolMods { + public void UpdateAll(ToolCore tool, ItemStack stack, World world, Entity entity, NBTTagCompound tags) + { + UpdateTerraCore(tool, stack, world, entity, tags); + } + + public void UpdateTerraCore(ToolCore tool, ItemStack stack, World world, Entity entity, NBTTagCompound tags) + { + if(entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) entity; + PotionEffect haste = player.getActivePotionEffect(Potion.digSpeed); + float check = haste == null ? 0.16666667F : haste.getAmplifier() == 1 ? 0.5F : 0.4F; + + if(player.getCurrentEquippedItem() == stack && player.swingProgress == check && !world.isRemote && world.rand.nextInt(2) == 0) + { + int color = TConstructRegistry.getMaterial(tags.getInteger("Head")).primaryColor(); + EntityManaBurst burst = ((ItemTerraSword)ModItems.terraSword).getBurst(player, new ItemStack(ModItems.terraSword)); + burst.setColor(color); + world.spawnEntityInWorld(burst); + ToolCommonSoundAtEntity(player, "botania:terraBlade", 0.4F, 1.4F); + } + } + } + + private void ToolCommonSoundAtEntity(EntityPlayer player, String string, + float f, float g) { + // TODO Auto-generated method stub + + } +} diff --git a/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TDefenseActiveToolMod.java b/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TDefenseActiveToolMod.java new file mode 100644 index 0000000..91b76a7 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TDefenseActiveToolMod.java @@ -0,0 +1,72 @@ +package lance5057.tDefense.core.tools.modifiers.ActiveToolMods; + +import java.util.Random; + +import cpw.mods.fml.common.Loader; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.World; +import tconstruct.library.ActiveToolMod; +import tconstruct.library.tools.ToolCore; + + + +public class TDefenseActiveToolMod extends ActiveToolMod +{ + TdefenseToolMods TDMods = new TdefenseToolMods(); + BotaniaToolMods FlowerMods = new BotaniaToolMods(); + + + @Override + public void updateTool(ToolCore tool, ItemStack stack, World world, Entity entity) + { + NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool"); + + if (!tags.getBoolean("Broken")) + { + //TDefense + TDMods.UpdateAll(tool, stack, world, entity, tags); + + //Botania + if(Loader.isModLoaded("Botania")) + { + FlowerMods.UpdateAll(tool, stack, world, entity, tags); + } + + } + } + + @Override + + public int baseAttackDamage(int earlyModDamage, int damage, ToolCore tool, + NBTTagCompound tags, NBTTagCompound toolTags, ItemStack stack, + EntityLivingBase player, Entity entity) { + if (!toolTags.hasKey("Broken")) { + if (toolTags.hasKey("Daze")) { + int[] array = toolTags.getIntArray("Daze"); + int chance = array[0] * 5; + + Random roll = new Random(); + int num = roll.nextInt(100) + 1; + + if (num <= chance) { + ((EntityLivingBase) entity) + .addPotionEffect(new PotionEffect(2, 3 * 20, 100)); + ((EntityLivingBase) entity) + .addPotionEffect(new PotionEffect(9, 3 * 20, 100)); + ((EntityLivingBase) entity) + .addPotionEffect(new PotionEffect(15, 3 * 20, 100)); + ((EntityLivingBase) entity) + .addPotionEffect(new PotionEffect(18, 3 * 20, 100)); + } + } + } + + return 0; + } + + +} diff --git a/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TdefenseToolMods.java b/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TdefenseToolMods.java new file mode 100644 index 0000000..d75ec13 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TdefenseToolMods.java @@ -0,0 +1,51 @@ +package lance5057.tDefense.core.tools.modifiers.ActiveToolMods; + +import java.util.ArrayList; + +import mods.battlegear2.api.core.IBattlePlayer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.projectile.EntityFireball; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import tconstruct.library.tools.ToolCore; + +public class TdefenseToolMods +{ + public void UpdateAll(ToolCore tool, ItemStack stack, World world, Entity entity, NBTTagCompound tags) + { + if(tags.hasKey("Crest of Mirrors")) + UpdateMirrors(tool, stack, world, entity); + } + + public void UpdateMirrors(ToolCore tool, ItemStack stack, World world, Entity entity) + { + if(((IBattlePlayer)entity).isBlockingWithShield()) + { + AxisAlignedBB boundingBox = AxisAlignedBB.getBoundingBox(((EntityLivingBase)entity).posX - 3, ((EntityLivingBase)entity).posY - 3, ((EntityLivingBase)entity).posZ - 3, ((EntityLivingBase)entity).posX + 3, ((EntityLivingBase)entity).posY + 3, ((EntityLivingBase)entity).posZ + 3); + + ArrayList<EntityFireball> fireballs = (ArrayList<EntityFireball>) world.getEntitiesWithinAABB(EntityFireball.class, boundingBox); + for (EntityFireball fireball : fireballs) + { + if (fireball.getDistanceSqToEntity(((EntityLivingBase)entity)) <= 25) + { + Vec3 playerlook = ((EntityLivingBase)entity).getLookVec(); + + fireball.motionX = playerlook.xCoord; + fireball.motionY = playerlook.yCoord; + fireball.motionZ = playerlook.zCoord; + fireball.accelerationX = fireball.motionX * 0.1D; + fireball.accelerationY = fireball.motionY * 0.1D; + fireball.accelerationZ = fireball.motionZ * 0.1D; + + fireball.shootingEntity = ((EntityLivingBase)entity); + + ((EntityLivingBase)entity).worldObj.playSoundAtEntity(((EntityLivingBase)entity), "battlegear2:shield", 1, 1); + } + } + } + } +} diff --git a/src/main/java/lance5057/tDefense/core/tools/modifiers/Modifiers.java b/src/main/java/lance5057/tDefense/core/tools/modifiers/Modifiers.java new file mode 100644 index 0000000..de0b82f --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/modifiers/Modifiers.java @@ -0,0 +1,59 @@ +package lance5057.tDefense.core.tools.modifiers; + +import cpw.mods.fml.common.registry.GameRegistry; +import lance5057.tDefense.Reference; +import lance5057.tDefense.TinkersDefense; +import lance5057.tDefense.core.tools.modifiers.ActiveToolMods.TDefenseActiveToolMod; +import lance5057.tDefense.core.tools.modifiers.shields.modifierCrestofBlades; +import lance5057.tDefense.core.tools.modifiers.shields.modifierCrestofFeathers; +import lance5057.tDefense.core.tools.modifiers.shields.modifierCrestofLegends; +import lance5057.tDefense.core.tools.modifiers.shields.modifierCrestofMirrors; +import lance5057.tDefense.core.tools.modifiers.weapons.modifierDaze; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import tconstruct.library.TConstructRegistry; +import tconstruct.library.client.TConstructClientRegistry; +import tconstruct.library.crafting.ModifyBuilder; +import tconstruct.library.tools.ToolCore; + +public class Modifiers +{ + public static Item item_relic; + + public void init() + { + item_relic = new Item().setCreativeTab(TinkersDefense.tabName).setMaxStackSize(1) + .setUnlocalizedName("AncientRelic") + .setTextureName(Reference.MOD_ID + ":AncientRelic"); + GameRegistry.registerItem(item_relic, "Ancient Relic"); + + ModifyBuilder.registerModifier(new modifierDaze("Daze", TinkersDefense.config.DazeID, new ItemStack[] { new ItemStack(Blocks.light_weighted_pressure_plate), new ItemStack(Items.potionitem,1,8202)}, + new int[] {1,0})); + + //ModifyBuilder.registerModifier(new modifierTorchArrow(new ItemStack[] {new ItemStack(Blocks.glowstone)}, 12)); + + ModifyBuilder.registerModifier(new modifierCrestofFeathers("Crest of Feathers", TinkersDefense.config.CrestFeathersID, new ItemStack[] { new ItemStack(Items.feather)}, + new int[] {1})); + + ModifyBuilder.registerModifier(new modifierCrestofMirrors("Crest of Mirrors", TinkersDefense.config.CrestMirrorsID, new ItemStack[] { new ItemStack(Blocks.glass_pane)}, + new int[] {1})); + + ModifyBuilder.registerModifier(new modifierCrestofLegends("Crest of Legends", TinkersDefense.config.CrestLegendsID, new ItemStack[] { new ItemStack(item_relic)}, + new int[] {1})); + + ModifyBuilder.registerModifier(new modifierCrestofBlades("Crest of Blades", TinkersDefense.config.CrestBladesID, new ItemStack[] { new ItemStack(Items.iron_sword)},new int[] {1})); + + TConstructRegistry.registerActiveToolMod(new TDefenseActiveToolMod()); + + for (ToolCore tool : TConstructRegistry.getToolMapping()) + { + TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.DazeID, "tinker", "daze", true); + TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.CrestFeathersID, "tinker", "feathers", true); + TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.CrestMirrorsID, "tinker", "mirrors", true); + TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.CrestLegendsID, "tinker", "legends", true); + TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.CrestBladesID, "tinker", "blades", true); + } + } +} diff --git a/src/main/java/lance5057/tDefense/core/tools/modifiers/TDefenseActiveToolMod.java b/src/main/java/lance5057/tDefense/core/tools/modifiers/TDefenseActiveToolMod.java deleted file mode 100644 index 7fffad4..0000000 --- a/src/main/java/lance5057/tDefense/core/tools/modifiers/TDefenseActiveToolMod.java +++ /dev/null @@ -1,109 +0,0 @@ -package lance5057.tDefense.core.tools.modifiers; - -import java.util.ArrayList; -import java.util.Random; - -import mods.battlegear2.api.core.IBattlePlayer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityFireball; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import tconstruct.library.ActiveToolMod; -import tconstruct.library.tools.ToolCore; -import vazkii.botania.common.entity.EntityManaBurst; -import vazkii.botania.common.item.ModItems; -import vazkii.botania.common.item.equipment.tool.ToolCommons; -import vazkii.botania.common.item.equipment.tool.terrasteel.ItemTerraSword; - -public class TDefenseActiveToolMod extends ActiveToolMod -{ - @Override - public void updateTool(ToolCore tool, ItemStack stack, World world, Entity entity) - { - NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool"); - - if (!tags.getBoolean("Broken")) - { - //Crest of Mirrors - if(((IBattlePlayer)entity).isBlockingWithShield()) - { - if(tags.hasKey("Crest of Mirrors")) - { - AxisAlignedBB boundingBox = AxisAlignedBB.getBoundingBox(((EntityLivingBase)entity).posX - 3, ((EntityLivingBase)entity).posY - 3, ((EntityLivingBase)entity).posZ - 3, ((EntityLivingBase)entity).posX + 3, ((EntityLivingBase)entity).posY + 3, ((EntityLivingBase)entity).posZ + 3); - - ArrayList<EntityFireball> fireballs = (ArrayList<EntityFireball>) world.getEntitiesWithinAABB(EntityFireball.class, boundingBox); - for (EntityFireball fireball : fireballs) - { - if (fireball.getDistanceSqToEntity(((EntityLivingBase)entity)) <= 25) - { - Vec3 playerlook = ((EntityLivingBase)entity).getLookVec(); - - fireball.motionX = playerlook.xCoord; - fireball.motionY = playerlook.yCoord; - fireball.motionZ = playerlook.zCoord; - fireball.accelerationX = fireball.motionX * 0.1D; - fireball.accelerationY = fireball.motionY * 0.1D; - fireball.accelerationZ = fireball.motionZ * 0.1D; - - fireball.shootingEntity = ((EntityLivingBase)entity); - - ((EntityLivingBase)entity).worldObj.playSoundAtEntity(((EntityLivingBase)entity), "battlegear2:shield", 1, 1); - } - } - } - } - - if(entity instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) entity; - PotionEffect haste = player.getActivePotionEffect(Potion.digSpeed); - float check = haste == null ? 0.16666667F : haste.getAmplifier() == 1 ? 0.5F : 0.4F; - - if(player.getCurrentEquippedItem() == stack && player.swingProgress == check && !world.isRemote && world.rand.nextInt(2) == 0) - { - EntityManaBurst burst = ((ItemTerraSword)ModItems.terraSword).getBurst(player, new ItemStack(ModItems.terraSword)); - world.spawnEntityInWorld(burst); - ToolCommons.damageItem(stack, 1, player, 100); - world.playSoundAtEntity(player, "botania:terraBlade", 0.4F, 1.4F); - } - } - } - } - - @Override - - public int baseAttackDamage(int earlyModDamage, int damage, ToolCore tool, - NBTTagCompound tags, NBTTagCompound toolTags, ItemStack stack, - EntityLivingBase player, Entity entity) { - if (!toolTags.hasKey("Broken")) { - if (toolTags.hasKey("Daze")) { - int[] array = toolTags.getIntArray("Daze"); - int chance = array[0] * 5; - - Random roll = new Random(); - int num = roll.nextInt(100) + 1; - - if (num <= chance) { - ((EntityLivingBase) entity) - .addPotionEffect(new PotionEffect(2, 3 * 20, 100)); - ((EntityLivingBase) entity) - .addPotionEffect(new PotionEffect(9, 3 * 20, 100)); - ((EntityLivingBase) entity) - .addPotionEffect(new PotionEffect(15, 3 * 20, 100)); - ((EntityLivingBase) entity) - .addPotionEffect(new PotionEffect(18, 3 * 20, 100)); - } - } - } - - return 0; - } - - -} diff --git a/src/main/java/lance5057/tDefense/proxy/ClientProxy.java b/src/main/java/lance5057/tDefense/proxy/ClientProxy.java index 7f6364c..31eaa24 100644 --- a/src/main/java/lance5057/tDefense/proxy/ClientProxy.java +++ b/src/main/java/lance5057/tDefense/proxy/ClientProxy.java @@ -4,7 +4,6 @@ import lance5057.tDefense.TinkersDefense; import lance5057.tDefense.armor.renderers.ModelChainArmor; import lance5057.tDefense.armor.renderers.ModelClothArmor; import lance5057.tDefense.armor.renderers.ModelMask; -import lance5057.tDefense.armor.renderers.ModelTinkerArmor; import lance5057.tDefense.core.blocks.crestMount.Renderer_CrestMount; import lance5057.tDefense.core.blocks.crestMount.TileEntity_CrestMount; import lance5057.tDefense.finishingAnvil.blocks.finishingAnvil.Renderer_FinishingAnvil; @@ -17,7 +16,6 @@ import tconstruct.client.FlexibleToolRenderer; import cpw.mods.fml.client.registry.ClientRegistry; public class ClientProxy extends CommonProxy { - public static final ModelTinkerArmor tutChest = new ModelTinkerArmor(1.0f); //public static final ModelSheath sheath = new ModelSheath(); public static final ModelChainArmor chain = new ModelChainArmor(0.1f); public static final ModelClothArmor cloth = new ModelClothArmor(); @@ -33,8 +31,12 @@ public class ClientProxy extends CommonProxy { TinkersDefense.tool_heaterShield, renderer); MinecraftForgeClient.registerItemRenderer(TinkersDefense.tool_wrench, renderer); + MinecraftForgeClient.registerItemRenderer(TinkersDefense.tool_shears, + renderer); MinecraftForgeClient.registerItemRenderer(TinkersDefense.tool_zweihander, renderer); + MinecraftForgeClient.registerItemRenderer(TinkersDefense.armor_TinkerHelm, + renderer); ClientRegistry.bindTileEntitySpecialRenderer( TileEntity_CrestMount.class, new Renderer_CrestMount()); |
