From a918009626db55c1fc5f359c557f0e848da15f46 Mon Sep 17 00:00:00 2001 From: Lance5057 Date: Fri, 26 Jun 2015 05:40:18 -0500 Subject: Added parts of Mirrors, Feathers, Vampirism, and Legends crests --- src/main/java/gmail/Lance5057/TD_Config.java | 33 ++++ src/main/java/gmail/Lance5057/TinkersDefense.java | 75 ++++----- .../gmail/Lance5057/armor/items/TinkerArmor.java | 43 +++--- .../Lance5057/armor/renderers/ModelChainArmor.java | 170 +++++++++++++++++++++ .../gmail/Lance5057/events/TDEventHandler.java | 14 ++ .../gmail/Lance5057/items/tools/HeaterShield.java | 14 +- .../java/gmail/Lance5057/items/tools/Shield.java | 2 +- .../Lance5057/modifiers/TDefenseActiveToolMod.java | 51 +++++-- .../gmail/Lance5057/modifiers/modifierDaze.java | 38 +++-- .../modifiers/shields/modifierCrestofMirrors.java | 85 ++++------- .../java/gmail/Lance5057/proxy/ClientProxy.java | 2 + 11 files changed, 367 insertions(+), 160 deletions(-) create mode 100644 src/main/java/gmail/Lance5057/TD_Config.java create mode 100644 src/main/java/gmail/Lance5057/armor/renderers/ModelChainArmor.java (limited to 'src/main/java') diff --git a/src/main/java/gmail/Lance5057/TD_Config.java b/src/main/java/gmail/Lance5057/TD_Config.java new file mode 100644 index 0000000..f729b59 --- /dev/null +++ b/src/main/java/gmail/Lance5057/TD_Config.java @@ -0,0 +1,33 @@ +package gmail.Lance5057; + +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.common.config.Property; + +public class TD_Config +{ + public int AeonsteelMatID; + public int QueensGoldMatID; + public int DogbeariumMatID; + + public int DazeID; + public int CrestFeathersID; + public int CrestMirrorsID; + + public TD_Config(FMLPreInitializationEvent e) + { + Configuration config = new Configuration(e.getSuggestedConfigurationFile()); + + config.load(); + + AeonsteelMatID = config.get("Material Configs", "Aeonsteel Material ID", 201).getInt(); + QueensGoldMatID = config.get("Material Configs", "QueensGold Material ID", 202).getInt(); + DogbeariumMatID = config.get("Material Configs", "Dogbearium Material ID", 203).getInt(); + + DazeID = config.get("Modifier Configs", "Daze ID", 18).getInt(); + CrestFeathersID = config.get("Modifier Configs", "Crest of Feathers ID", 19).getInt(); + CrestMirrorsID = config.get("Modifier Configs", "Crest of Mirrors ID", 20).getInt(); + + config.save(); + } +} diff --git a/src/main/java/gmail/Lance5057/TinkersDefense.java b/src/main/java/gmail/Lance5057/TinkersDefense.java index 030f8d9..8bf5ce3 100644 --- a/src/main/java/gmail/Lance5057/TinkersDefense.java +++ b/src/main/java/gmail/Lance5057/TinkersDefense.java @@ -44,6 +44,8 @@ import net.minecraft.item.ItemArmor.ArmorMaterial; import net.minecraft.item.ItemStack; import net.minecraft.util.StatCollector; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.common.config.Property; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; @@ -91,6 +93,8 @@ public class TinkersDefense { }; public static TDEventHandler TDevents; + + public static TD_Config config; public static final SimpleNetworkWrapper INSTANCE = NetworkRegistry.INSTANCE .newSimpleChannel(Reference.MOD_ID); @@ -145,7 +149,9 @@ public class TinkersDefense { @EventHandler public void preInit(FMLPreInitializationEvent e) { PacketHandler.init(); - TDevents = new TDEventHandler(); + //TDevents = new TDEventHandler(); + config = new TD_Config(e); + block_CrestMount = new CrestMount().setHardness(4.0F) .setStepSound(Block.soundTypeStone).setBlockName("CrestMount") @@ -342,30 +348,23 @@ public class TinkersDefense { PatternBuilder pb = PatternBuilder.instance; - ModifyBuilder.registerModifier(new modifierDaze("Daze", 18, new ItemStack[] { new ItemStack(Blocks.light_weighted_pressure_plate), new ItemStack(Items.potionitem,1,8202)}, + 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 modifierCrestofFeathers("Crest of Feathers", 19, new ItemStack[] { new ItemStack(item_Crest_Feathers)}, + ModifyBuilder.registerModifier(new modifierCrestofFeathers("Crest of Feathers", config.CrestFeathersID, new ItemStack[] { new ItemStack(item_Crest_Feathers)}, new int[] {1})); - ModifyBuilder.registerModifier(new modifierCrestofMirrors("Crest of Mirrors", 20, new ItemStack[] { new ItemStack(Blocks.glass_pane)}, + ModifyBuilder.registerModifier(new modifierCrestofMirrors("Crest of Mirrors", config.CrestMirrorsID, new ItemStack[] { new ItemStack(Blocks.glass_pane)}, new int[] {1})); TConstructRegistry.registerActiveToolMod(new TDefenseActiveToolMod()); for (ToolCore tool : TConstructRegistry.getToolMapping()) { - TConstructClientRegistry.addEffectRenderMapping(tool, 18, "tinkersdefense", "daze", true); - } - //TODO clean this mess up - for (ToolCore tool : TConstructRegistry.getToolMapping()) - { - TConstructClientRegistry.addEffectRenderMapping(tool, 19, "tinkersdefense", "crest_feather", true); - } - - for (ToolCore tool : TConstructRegistry.getToolMapping()) - { - TConstructClientRegistry.addEffectRenderMapping(tool, 20, "tinkersdefense", "crest_mirrors", true); + 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.toolButtons .add(TConstructClientRegistry.toolButtons.size(), @@ -401,16 +400,16 @@ public class TinkersDefense { TinkerTools.toolShard, 1, 10), new ItemStack( TinkerTools.toolRod, 1, 10), 10); - TConstructClientRegistry.addMaterialRenderMapping(201, "tinker", + TConstructClientRegistry.addMaterialRenderMapping(config.AeonsteelMatID, "tinker", "aeonsteel", true); // Tool Materials: id, name, harvestlevel, durability, speed, damage, // handlemodifier, reinforced, shoddy, style color, primary color for // block use - TConstructRegistry.addToolMaterial(201, "AeonSteel", 4, 822, 1100, 3, + TConstructRegistry.addToolMaterial(config.AeonsteelMatID, "AeonSteel", 4, 822, 1100, 3, 1.6F, 2, 0f, LIGHT_PURPLE.toString(), 0xb565e6); TinkerTools.registerPatternMaterial("AeonSteelIngot", 2, "AeonSteel"); - TConstructRegistry.addDefaultToolPartMaterial(201); + TConstructRegistry.addDefaultToolPartMaterial(config.AeonsteelMatID); Smeltery.addMelting(new ItemStack(item_AeonSteelIngot, 1, 0), block_AeonSteelBlock, 0, 500, new FluidStack(moltenAeonsteel, @@ -429,24 +428,24 @@ public class TinkersDefense { new FluidStack(moltenAeonsteel, TConstruct.ingotLiquidValue * 9), 100); - castMolten(moltenAeonsteel, 201); + castMolten(moltenAeonsteel, config.AeonsteelMatID); PatternBuilder.instance.registerFullMaterial(new ItemStack( item_AeonSteelIngot, 1, 0), 2, "Aeonsteel", new ItemStack( - TinkerTools.toolShard, 1, 201), new ItemStack( - TinkerTools.toolRod, 1, 201), 201); + TinkerTools.toolShard, 1, config.AeonsteelMatID), new ItemStack( + TinkerTools.toolRod, 1, config.AeonsteelMatID), config.AeonsteelMatID); Smeltery.addAlloyMixing(new FluidStack(moltenAeonsteel, 144), new FluidStack[] { new FluidStack(TinkerSmeltery.moltenAlumiteFluid, 144), new FluidStack(TinkerSmeltery.moltenCobaltFluid, 144) }); // Queen's Gold - TConstructClientRegistry.addMaterialRenderMapping(202, "tinker", + TConstructClientRegistry.addMaterialRenderMapping(config.QueensGoldMatID, "tinker", "queensgold", true); - TConstructRegistry.addToolMaterial(202, "QueensGold", 3, 100, 500, 2, + TConstructRegistry.addToolMaterial(config.QueensGoldMatID, "QueensGold", 3, 100, 500, 2, 1.0F, 0, 0f, GOLD.toString(), 0xeaee57); TinkerTools.registerPatternMaterial("QueensGoldIngot", 2, "QueensGold"); - TConstructRegistry.addDefaultToolPartMaterial(202); + TConstructRegistry.addDefaultToolPartMaterial(config.QueensGoldMatID); Smeltery.addMelting(new ItemStack(item_QueensGoldIngot, 1, 0), block_QueensGoldBlock, 0, 500, new FluidStack(moltenQueensGold, @@ -464,12 +463,12 @@ public class TinkersDefense { new FluidStack(moltenQueensGold, TConstruct.ingotLiquidValue * 9), 100); - castMolten(moltenQueensGold, 202); + castMolten(moltenQueensGold, config.QueensGoldMatID); PatternBuilder.instance.registerFullMaterial(new ItemStack( item_QueensGoldIngot, 1, 0), 2, "QueensGold", new ItemStack( - TinkerTools.toolShard, 1, 202), new ItemStack( - TinkerTools.toolRod, 1, 202), 202); + TinkerTools.toolShard, 1, config.QueensGoldMatID), new ItemStack( + TinkerTools.toolRod, 1, config.QueensGoldMatID), config.QueensGoldMatID); Smeltery.addAlloyMixing( new FluidStack(moltenQueensGold, 144 * 8), @@ -477,16 +476,13 @@ public class TinkersDefense { new FluidStack(TinkerSmeltery.moltenGoldFluid, 144 * 8), new FluidStack(TinkerSmeltery.moltenEmeraldFluid, 80) }); - // Tool Materials: id, name, harvestlevel, durability, speed, damage, - // handlemodifier, reinforced, shoddy, style color, primary color for - // block use // Dogbearium - TConstructClientRegistry.addMaterialRenderMapping(203, "tinker", + TConstructClientRegistry.addMaterialRenderMapping(config.DogbeariumMatID, "tinker", "dogbearium", true); - TConstructRegistry.addToolMaterial(203, "Dogbearium", 4, 600, 800, 2, + TConstructRegistry.addToolMaterial(config.DogbeariumMatID, "Dogbearium", 4, 600, 800, 2, 1.6F, 0, -2f, DARK_RED.toString(), 0x754200); TinkerTools.registerPatternMaterial("DogbeariumIngot", 2, "Dogbearium"); - TConstructRegistry.addDefaultToolPartMaterial(203); + TConstructRegistry.addDefaultToolPartMaterial(config.DogbeariumMatID); Smeltery.addMelting(new ItemStack(item_DogbeariumIngot, 1, 0), block_DogbeariumBlock, 0, 500, new FluidStack(moltenDogbearium, @@ -504,12 +500,12 @@ public class TinkersDefense { new FluidStack(moltenDogbearium, TConstruct.ingotLiquidValue * 9), 100); - castMolten(moltenDogbearium, 203); + castMolten(moltenDogbearium, config.DogbeariumMatID); PatternBuilder.instance.registerFullMaterial(new ItemStack( item_DogbeariumIngot, 1, 0), 2, "Dogbearium", new ItemStack( - TinkerTools.toolShard, 1, 203), new ItemStack( - TinkerTools.toolRod, 1, 203), 203); + TinkerTools.toolShard, 1, config.DogbeariumMatID), new ItemStack( + TinkerTools.toolRod, 1, config.DogbeariumMatID), config.DogbeariumMatID); Smeltery.addAlloyMixing(new FluidStack(moltenDogbearium, 144 * 2), new FluidStack[] { @@ -530,7 +526,7 @@ public class TinkersDefense { TinkerTools.toolRod, TinkerTools.binding); StencilBuilder.registerStencil(50, woodPattern, 0); // rivets - StencilBuilder.registerStencil(51, woodPattern, 1); // spike + StencilBuilder.registerStencil(51, woodPattern, 1); // clasp StencilBuilder.registerStencil(52, woodPattern, 2); // armorplate PatternBuilder.instance.addToolPattern(woodPattern); @@ -549,11 +545,6 @@ public class TinkersDefense { @EventHandler public void postInit(FMLPostInitializationEvent e) { -// ItemStack ironlongsword = ToolBuilder.instance.buildTool(new ItemStack(TinkerTools.swordBlade, 1, 6), new ItemStack(TinkerTools.toolRod, 1, 2), new ItemStack(TinkerTools.handGuard, 1, 10), ""); -// MantleClientRegistry.registerManualIcon("ironlongsword", ironlongsword); -// -// TConstructClientRegistry.registerManualModifier("dazemod", ironlongsword.copy(), new ItemStack(Items.fermented_spider_eye)); -// } diff --git a/src/main/java/gmail/Lance5057/armor/items/TinkerArmor.java b/src/main/java/gmail/Lance5057/armor/items/TinkerArmor.java index ba0fc1b..811f18c 100644 --- a/src/main/java/gmail/Lance5057/armor/items/TinkerArmor.java +++ b/src/main/java/gmail/Lance5057/armor/items/TinkerArmor.java @@ -20,24 +20,25 @@ public class TinkerArmor extends ItemArmor { @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister par1IconRegister) { - String itemName = "tinkersdefense:textures/armor/Sheath"; + String itemName = "tinkersdefense:textures/armor/ChainArmor"; this.itemIcon = par1IconRegister.registerIcon(itemName); } @Override public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) { - return "tinkersdefense:textures/armor/Sheath.png"; + return "tinkersdefense:textures/armor/ChainArmor.png"; } @Override @SideOnly(Side.CLIENT) public ModelBiped getArmorModel(EntityLivingBase entityLiving, - ItemStack itemStack, int armorSlot) { + ItemStack itemStack, int armorSlot) + { - return ClientProxy.sheath; -// ModelBiped armorModel = null; -// if (itemStack != null) { +// return ClientProxy.chain; + ModelBiped armorModel = ClientProxy.chain; + if (itemStack != null) { // if (itemStack.getItem() instanceof TinkerArmor) { // int type = ((ItemArmor) itemStack.getItem()).armorType; // if (type == 1 || type == 3) { @@ -47,7 +48,7 @@ public class TinkerArmor extends ItemArmor { // } // // } -// if (armorModel != null) { + if (armorModel != null) { // armorModel.bipedHead.showModel = armorSlot == 0; // armorModel.bipedHeadwear.showModel = armorSlot == 0; // armorModel.bipedBody.showModel = armorSlot == 1 @@ -58,20 +59,20 @@ public class TinkerArmor extends ItemArmor { // || armorSlot == 3; // armorModel.bipedLeftLeg.showModel = armorSlot == 2 // || armorSlot == 3; -// 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; + 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/gmail/Lance5057/armor/renderers/ModelChainArmor.java b/src/main/java/gmail/Lance5057/armor/renderers/ModelChainArmor.java new file mode 100644 index 0000000..5b3fc2a --- /dev/null +++ b/src/main/java/gmail/Lance5057/armor/renderers/ModelChainArmor.java @@ -0,0 +1,170 @@ +package gmail.Lance5057.armor.renderers; + +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +import org.lwjgl.opengl.GL11; + +public class ModelChainArmor extends ModelBiped +{ + public ModelRenderer Pauldron1R; + public ModelRenderer Pauldron2R; + public ModelRenderer Pauldron3R; + public ModelRenderer ArmR; + public ModelRenderer Belt; + public ModelRenderer BeltBuckle; + public ModelRenderer Body; + public ModelRenderer Coif; + public ModelRenderer Head; + public ModelRenderer LegR; + public ModelRenderer FootR; + public ModelRenderer HipGuardR; + public ModelRenderer HipGuardBR; + public ModelRenderer Pauldron1L; + public ModelRenderer Pauldron2L; + public ModelRenderer Pauldron3L; + public ModelRenderer ArmL; + public ModelRenderer LegL; + public ModelRenderer FootL; + public ModelRenderer HipGuardL; + public ModelRenderer HipGuardBL; + + public ModelChainArmor(float f) { + super(f, 0, 64,96); + + this.textureWidth = 64; + this.textureHeight = 96; + + this.BeltBuckle = new ModelRenderer(this, 0, 32); + this.BeltBuckle.setRotationPoint(0.0F, 0.0F, 0.0F); + this.BeltBuckle.addBox(-1.0F, 10.0F, -2.4F, 2, 2, 1, 0.2F); + this.bipedBody.addChild(BeltBuckle); + + this.Pauldron3L = new ModelRenderer(this, 16, 64); + this.Pauldron3L.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron3L.addBox(-1.3F, -1.3F, -2.5F, 2, 2, 5, 0.1F); + this.setRotateAngle(Pauldron3L, 0.0F, 3.141592653589793F, 0.2617993877991494F); + this.bipedLeftArm.addChild(Pauldron3L); + + this.LegL = new ModelRenderer(this, 0, 48); + this.LegL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.LegL.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, 0.1F); + this.bipedLeftLeg.addChild(LegL); + + this.LegR = new ModelRenderer(this, 0, 48); + this.LegR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.LegR.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, 0.1F); + this.bipedRightLeg.addChild(LegR); + + this.FootR = new ModelRenderer(this, 0, 75); + this.FootR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.FootR.addBox(-2.0F, 10.0F, -3.0F, 4, 2, 1, 0.0F); + this.bipedRightLeg.addChild(FootR); + + this.Pauldron1R = new ModelRenderer(this, 30, 64); + this.Pauldron1R.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron1R.addBox(-3.5F, -1.6F, -2.5F, 3, 4, 5, 0.0F); + this.setRotateAngle(Pauldron1R, 0.0F, 0.0F, 0.2617993877991494F); + this.bipedRightArm.addChild(Pauldron1R); + + this.ArmR = new ModelRenderer(this, 40, 48); + this.ArmR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ArmR.addBox(-3.0F, -2.0F, -2.0F, 4, 12, 4, 0.1F); + this.bipedRightArm.addChild(ArmR); + + this.ArmL = new ModelRenderer(this, 40, 48); + this.ArmL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ArmL.addBox(-3.0F, -2.0F, -2.0F, 4, 12, 4, 0.1F); + this.setRotateAngle(ArmL, 0.0F, 3.141592653589793F, 0.0F); + this.bipedLeftArm.addChild(ArmL); + + this.HipGuardL = new ModelRenderer(this, 24, 32); + this.HipGuardL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.HipGuardL.addBox(-2.1F, 0.0F, 1.5F, 4, 6, 1, -0.1F); + this.setRotateAngle(HipGuardL, 0.17453292519943295F, 1.5707963267948966F, 0.0F); + this.bipedLeftLeg.addChild(HipGuardL); + + this.Pauldron2R = new ModelRenderer(this, 0, 64); + this.Pauldron2R.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron2R.addBox(-2.4F, -2.7F, -2.5F, 3, 3, 5, -0.1F); + this.setRotateAngle(Pauldron2R, 0.0F, 0.0F, -0.2617993877991494F); + this.bipedRightArm.addChild(Pauldron2R); + + 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.1F); + this.bipedBody.addChild(Body); + + this.Pauldron2L = new ModelRenderer(this, 0, 64); + this.Pauldron2L.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron2L.addBox(-2.4F, -2.7F, -2.5F, 3, 3, 5, -0.1F); + this.setRotateAngle(Pauldron2L, 0.0F, 3.141592653589793F, 0.2617993877991494F); + this.bipedLeftArm.addChild(Pauldron2L); + + this.Coif = new ModelRenderer(this, 0, 78); + this.Coif.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Coif.addBox(-4.0F, -8.0F, -4.0F, 8, 10, 8, 0.5F); + this.bipedHead.addChild(Coif); + + this.HipGuardBR = new ModelRenderer(this, 24, 32); + this.HipGuardBR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.HipGuardBR.addBox(-2.0F, 0.0F, 1.0F, 4, 6, 1, 0.0F); + this.setRotateAngle(HipGuardBR, 0.17453292519943295F, 0.0F, 0.0F); + this.bipedRightLeg.addChild(HipGuardBR); + + this.Pauldron3R = new ModelRenderer(this, 16, 64); + this.Pauldron3R.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron3R.addBox(-1.3F, -1.3F, -2.5F, 2, 2, 5, 0.1F); + this.setRotateAngle(Pauldron3R, 0.0F, 0.0F, -0.2617993877991494F); + this.bipedRightArm.addChild(Pauldron3R); + + this.Head = new ModelRenderer(this, 0, 32); + this.Head.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Head.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 0.1F); + this.bipedHead.addChild(Head); + + this.FootL = new ModelRenderer(this, 0, 75); + this.FootL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.FootL.addBox(-2.0F, 10.0F, -3.0F, 4, 2, 1, 0.0F); + this.bipedLeftLeg.addChild(FootL); + + this.Belt = new ModelRenderer(this, 32, 90); + this.Belt.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Belt.addBox(-4.0F, 10.0F, -2.0F, 8, 2, 4, 0.2F); + this.bipedBody.addChild(Belt); + + this.HipGuardBL = new ModelRenderer(this, 24, 32); + this.HipGuardBL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.HipGuardBL.addBox(-2.0F, 0.0F, 1.0F, 4, 6, 1, 0.0F); + this.setRotateAngle(HipGuardBL, 0.17453292519943295F, 0.0F, 0.0F); + this.bipedLeftLeg.addChild(HipGuardBL); + + this.Pauldron1L = new ModelRenderer(this, 30, 64); + this.Pauldron1L.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron1L.addBox(-3.5F, -1.6F, -2.5F, 3, 4, 5, 0.0F); + this.setRotateAngle(Pauldron1L, 0.0F, 3.141592653589793F, -0.2617993877991494F); + this.bipedLeftArm.addChild(Pauldron1L); + + this.HipGuardR = new ModelRenderer(this, 24, 32); + this.HipGuardR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.HipGuardR.addBox(-2.1F, 0.0F, -2.5F, 4, 6, 1, -0.1F); + this.setRotateAngle(HipGuardR, -0.17453292519943295F, 1.5707963267948966F, 0.0F); + this.bipedRightLeg.addChild(HipGuardR); + } + + @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/gmail/Lance5057/events/TDEventHandler.java b/src/main/java/gmail/Lance5057/events/TDEventHandler.java index a65156f..bd46ed9 100644 --- a/src/main/java/gmail/Lance5057/events/TDEventHandler.java +++ b/src/main/java/gmail/Lance5057/events/TDEventHandler.java @@ -6,6 +6,8 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityFireball; import net.minecraft.entity.projectile.EntityLargeFireball; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; import net.minecraft.util.ChatComponentText; import net.minecraft.util.DamageSource; import net.minecraft.util.Vec3; @@ -65,6 +67,18 @@ public class TDEventHandler { event.getPlayer().addChatComponentMessage(new ChatComponentText("Nom")); } } + + if(tags.hasKey("Crest of Legends")) + { + event.getPlayer().addPotionEffect(new PotionEffect(Potion.fireResistance.getId(),4,30)); + event.getPlayer().addPotionEffect(new PotionEffect(Potion.moveSpeed.getId(),4,30)); + event.getPlayer().addPotionEffect(new PotionEffect(Potion.resistance.getId(),4,30)); + } + + if(tags.hasKey("Crest of Vampires")) + { + event.getPlayer().heal(event.ammount/tags.getInteger("Crest of Vampires")); + } } } } diff --git a/src/main/java/gmail/Lance5057/items/tools/HeaterShield.java b/src/main/java/gmail/Lance5057/items/tools/HeaterShield.java index 8455bc2..8f20f48 100644 --- a/src/main/java/gmail/Lance5057/items/tools/HeaterShield.java +++ b/src/main/java/gmail/Lance5057/items/tools/HeaterShield.java @@ -185,13 +185,11 @@ public class HeaterShield extends Shield { @Override public int getBashTimer(ItemStack arg0) { - // TODO Auto-generated method stub return 10; } @Override public float getBlockAngle(ItemStack arg0) { - // TODO Auto-generated method stub return 60; } @@ -241,18 +239,8 @@ public class HeaterShield extends Shield { } } - @Override - protected Material[] getEffectiveMaterials() { - return materials; - } - - static Material[] materials = new Material[] { Material.rock, - Material.iron, Material.ice, Material.glass, Material.piston, - Material.anvil, Material.circuits }; - @Override protected String getHarvestType() { - // TODO Auto-generated method stub - return "pickaxe"; + return "shield"; } } \ No newline at end of file diff --git a/src/main/java/gmail/Lance5057/items/tools/Shield.java b/src/main/java/gmail/Lance5057/items/tools/Shield.java index af33f84..90b5dd4 100644 --- a/src/main/java/gmail/Lance5057/items/tools/Shield.java +++ b/src/main/java/gmail/Lance5057/items/tools/Shield.java @@ -116,7 +116,7 @@ public class Shield extends ToolCore implements IShield, ISheathed, @Override public String[] getTraits() { - return new String[] { "shield", "melee" }; + return new String[] { "shield", "blocking" }; } public static Material[] web = new Material[] { Material.web, diff --git a/src/main/java/gmail/Lance5057/modifiers/TDefenseActiveToolMod.java b/src/main/java/gmail/Lance5057/modifiers/TDefenseActiveToolMod.java index a6ea354..fa47e3e 100644 --- a/src/main/java/gmail/Lance5057/modifiers/TDefenseActiveToolMod.java +++ b/src/main/java/gmail/Lance5057/modifiers/TDefenseActiveToolMod.java @@ -1,19 +1,18 @@ package gmail.Lance5057.modifiers; +import java.util.ArrayList; import java.util.Random; -import mods.battlegear2.api.PlayerEventChild; import mods.battlegear2.api.core.IBattlePlayer; -import mods.battlegear2.api.core.InventoryPlayerBattle; 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.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.PlayerEvent; import tconstruct.library.ActiveToolMod; import tconstruct.library.tools.ToolCore; @@ -21,17 +20,39 @@ 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.hasKey("Broken")) { -// if(((IBattlePlayer)entity).isBlockingWithShield()) -// { -// if(ShieldEvent.source.getEntity() instanceof EntityFireball) -// { -// -// } -// } -// } + NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool"); + + if (!tags.getBoolean("Broken")) + { + //stack.getTagCompound().getCompoundTag("InfiTool").setInteger("RenderHead", 100); + 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 fireballs = (ArrayList) 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); + } + } + } + } + } } @Override diff --git a/src/main/java/gmail/Lance5057/modifiers/modifierDaze.java b/src/main/java/gmail/Lance5057/modifiers/modifierDaze.java index 8b63791..cf30e66 100644 --- a/src/main/java/gmail/Lance5057/modifiers/modifierDaze.java +++ b/src/main/java/gmail/Lance5057/modifiers/modifierDaze.java @@ -1,7 +1,11 @@ package gmail.Lance5057.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.ItemModTypeFilter; public class modifierDaze extends ItemModTypeFilter @@ -20,21 +24,27 @@ public class modifierDaze extends ItemModTypeFilter @Override protected boolean canModify (ItemStack tool, ItemStack[] input) { - NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); - if (!tags.hasKey(key)) - return tags.getInteger("Modifiers") > 0 && matchingAmount(input) <= max; - - if (matchingAmount(input) > max) - return false; - - int keyPair[] = tags.getIntArray(key); - if (keyPair[0] + matchingAmount(input) <= keyPair[1]) - return true; - - else if (keyPair[0] == keyPair[1]) - return tags.getInteger("Modifiers") > 0; + if (tool.getItem() instanceof ToolCore) + { + List list = Arrays.asList(((ToolCore)tool.getItem()).getTraits()); + if (list.contains("weapon")) + { + NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); + if (!tags.hasKey(key)) + return tags.getInteger("Modifiers") > 0 && matchingAmount(input) <= max; + + if (matchingAmount(input) > max) + return false; + + int keyPair[] = tags.getIntArray(key); + if (keyPair[0] + matchingAmount(input) <= keyPair[1]) + return true; + + else if (keyPair[0] == keyPair[1]) + return tags.getInteger("Modifiers") > 0; + } + } - else return false; } diff --git a/src/main/java/gmail/Lance5057/modifiers/shields/modifierCrestofMirrors.java b/src/main/java/gmail/Lance5057/modifiers/shields/modifierCrestofMirrors.java index 22d053f..35cf9a9 100644 --- a/src/main/java/gmail/Lance5057/modifiers/shields/modifierCrestofMirrors.java +++ b/src/main/java/gmail/Lance5057/modifiers/shields/modifierCrestofMirrors.java @@ -1,18 +1,21 @@ package gmail.Lance5057.modifiers.shields; -import tconstruct.modifiers.tools.ItemModTypeFilter; +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.ModBoolean; -public class modifierCrestofMirrors extends ItemModTypeFilter +public class modifierCrestofMirrors extends ModBoolean { String tooltipName; - int max = 5; String guiType; public modifierCrestofMirrors(String type, int effect, ItemStack[] items, int[] values) { - super(effect, "Crest of Mirrors", items, values); + super(items, effect, "Mirrors", "\u00A7", ""); tooltipName = "\u00A7bCrest of Mirrors"; guiType = type; } @@ -20,68 +23,42 @@ public class modifierCrestofMirrors extends ItemModTypeFilter @Override protected boolean canModify (ItemStack tool, ItemStack[] input) { - NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); - if (!tags.hasKey(key)) - return tags.getInteger("Modifiers") > 0 && matchingAmount(input) <= max; - - if (matchingAmount(input) > max) - return false; - - int keyPair[] = tags.getIntArray(key); - if (keyPair[0] + matchingAmount(input) <= keyPair[1]) + if (tool.getItem() instanceof ToolCore) + { + List list = Arrays.asList(((ToolCore)tool.getItem()).getTraits()); + if (list.contains("shield")) + { + + NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); + + if (tags.hasKey(key)) + return false; + return true; - - else if (keyPair[0] == keyPair[1]) - return tags.getInteger("Modifiers") > 0; - - else - return false; + } + } + return false; + } @Override public void modify (ItemStack[] input, ItemStack tool) { - NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); - int increase = matchingAmount(input); - if (tags.hasKey(key)) - { - int[] keyPair = tags.getIntArray(key); - - if (keyPair[0] % max == 0) - { - keyPair[0] += increase; - keyPair[1] += max; - tags.setIntArray(key, keyPair); - - int modifiers = tags.getInteger("Modifiers"); - modifiers -= 1; - tags.setInteger("Modifiers", modifiers); - } - else - { - keyPair[0] += increase; - tags.setIntArray(key, keyPair); - } - updateModTag(tool, keyPair); - - } - else - { - int modifiers = tags.getInteger("Modifiers"); - modifiers -= 1; - tags.setInteger("Modifiers", modifiers); - String modName = "\u00A76" + guiType + " (" + increase + "/" + max + ")"; - int tooltipIndex = addToolTip(tool, tooltipName, modName); - int[] keyPair = new int[] { increase, max, tooltipIndex }; - tags.setIntArray(key, keyPair); - } + NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); + tags.setBoolean(key, true); + + int modifiers = tags.getInteger("Modifiers"); + modifiers -= 1; + tags.setInteger("Modifiers", modifiers); + + addToolTip(tool, "\u00A7b" + tooltipName, "\u00A7b" + key); } void updateModTag (ItemStack tool, int[] keys) { NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); String tip = "ModifierTip" + keys[2]; - String modName = "\u00A76" + guiType + " (" + keys[0] + "/" + keys[1] + ")"; + String modName = "\u00A7b" + guiType; tags.setString(tip, modName); } } diff --git a/src/main/java/gmail/Lance5057/proxy/ClientProxy.java b/src/main/java/gmail/Lance5057/proxy/ClientProxy.java index b295671..0bae0b8 100644 --- a/src/main/java/gmail/Lance5057/proxy/ClientProxy.java +++ b/src/main/java/gmail/Lance5057/proxy/ClientProxy.java @@ -1,6 +1,7 @@ package gmail.Lance5057.proxy; import gmail.Lance5057.TinkersDefense; +import gmail.Lance5057.armor.renderers.ModelChainArmor; import gmail.Lance5057.armor.renderers.ModelSheath; import gmail.Lance5057.armor.renderers.ModelTinkerArmor; import gmail.Lance5057.models.Renderer_ArmorAnvil; @@ -17,6 +18,7 @@ import cpw.mods.fml.client.registry.ClientRegistry; public class ClientProxy extends CommonProxy { private static final ModelTinkerArmor tutChest = new ModelTinkerArmor(1.0f); public static final ModelSheath sheath = new ModelSheath(); + public static final ModelChainArmor chain = new ModelChainArmor(0.1f); @Override public void registerRenderers() { -- cgit v1.2.3