diff options
Diffstat (limited to 'src/main/java')
49 files changed, 2725 insertions, 350 deletions
diff --git a/src/main/java/lance5057/tDefense/Reference.java b/src/main/java/lance5057/tDefense/Reference.java index a9d8bf5..2c78c27 100644 --- a/src/main/java/lance5057/tDefense/Reference.java +++ b/src/main/java/lance5057/tDefense/Reference.java @@ -4,7 +4,7 @@ public class Reference { public static final String MOD_ID = "tinkersdefense"; - public static final String VERSION = "1.2"; + public static final String VERSION = "1.3a"; public static final String MOD_NAME = "Tinkers' Defense"; } diff --git a/src/main/java/lance5057/tDefense/TD_Config.java b/src/main/java/lance5057/tDefense/TD_Config.java index ef40f18..bca70b2 100644 --- a/src/main/java/lance5057/tDefense/TD_Config.java +++ b/src/main/java/lance5057/tDefense/TD_Config.java @@ -20,14 +20,21 @@ public class TD_Config public int CrestLegendsID; public int CrestBladesID; + public int ArmorProtectionID; + public int MaterialIndex; + public boolean BotaniaAddon; + public int CorpseIvyModID; + public TD_Config(FMLPreInitializationEvent e) { Configuration config = new Configuration(e.getSuggestedConfigurationFile()); config.load(); + MaterialIndex = config.get("Material Index", "Highest material ID - TDefense - 206 MFR - 1001 ExtraTIC - 1024", 206).getInt(); + 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(); @@ -40,9 +47,10 @@ public class TD_Config CrestLegendsID = config.get("Modifier Configs", "Crest of Legends ID", 21).getInt(); CrestLegendsID = config.get("Modifier Configs", "Crest of Legends ID", 22).getInt(); - MaterialIndex = config.get("Material Index", "Highest material ID - TDefense - 204 MFR - 1001 ExtraTIC - 1024", 204).getInt(); - + ArmorProtectionID = config.getInt("Protection ID", "Armor Modifier Configs", 40, 0, Integer.MAX_VALUE, ""); + BotaniaAddon = config.getBoolean("Enable Botania Addon", "Botania Addon", true, "Still requires Botania to use"); + CorpseIvyModID = config.getInt("Corpse Drinker Ivy Modifier ID", "Botania Addon", 60, 0, Integer.MAX_VALUE, ""); config.save(); } diff --git a/src/main/java/lance5057/tDefense/TinkersDefense.java b/src/main/java/lance5057/tDefense/TinkersDefense.java index 8782cf3..9c66e96 100644 --- a/src/main/java/lance5057/tDefense/TinkersDefense.java +++ b/src/main/java/lance5057/tDefense/TinkersDefense.java @@ -4,22 +4,28 @@ import static net.minecraft.util.EnumChatFormatting.DARK_RED; import static net.minecraft.util.EnumChatFormatting.GOLD; import static net.minecraft.util.EnumChatFormatting.LIGHT_PURPLE; -import java.time.LocalDate; -import java.time.ZoneId; +import java.util.ArrayList; import java.util.Date; +import java.util.List; +import lance5057.tDefense.addons.TDAddonBotania; +import lance5057.tDefense.armor.events.ArmorModEvents; import lance5057.tDefense.armor.events.ArmorRenderEvent; -import lance5057.tDefense.armor.items.ChainArmor; -import lance5057.tDefense.armor.items.Mask; -import lance5057.tDefense.armor.items.Sheath; +import lance5057.tDefense.armor.items.cloth.TinkersHood; +import lance5057.tDefense.armor.items.cloth.TinkersRobe; +import lance5057.tDefense.armor.items.cloth.TinkersShawl; +import lance5057.tDefense.armor.items.cloth.TinkersShoes; 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.items.light.TinkersBoots; +import lance5057.tDefense.armor.items.light.TinkersChausses; +import lance5057.tDefense.armor.items.light.TinkersCoif; +import lance5057.tDefense.armor.items.light.TinkersHalberd; import lance5057.tDefense.armor.parts.Cloth; import lance5057.tDefense.armor.parts.ClothMaterial; import lance5057.tDefense.blocks.JewelersBench; -import lance5057.tDefense.core.Injector; import lance5057.tDefense.core.TD_Patterns; import lance5057.tDefense.core.blocks.AeonSteelBlock; import lance5057.tDefense.core.blocks.DogbeariumBlock; @@ -28,25 +34,28 @@ import lance5057.tDefense.core.blocks.QueensGoldBlock; import lance5057.tDefense.core.blocks.RedMintBlock; import lance5057.tDefense.core.blocks.crestMount.CrestMount; import lance5057.tDefense.core.blocks.crestMount.TileEntity_CrestMount; +import lance5057.tDefense.core.blocks.ore.TD_Ore; import lance5057.tDefense.core.events.TDEventHandler; +import lance5057.tDefense.core.items.RawGem; import lance5057.tDefense.core.liquids.MoltenFluid; 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.Modifiers; import lance5057.tDefense.finishingAnvil.blocks.finishingAnvil.FinishingAnvil; import lance5057.tDefense.finishingAnvil.blocks.finishingAnvil.TileEntity_FinishingAnvil; +import lance5057.tDefense.finishingAnvil.utilities.Injector; +import lance5057.tDefense.finishingAnvil.utilities.InjectorLocations; import lance5057.tDefense.proxy.CommonProxy; 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; import net.minecraft.util.StatCollector; import net.minecraftforge.common.MinecraftForge; @@ -55,10 +64,12 @@ import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import tconstruct.TConstruct; import tconstruct.library.TConstructRegistry; +import tconstruct.library.client.StencilGuiElement; 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; @@ -98,6 +109,7 @@ public class TinkersDefense { public static TDEventHandler TDevents; public static ArmorRenderEvent AREvent; + public static ArmorModEvents AMEvent; public static TD_Config config; @@ -105,8 +117,6 @@ public class TinkersDefense { .newSimpleChannel(Reference.MOD_ID); static Date date = new Date(); - static LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); - public static int month = localDate.getMonthValue(); public static Item tabIcon; @@ -139,13 +149,23 @@ public class TinkersDefense { public static Block block_GreenMintBlock; public static Fluid moltenGreenMint; public static Block moltenGreenMintBlock; + + public static Item item_RawSapphire; + public static Item item_RawRuby; + public static Item item_RawAmethyst; + public static Item item_RawAmber; + + public static Block block_SapphireOre; + public static Block block_RubyOre; + public static Block block_AmethystOre; + public static Block block_AmberOre; public static ToolCore tool_roundShield; public static ToolCore tool_heaterShield; public static ToolCore tool_wrench; - public static ToolCore tool_sheath; - public static ToolCore tool_mask; - public static ToolCore tool_zweihander; +// 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; @@ -153,10 +173,15 @@ public class TinkersDefense { public static Block block_JewelersBench; public static ToolCore armor_TinkerHood; - public static ToolCore armor_TinkerCowl; + public static ToolCore armor_TinkerShawl; public static ToolCore armor_TinkerRobe; public static ToolCore armor_TinkerShoes; + public static ToolCore armor_TinkerCoif; + public static ToolCore armor_TinkerHalberd; + public static ToolCore armor_TinkerChausses; + public static ToolCore armor_TinkerBoots; + public static ToolCore armor_TinkerHelm; public static ToolCore armor_TinkerBreastplate; public static ToolCore armor_TinkerGrieves; @@ -172,23 +197,61 @@ public class TinkersDefense { public static Item partCloth; public static Item partChainmaille; - public static Injector tcInject; + public static List<Injector> tcInject; + public static InjectorLocations injectLoc; + + public static TDAddonBotania flowermod; @SidedProxy(clientSide = "lance5057.tDefense.proxy.ClientProxy", serverSide = "lance5057.tDefense.proxy.CommonProxy") public static CommonProxy proxy; + public static int month; @EventHandler public void preInit(FMLPreInitializationEvent e) { + month = this.date.getMonth(); + PacketHandler.init(); TDevents = new TDEventHandler(); AREvent = new ArmorRenderEvent(); + AMEvent = new ArmorModEvents(); MinecraftForge.EVENT_BUS.register(AREvent); + MinecraftForge.EVENT_BUS.register(AMEvent); config = new TD_Config(e); + + NetworkRegistry.INSTANCE.registerGuiHandler(TinkersDefense.instance, + new CommonProxy()); + MinecraftForge.EVENT_BUS.register(this); + + tabIcon = new Item().setMaxStackSize(1).setCreativeTab(tabName).setUnlocalizedName("tabIcon").setTextureName(Reference.MOD_ID + ":Icon"); + GameRegistry.registerItem(tabIcon, "tabIcon"); + + //flowermod = new TDAddonBotania(); + mods = new Modifiers(); - mods.init(); + injectLoc = new InjectorLocations(); + +// item_RawSapphire = new RawGem("sapphire"); +// item_RawRuby = new RawGem("ruby"); +// item_RawAmethyst = new RawGem("amethyst"); +// item_RawAmber = new RawGem("amber"); +// +// block_SapphireOre = new TD_Ore(Material.ground, "sapphire", item_RawSapphire); +// block_RubyOre = new TD_Ore(Material.ground, "ruby", item_RawRuby); +// block_AmethystOre = new TD_Ore(Material.ground, "amethyst", item_RawAmethyst); +// block_AmberOre = new TD_Ore(Material.ground, "amber", item_RawAmber); +// +// GameRegistry.registerItem(item_RawSapphire, "rawsapphire"); +// GameRegistry.registerItem(item_RawRuby, "rawruby"); +// GameRegistry.registerItem(item_RawAmethyst, "rawamethyst"); +// GameRegistry.registerItem(item_RawAmber, "rawamber"); +// +// GameRegistry.registerBlock(block_SapphireOre, "sapphireore"); +// GameRegistry.registerBlock(block_RubyOre, "rubyore"); +// GameRegistry.registerBlock(block_AmethystOre, "amethystore"); +// GameRegistry.registerBlock(block_AmberOre, "amber ore"); block_CrestMount = new CrestMount().setHardness(4.0F) .setStepSound(Block.soundTypeStone).setBlockName("CrestMount") @@ -202,7 +265,7 @@ public class TinkersDefense { new Object[] { "xxx", "-i-", "---", 'x', new ItemStack(TinkerTools.toughRod, 1, 1), 'i', new ItemStack(TinkerTools.toolRod, 1, 1) }); - + block_ArmorAnvil = new FinishingAnvil().setHardness(4.0F) .setStepSound(Block.soundTypeAnvil).setBlockName("ArmorAnvil") .setCreativeTab(tabName); @@ -210,6 +273,11 @@ public class TinkersDefense { GameRegistry.registerBlock(block_ArmorAnvil, "Block_ArmorAnvil"); GameRegistry.registerTileEntity(TileEntity_FinishingAnvil.class, "Tile_ArmorAnvil"); + + GameRegistry.addShapedRecipe(new ItemStack(block_ArmorAnvil), + new Object[] { "ai-", "lr-", "---", 'r', + new ItemStack(TinkerTools.toughRod, 1, 0), 'a', + Blocks.anvil, 'i', Items.iron_ingot, 'l', Blocks.log }); block_JewelersBench = new JewelersBench().setHardness(4.0F) .setStepSound(Block.soundTypeWood) @@ -218,13 +286,6 @@ public class TinkersDefense { GameRegistry.registerBlock(block_JewelersBench, "Block_JewelersBench"); GameRegistry.registerTileEntity(TileEntity_JewelersBench.class, "Tile_JewelersBench"); - - NetworkRegistry.INSTANCE.registerGuiHandler(TinkersDefense.instance, - new CommonProxy()); - MinecraftForge.EVENT_BUS.register(this); - - tabIcon = new Item().setMaxStackSize(1).setCreativeTab(tabName).setUnlocalizedName("tabIcon").setTextureName(Reference.MOD_ID + ":Icon"); - GameRegistry.registerItem(tabIcon, "tabIcon"); item_AeonSteelIngot = new Item().setCreativeTab(tabName) .setMaxStackSize(64).setUnlocalizedName("AeonsteelIngot") @@ -319,11 +380,11 @@ public class TinkersDefense { //Candy Canes item_RedMintcane = new Item().setCreativeTab(tabName) .setMaxStackSize(64).setUnlocalizedName("RedMintcane") - .setTextureName(Reference.MOD_ID + ":RedMintcane"); + .setTextureName(Reference.MOD_ID + ":redmintcane"); item_RedMintIngot = new Item().setCreativeTab(tabName) .setMaxStackSize(64).setUnlocalizedName("RedMintIngot") - .setTextureName(Reference.MOD_ID + ":RedMintIngot"); + .setTextureName(Reference.MOD_ID + ":redmintingot"); GameRegistry.registerItem(item_RedMintcane, "RedMintCane"); GameRegistry.registerItem(item_RedMintIngot, "RedMintIngot"); @@ -331,9 +392,9 @@ public class TinkersDefense { block_RedMintBlock = new RedMintBlock(Material.iron) .setHardness(4.0F).setStepSound(Block.soundTypeMetal) .setBlockName("RedMintBlock").setCreativeTab(tabName) - .setBlockTextureName(Reference.MOD_ID + ":RedMintBlock"); + .setBlockTextureName(Reference.MOD_ID + ":redmintblock"); - GameRegistry.registerBlock(block_RedMintBlock, "RedMintblock"); + GameRegistry.registerBlock(block_RedMintBlock, "redmintblock"); GameRegistry .addShapedRecipe(new ItemStack(block_RedMintBlock), @@ -353,11 +414,11 @@ public class TinkersDefense { item_GreenMintcane = new Item().setCreativeTab(tabName) .setMaxStackSize(64).setUnlocalizedName("GreenMintcane") - .setTextureName(Reference.MOD_ID + ":GreenMintcane"); + .setTextureName(Reference.MOD_ID + ":greenmintcane"); item_GreenMintIngot = new Item().setCreativeTab(tabName) .setMaxStackSize(64).setUnlocalizedName("GreenMintIngot") - .setTextureName(Reference.MOD_ID + ":GreenMintIngot"); + .setTextureName(Reference.MOD_ID + ":greenmintingot"); GameRegistry.registerItem(item_GreenMintcane, "GreenMintCane"); GameRegistry.registerItem(item_GreenMintIngot, "GreenMintIngot"); @@ -365,7 +426,7 @@ public class TinkersDefense { block_GreenMintBlock = new GreenMintBlock(Material.iron) .setHardness(4.0F).setStepSound(Block.soundTypeMetal) .setBlockName("GreenMintBlock").setCreativeTab(tabName) - .setBlockTextureName(Reference.MOD_ID + ":GreenMintBlock"); + .setBlockTextureName(Reference.MOD_ID + ":greenmintblock"); GameRegistry.registerBlock(block_GreenMintBlock, "GreenMintblock"); @@ -388,16 +449,26 @@ public class TinkersDefense { tool_shears = new Shears(); tool_wrench = new TinkerWrench(); - tool_sheath = new Sheath(); - tool_mask = new Mask(); +// tool_sheath = new Sheath(); +// tool_mask = new Mask(); - tool_zweihander = new TinkerZweihander(0); +// tool_zweihander = new TinkerZweihander(0); armor_TinkerHelm = new TinkersHelm(); armor_TinkerBreastplate = new TinkersBreastplate(); armor_TinkerGrieves = new TinkersGrieves(); armor_TinkerSabatons = new TinkersSabatons(); + armor_TinkerRobe = new TinkersRobe(); + armor_TinkerShawl = new TinkersShawl(); + armor_TinkerHood = new TinkersHood(); + armor_TinkerShoes = new TinkersShoes(); + + armor_TinkerCoif = new TinkersCoif(); + armor_TinkerHalberd = new TinkersHalberd(); + armor_TinkerChausses = new TinkersChausses(); + armor_TinkerBoots = new TinkersBoots(); + //Register Tools GameRegistry.registerItem(tool_roundShield, "Round Shield"); @@ -405,27 +476,48 @@ public class TinkersDefense { 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_sheath, "Sheath"); +// GameRegistry.registerItem(tool_mask, "Mask"); +// GameRegistry.registerItem(tool_zweihander, "Zweihander"); - GameRegistry.registerItem(tool_zweihander, "Zweihander"); GameRegistry.registerItem(armor_TinkerHelm,"tinkerhelm"); GameRegistry.registerItem(armor_TinkerBreastplate,"tinkerbreastplate"); GameRegistry.registerItem(armor_TinkerGrieves,"tinkergrieves"); GameRegistry.registerItem(armor_TinkerSabatons,"tinkersabatons"); + GameRegistry.registerItem(armor_TinkerCoif,"tinkercoif"); + GameRegistry.registerItem(armor_TinkerHalberd,"tinkerhalberd"); + GameRegistry.registerItem(armor_TinkerChausses,"tinkerchausses"); + GameRegistry.registerItem(armor_TinkerBoots,"tinkerboots"); + + GameRegistry.registerItem(armor_TinkerRobe, "tinkerrobe"); + GameRegistry.registerItem(armor_TinkerShawl, "tinkershawl"); + GameRegistry.registerItem(armor_TinkerHood, "tinkerhood"); + GameRegistry.registerItem(armor_TinkerShoes, "tinkershoes"); + //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("Sheath", tool_sheath); +// TConstructRegistry.addItemToDirectory("Mask", tool_mask); +// TConstructRegistry.addItemToDirectory("Zweihander", tool_zweihander); + TConstructRegistry.addItemToDirectory("tinkerhelm", armor_TinkerHelm); TConstructRegistry.addItemToDirectory("tinkerbreastplate", armor_TinkerBreastplate); TConstructRegistry.addItemToDirectory("tinkergrieves", armor_TinkerGrieves); TConstructRegistry.addItemToDirectory("tinkersabatons", armor_TinkerSabatons); + + TConstructRegistry.addItemToDirectory("tinkercoif", armor_TinkerCoif); + TConstructRegistry.addItemToDirectory("tinkerhalberd", armor_TinkerHalberd); + TConstructRegistry.addItemToDirectory("tinkerchausses", armor_TinkerChausses); + TConstructRegistry.addItemToDirectory("tinkerboots", armor_TinkerBoots); + + TConstructRegistry.addItemToDirectory("tinkerrobe", armor_TinkerRobe); + TConstructRegistry.addItemToDirectory("tinkershawl", armor_TinkerShawl); + TConstructRegistry.addItemToDirectory("tinkerhood", armor_TinkerHood); + TConstructRegistry.addItemToDirectory("tinkershoes", armor_TinkerShoes); woodPattern = new TD_Patterns("pattern_", "Pattern"); metalPattern = new TD_Patterns("cast_", "MetalPattern"); @@ -445,8 +537,8 @@ public class TinkersDefense { // Renderers proxy.registerRenderers(); - item_ChainArmor = new ChainArmor(ArmorMaterial.IRON, 4, 1).setUnlocalizedName("Chain_Armor"); - GameRegistry.registerItem(item_ChainArmor,"Chain Armor"); +// item_ChainArmor = new ChainArmor(ArmorMaterial.IRON, 4, 1).setUnlocalizedName("Chain_Armor"); +// GameRegistry.registerItem(item_ChainArmor,"Chain Armor"); //tool_Sheath = new Sheath().setUnlocalizedName("Sheath"); @@ -461,10 +553,13 @@ public class TinkersDefense { public void init(FMLInitializationEvent e) { //System.out.print(Reference.MOD_ID); + //flowermod.RegisterRecipes(); + //flowermod.RegisterModifiers(); + StencilBuilder.registerStencil(50, woodPattern, 0); // rivets StencilBuilder.registerStencil(51, woodPattern, 1); // clasp StencilBuilder.registerStencil(52, woodPattern, 2); // armorplate - //StencilBuilder.registerStencil(53, woodPattern, 3); // cloth + StencilBuilder.registerStencil(53, woodPattern, 3); // cloth StencilBuilder.registerStencil(54, woodPattern, 4); // chainmaille PatternBuilder.instance.addToolPattern(woodPattern); @@ -490,10 +585,12 @@ public class TinkersDefense { //buildParts(partCloth, 3); buildParts(partChainmaille, 4); + mods.init(); + PatternBuilder pb = PatternBuilder.instance; TConstructClientRegistry.toolButtons - .add(TConstructClientRegistry.toolButtons.size(), + .add( new ToolGuiElement( 1, 0, @@ -505,22 +602,16 @@ public class TinkersDefense { StatCollector .translateToLocal("gui.toolstation.roundshield.desc"), "tinkersdefense", "textures/gui/icons.png")); - TConstructClientRegistry.tierTwoButtons - .add(TConstructClientRegistry.tierTwoButtons.size(), - new ToolGuiElement( - 5, - 0, - 0, - new int[] { 9, 8, 9, 9 }, - new int[] { 2, 3, 2, 3 }, - StatCollector - .translateToLocal("gui.toolstation.heatershield.name"), - StatCollector - .translateToLocal("gui.toolstation.heatershield.desc"), - "tinkersdefense", "textures/gui/icons.png")); + ToolGuiElement button2 = new ToolGuiElement(5,0,0,new int[] { 9, 8, 9, 9 },new int[] { 2, 3, 2, 3 },StatCollector.translateToLocal("gui.toolstation.heatershield.name"),StatCollector.translateToLocal("gui.toolstation.heatershield.desc"),"tinkersdefense:", "textures/gui/icons.png"); + TConstructClientRegistry.tierTwoButtons.add(button2); + + TConstructClientRegistry.stencilButtons2.add(new StencilGuiElement(0, 0, 50, "tinkersdefense", "textures/gui/icons.png")); + TConstructClientRegistry.stencilButtons2.add(new StencilGuiElement(0, 0, 51, "tinkersdefense", "textures/gui/icons.png")); + TConstructClientRegistry.stencilButtons2.add(new StencilGuiElement(0, 0, 52, "tinkersdefense", "textures/gui/icons.png")); + TConstructClientRegistry.stencilButtons2.add(new StencilGuiElement(0, 0, 53, "tinkersdefense", "textures/gui/icons.png")); + TConstructClientRegistry.stencilButtons2.add(new StencilGuiElement(0, 0, 54, "tinkersdefense", "textures/gui/icons.png")); - // Aeonsteel pb.registerMaterialSet("aeonsteel", new ItemStack( TinkerTools.toolShard, 1, 10), new ItemStack( @@ -656,8 +747,8 @@ public class TinkersDefense { TConstructClientRegistry.addMaterialRenderMapping(config.RedMintMatID, "tinker", "RedMint", true); - TConstructRegistry.addToolMaterial(config.RedMintMatID, "RedMint", 4, 600, 800, 2, - 1.6F, 0, -2f, DARK_RED.toString(), 0xFF0000); + TConstructRegistry.addToolMaterial(config.RedMintMatID, "RedMint", 1, 50, 10, 0, + 0F, 0, 0f, DARK_RED.toString(), 0xFF0000); TinkerTools.registerPatternMaterial("RedMintIngot", 2, "RedMint"); TConstructRegistry.addDefaultToolPartMaterial(config.RedMintMatID); @@ -689,8 +780,8 @@ public class TinkersDefense { TConstructClientRegistry.addMaterialRenderMapping(config.GreenMintMatID, "tinker", "GreenMint", true); - TConstructRegistry.addToolMaterial(config.GreenMintMatID, "GreenMint", 4, 600, 800, 2, - 1.6F, 0, -2f, DARK_RED.toString(), 0x5bde4b); + TConstructRegistry.addToolMaterial(config.GreenMintMatID, "GreenMint", 1, 50, 10, 0, + 0F, 0, 0f, DARK_RED.toString(), 0x5bde4b); TinkerTools.registerPatternMaterial("GreenMintIngot", 2, "GreenMint"); TConstructRegistry.addDefaultToolPartMaterial(config.GreenMintMatID); @@ -752,25 +843,44 @@ public class TinkersDefense { TinkerTools.binding, TinkerTools.knifeBlade); //Zweihander - TConstructRegistry.addToolRecipe(tool_zweihander, TinkerTools.largeSwordBlade, - TinkerTools.toughRod, TinkerTools.wideGuard, TinkerTools.swordBlade); +// TConstructRegistry.addToolRecipe(tool_zweihander, TinkerTools.largeSwordBlade, +// TinkerTools.toughRod, TinkerTools.wideGuard, TinkerTools.swordBlade); //Armor - TConstructRegistry.addToolRecipe(tool_sheath, partArmorplate,TinkerTools.toolRod, partCloth, partClasp); - TConstructRegistry.addToolRecipe(tool_mask, partArmorplate, partCloth, partClasp); +// 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); TConstructRegistry.addToolRecipe(armor_TinkerBreastplate, TinkerTools.largePlate, TinkerTools.toughRod, partArmorplate, partChainmaille); TConstructRegistry.addToolRecipe(armor_TinkerGrieves, partArmorplate, TinkerTools.toughRod, partChainmaille, partArmorplate); TConstructRegistry.addToolRecipe(armor_TinkerSabatons, partArmorplate, TinkerTools.toughRod, partArmorplate, partCloth); - tcInject = new Injector(0,TinkerTools.broadsword); - GameRegistry.registerItem(tcInject, "debugger"); + TConstructRegistry.addToolRecipe(armor_TinkerRobe, partCloth, partCloth); + TConstructRegistry.addToolRecipe(armor_TinkerShawl, partCloth, partCloth, partClasp); + TConstructRegistry.addToolRecipe(armor_TinkerHood, partCloth, partCloth, partRivet); + TConstructRegistry.addToolRecipe(armor_TinkerShoes, partCloth, partClasp, partRivet); + + TConstructRegistry.addToolRecipe(armor_TinkerCoif, partChainmaille, partCloth, TinkerTools.toughRod); + TConstructRegistry.addToolRecipe(armor_TinkerHalberd, partChainmaille, partArmorplate, partRivet); + TConstructRegistry.addToolRecipe(armor_TinkerChausses, partChainmaille, partArmorplate); + TConstructRegistry.addToolRecipe(armor_TinkerBoots, partChainmaille, partCloth, partRivet); + + tcInject = new ArrayList<Injector>(); + + for(int i = 0; i < TConstructRegistry.tools.size(); i++) + { + if(!(TConstructRegistry.tools.get(i) instanceof Injector)) + { + tcInject.add(new Injector(i,TConstructRegistry.tools.get(i), injectLoc)); + GameRegistry.registerItem(tcInject.get(i), "debugger_"+TConstructRegistry.tools.get(i).getLocalizedToolName()); + } + } } @EventHandler public void postInit(FMLPostInitializationEvent e) { - + List list = ModifyBuilder.instance.itemModifiers; + list = ModifyBuilder.instance.itemModifiers; } public void castMolten(Fluid fluid, int ID) { @@ -867,7 +977,22 @@ public class TinkersDefense { new ItemStack(TinkerTools.arrowhead, 1, ID), new FluidStack(fluid, (int) (144 * 1.0D)), TConstructRegistry.getItemStack("arrowheadCast"), 50); - + TConstructRegistry.instance.getTableCasting().addCastingRecipe( + new ItemStack(partArmorplate, 1, ID), + new FluidStack(fluid, (int) (144 * 4.0D)), + new ItemStack(metalPattern, 1, 2), 50); + TConstructRegistry.instance.getTableCasting().addCastingRecipe( + new ItemStack(partRivet, 1, ID), + new FluidStack(fluid, (int) (144 * 0.5D)), + new ItemStack(metalPattern, 1, 0), 50); + TConstructRegistry.instance.getTableCasting().addCastingRecipe( + new ItemStack(partClasp, 1, ID), + new FluidStack(fluid, (int) (144 * 1.0D)), + new ItemStack(metalPattern, 1, 1), 50); + TConstructRegistry.instance.getTableCasting().addCastingRecipe( + new ItemStack(partChainmaille, 1, ID), + new FluidStack(fluid, (int) (144 * 4.0D)), + new ItemStack(metalPattern, 1, 3), 50); } public void buildParts(Item item, int meta) { @@ -910,9 +1035,9 @@ public class TinkersDefense { { int color[] = new int[3]; - color[0] = Integer.parseUnsignedInt(hex.substring(0, 2), 16); - color[1] = Integer.parseUnsignedInt(hex.substring(2, 4), 16); - color[2] = Integer.parseUnsignedInt(hex.substring(4, 6), 16); + color[0] = Integer.parseInt(hex.substring(0, 2), 16); + color[1] = Integer.parseInt(hex.substring(2, 4), 16); + color[2] = Integer.parseInt(hex.substring(4, 6), 16); return color; } diff --git a/src/main/java/lance5057/tDefense/addons/TDAddonBotania.java b/src/main/java/lance5057/tDefense/addons/TDAddonBotania.java new file mode 100644 index 0000000..fc28e7e --- /dev/null +++ b/src/main/java/lance5057/tDefense/addons/TDAddonBotania.java @@ -0,0 +1,77 @@ +package lance5057.tDefense.addons; + +import lance5057.tDefense.TinkersDefense; +import lance5057.tDefense.core.tools.modifiers.Botania.modifierCorpseIvy; +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 net.minecraft.item.crafting.CraftingManager; +import net.minecraftforge.oredict.ShapedOreRecipe; +import tconstruct.library.crafting.ModifyBuilder; +import tconstruct.tools.TinkerTools; +import vazkii.botania.api.BotaniaAPI; +import vazkii.botania.common.item.ModItems; +import vazkii.botania.common.item.block.ItemBlockSpecialFlower; +import vazkii.botania.common.lib.LibBlockNames; +import vazkii.botania.common.lib.LibItemNames; +import vazkii.botania.common.lib.LibOreDict; +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.registry.GameRegistry; + +public class TDAddonBotania { + boolean active; + + Item corpseIvyGraft; + Item corpseIvy; + + public TDAddonBotania() + { + active = false; + + if(Loader.isModLoaded("Botania")) + { + active = true; + + LoadItems(); + } + } + + public void LoadItems() + { + corpseIvyGraft = new Item() + .setUnlocalizedName("corpseivygraft") + .setCreativeTab(TinkersDefense.tabName) + .setTextureName("tinkersdefense:corpseIvyGraft"); + + corpseIvy = new Item() + .setUnlocalizedName("corpseivy") + .setCreativeTab(TinkersDefense.tabName) + .setTextureName("tinkersdefense:corpseIvy"); + + GameRegistry.registerItem(corpseIvyGraft, "corpseivygraft"); + GameRegistry.registerItem(corpseIvy, "corpseivy"); + } + + public void RegisterRecipes() + { + CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(corpseIvyGraft), + new Object[] { + "fsf", + "oio", + "fgf", + 'f', ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_BELLETHORN), + 'i', new ItemStack(ModItems.keepIvy, 1, 0), + 's', LibOreDict.MANA_STRING, + 'g', new ItemStack(TinkerTools.craftedSoil,1,3), + 'o', new ItemStack(ModItems.fertilizer,1,1)})); + + BotaniaAPI.registerManaAlchemyRecipe(new ItemStack(corpseIvy,1,0), new ItemStack(corpseIvyGraft,1,0), 100000); + } + + public void RegisterModifiers() + { + ModifyBuilder.registerModifier(new modifierCorpseIvy("Corpse Ivy", TinkersDefense.config.CorpseIvyModID, new ItemStack[] { new ItemStack(corpseIvy)}, new int[] {1})); + } +} diff --git a/src/main/java/lance5057/tDefense/armor/ArmorCore.java b/src/main/java/lance5057/tDefense/armor/ArmorCore.java index 1410b8a..63abd7f 100644 --- a/src/main/java/lance5057/tDefense/armor/ArmorCore.java +++ b/src/main/java/lance5057/tDefense/armor/ArmorCore.java @@ -12,17 +12,20 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ChatComponentText; import net.minecraft.util.DamageSource; import net.minecraft.util.IChatComponent; +import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.common.ISpecialArmor; import scala.Int; import tconstruct.library.accessory.IAccessoryModel; +import tconstruct.library.tools.AbilityHelper; import tconstruct.library.tools.ToolCore; public class ArmorCore extends ToolCore implements ISpecialArmor//, IAccessoryModel -{ +{ int slot; - public ModelBiped armorModel; + protected Double reductionPercent = 0.0; + protected int maxReduction = 0; public ArmorCore(int baseProtection, int slot) { super(baseProtection); @@ -41,8 +44,18 @@ public class ArmorCore extends ToolCore implements ISpecialArmor//, IAccessoryMo public ArmorProperties getProperties(EntityLivingBase player, ItemStack armor, DamageSource source, double damage, int slot) { - ArmorProperties armorp = new ArmorProperties(0, 0.8, 100); //TODO figure this out - ((EntityPlayer)player).addChatComponentMessage(new ChatComponentText(Double.toString(damage))); + NBTTagCompound tags = armor.getTagCompound().getCompoundTag("InfiTool"); + + Double enhancedPercent = reductionPercent; + + if(tags.hasKey("Protection")) + enhancedPercent += (calcModifierDamage(tags.getInteger("Protection"), 0.75f, source) * 0.04); + + ArmorProperties armorp = new ArmorProperties(0, enhancedPercent, maxReduction); //0.04 per half shirt + ((EntityPlayer)player).addChatComponentMessage(new ChatComponentText(source.getDamageType() + + " - Max: " + Double.toString(damage) + + " - ReductPerc: " + Double.toString(reductionPercent) + + " - EnhancedPerc: " + Double.toString(enhancedPercent))); return armorp; } @@ -57,9 +70,10 @@ public class ArmorCore extends ToolCore implements ISpecialArmor//, IAccessoryMo return slot; } + @SideOnly(Side.CLIENT) public ModelBiped getModel(String[] color, NBTTagCompound tags) { - return armorModel; + return null; } @Override @@ -71,27 +85,7 @@ public class ArmorCore extends ToolCore implements ISpecialArmor//, IAccessoryMo @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); - } - } - } + AbilityHelper.damageTool(stack, damage, entity, false); } @Override @@ -99,24 +93,7 @@ public class ArmorCore extends ToolCore implements ISpecialArmor//, IAccessoryMo 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 + return null; } @Override @@ -160,5 +137,18 @@ public class ArmorCore extends ToolCore implements ISpecialArmor//, IAccessoryMo // // TODO Auto-generated method stub // return null; // } + + public int calcModifierDamage(int level, float typeMod, DamageSource source) + { + if (source.canHarmInCreative()) + { + return 0; + } + else + { + float f = (float)(6 + level * level) / 3.0F; + return MathHelper.floor_float(f * typeMod); + } + } } diff --git a/src/main/java/lance5057/tDefense/armor/events/ArmorModEvents.java b/src/main/java/lance5057/tDefense/armor/events/ArmorModEvents.java new file mode 100644 index 0000000..d077565 --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/events/ArmorModEvents.java @@ -0,0 +1,17 @@ +package lance5057.tDefense.armor.events; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ChatComponentText; +import net.minecraftforge.client.event.RenderPlayerEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; + +public class ArmorModEvents +{ + @SubscribeEvent + public void AddProtections(LivingHurtEvent event) + { +// if(event.entityLiving instanceof EntityPlayer) +// ((EntityPlayer)event.entity).addChatComponentMessage(new ChatComponentText("Damage Recieved:" + Double.toString(event.ammount))); + } +} diff --git a/src/main/java/lance5057/tDefense/armor/events/ArmorRenderEvent.java b/src/main/java/lance5057/tDefense/armor/events/ArmorRenderEvent.java index 21ed906..42810b1 100644 --- a/src/main/java/lance5057/tDefense/armor/events/ArmorRenderEvent.java +++ b/src/main/java/lance5057/tDefense/armor/events/ArmorRenderEvent.java @@ -1,17 +1,19 @@ package lance5057.tDefense.armor.events; import lance5057.tDefense.armor.ArmorCore; -import lance5057.tDefense.armor.renderers.heavy.ModelTinkersHelm; import net.minecraft.client.model.ModelBiped; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.client.event.RenderPlayerEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class ArmorRenderEvent { + @SideOnly(Side.CLIENT) @SubscribeEvent public void renderArmorEvent(RenderPlayerEvent.SetArmorModel event) { if (event.entityPlayer != null) diff --git a/src/main/java/lance5057/tDefense/armor/items/ChainArmor.java b/src/main/java/lance5057/tDefense/armor/items/ChainArmor.java deleted file mode 100644 index a2bbd67..0000000 --- a/src/main/java/lance5057/tDefense/armor/items/ChainArmor.java +++ /dev/null @@ -1,77 +0,0 @@ -package lance5057.tDefense.armor.items; - -import lance5057.tDefense.proxy.ClientProxy; -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 ChainArmor extends ItemArmor { - public ChainArmor(ArmorMaterial par2EnumArmorMaterial, int par3, int par4) { - super(par2EnumArmorMaterial, par3, par4); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister par1IconRegister) { - 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/ChainArmor.png"; - } - - @Override - @SideOnly(Side.CLIENT) - public ModelBiped getArmorModel(EntityLivingBase entityLiving, - ItemStack itemStack, int armorSlot) - { - -// 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) { -// 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(); - 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/cloth/TinkersHood.java b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersHood.java index 33f42b2..daa71f6 100644 --- a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersHood.java +++ b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersHood.java @@ -1,58 +1,65 @@ package lance5057.tDefense.armor.items.cloth; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import lance5057.tDefense.TinkersDefense; import lance5057.tDefense.armor.ArmorCore; -import lance5057.tDefense.armor.renderers.heavy.ModelTinkersHelm; +import lance5057.tDefense.armor.parts.ClothMaterial; +import lance5057.tDefense.armor.renderers.cloth.ModelTinkersHood; 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 tconstruct.tools.TinkerTools; +import net.minecraft.util.DamageSource; +import net.minecraftforge.common.ISpecialArmor.ArmorProperties; +import tconstruct.library.TConstructRegistry; +import tconstruct.library.tools.CustomMaterial; public class TinkersHood extends ArmorCore { public TinkersHood() { - super(2,0); - this.setUnlocalizedName("tinkershelm"); + super(0,0); + this.setUnlocalizedName("tinkershood"); } @Override public Item getHeadItem() { - return TinkerTools.frypanHead; + return TinkersDefense.partCloth; } @Override public Item getHandleItem() { - return TinkerTools.toughRod; + return TinkersDefense.partCloth; } @Override public Item getAccessoryItem() { - return TinkersDefense.partArmorplate; + return TinkersDefense.partRivet; } @Override public int durabilityTypeAccessory() { - return 2; + return 1; } @Override public float getRepairCost() { - return 4.0f; + return 1.0f; } @Override public float getDurabilityModifier() { - return 2.5f; + return 1f; } @Override public float getDamageModifier() { - return 1.4f; + return 1f; } @Override @@ -65,13 +72,13 @@ public class TinkersHood extends ArmorCore { switch (partType) { case 0: - return "_helm_top"; + return "_hood_cloth"; case 1: - return "_helm_top_broken"; + return "_hood_cloth_broken"; case 2: - return "_helm_visor"; + return "_hood_trim"; case 3: - return "_helm_chain"; + return "_hood_rivet"; default: return ""; } @@ -80,13 +87,13 @@ public class TinkersHood extends ArmorCore @Override public String getEffectSuffix() { - return "_helm_effect"; + return "_hood_effect"; } @Override public String getDefaultFolder() { - return "armor/helm"; + return "armor/hood"; } // @Override @@ -99,26 +106,35 @@ public class TinkersHood extends ArmorCore @Override public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) { - return "tinkersdefense:textures/armor/TinkersHelm.png"; + return "tinkersdefense:textures/armor/TinkersHood.png"; } @Override public String[] getTraits() { - return new String[] {"armor","helmet","helm","heavyarmor"}; + return new String[] {"armor","helmet","hood","cloth"}; } @Override + @SideOnly(Side.CLIENT) public ModelBiped getModel(String[] color,NBTTagCompound tags) { String[] textures = {this.getIconSuffix(2),this.getIconSuffix(0),this.getIconSuffix(3)}; - armorModel = new ModelTinkersHelm(color, this.getDefaultFolder(), textures); - return armorModel; + int HeadID = tags.getCompoundTag("InfiTool").getInteger("RenderHead"); + int HandleID = tags.getCompoundTag("InfiTool").getInteger("RenderHandle"); + + CustomMaterial newColor = TConstructRegistry.getCustomMaterial(HeadID, ClothMaterial.class); + color[1] = Integer.toHexString(newColor.color); + + newColor = TConstructRegistry.getCustomMaterial(HandleID, ClothMaterial.class); + color[0] = Integer.toHexString(newColor.color); + + return new ModelTinkersHood(color, this.getDefaultFolder(), textures); } @Override public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) { - return 2; + return 0; } } diff --git a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersRobe.java b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersRobe.java new file mode 100644 index 0000000..0961b57 --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersRobe.java @@ -0,0 +1,129 @@ +package lance5057.tDefense.armor.items.cloth; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import tconstruct.library.TConstructRegistry; +import tconstruct.library.tools.CustomMaterial; +import lance5057.tDefense.TinkersDefense; +import lance5057.tDefense.armor.ArmorCore; +import lance5057.tDefense.armor.parts.ClothMaterial; +import lance5057.tDefense.armor.renderers.cloth.ModelTinkersRobe; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class TinkersRobe extends ArmorCore +{ + public TinkersRobe() { + super(0,2); + this.setUnlocalizedName("tinkerrobe"); + } + + @Override + public Item getHeadItem() + { + return TinkersDefense.partCloth; + } + + @Override + public Item getHandleItem() { + return TinkersDefense.partCloth; + } + + @Override + public int durabilityTypeAccessory() { + return 1; + } + + @Override + public float getRepairCost() { + return 1.0f; + } + + @Override + public float getDurabilityModifier() { + return 1f; + } + + @Override + public float getDamageModifier() { + return 1f; + } + + @Override + public int getPartAmount() { + return 2; + } + + @Override + public String getIconSuffix(int partType) + { + switch (partType) { + case 0: + return "_robe_cloth"; + case 1: + return "_robe_cloth_broken"; + case 2: + return "_robe_trim"; + default: + return ""; + } + } + + @Override + public String getEffectSuffix() + { + return "_robe_effect"; + } + + @Override + public String getDefaultFolder() + { + return "armor/robe"; + } + +// @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/TinkersRobe.png"; + } + + @Override + public String[] getTraits() { + return new String[] {"armor","pants","robe","cloth"}; + } + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getModel(String[] color,NBTTagCompound tags) + { + String[] textures = {this.getIconSuffix(2),this.getIconSuffix(0)}; + + int HeadID = tags.getCompoundTag("InfiTool").getInteger("RenderHead"); + int HandleID = tags.getCompoundTag("InfiTool").getInteger("RenderHandle"); + + CustomMaterial newColor = TConstructRegistry.getCustomMaterial(HeadID, ClothMaterial.class); + color[1] = Integer.toHexString(newColor.color); + + newColor = TConstructRegistry.getCustomMaterial(HandleID, ClothMaterial.class); + color[0] = Integer.toHexString(newColor.color); + + return new ModelTinkersRobe(color, this.getDefaultFolder(), textures); + } + + @Override + public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) + { + return 0; + } +} diff --git a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShawl.java b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShawl.java new file mode 100644 index 0000000..97341a1 --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShawl.java @@ -0,0 +1,139 @@ +package lance5057.tDefense.armor.items.cloth; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import lance5057.tDefense.TinkersDefense; +import lance5057.tDefense.armor.ArmorCore; +import lance5057.tDefense.armor.parts.ClothMaterial; +import lance5057.tDefense.armor.renderers.cloth.ModelTinkersShawl; +import lance5057.tDefense.armor.renderers.heavy.ModelTinkersHelm; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import tconstruct.library.TConstructRegistry; +import tconstruct.library.tools.CustomMaterial; +import tconstruct.tools.TinkerTools; + +public class TinkersShawl extends ArmorCore +{ + public TinkersShawl() { + super(0,1); + this.setUnlocalizedName("tinkersshawl"); + } + + @Override + public Item getHeadItem() + { + return TinkersDefense.partCloth; + } + + @Override + public Item getHandleItem() { + return TinkersDefense.partCloth; + } + + @Override + public Item getAccessoryItem() + { + return TinkersDefense.partClasp; + } + + @Override + public int durabilityTypeAccessory() { + return 1; + } + + @Override + public float getRepairCost() { + return 1f; + } + + @Override + public float getDurabilityModifier() { + return 1f; + } + + @Override + public float getDamageModifier() { + return 1f; + } + + @Override + public int getPartAmount() { + return 3; + } + + @Override + public String getIconSuffix(int partType) + { + switch (partType) { + case 0: + return "_shawl_cloth"; + case 1: + return "_shawl_cloth_broken"; + case 2: + return "_shawl_trim"; + case 3: + return "_shawl_clasp"; + default: + return ""; + } + } + + @Override + public String getEffectSuffix() + { + return "_shawl_effect"; + } + + @Override + public String getDefaultFolder() + { + return "armor/shawl"; + } + +// @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/TinkersShawl.png"; + } + + @Override + public String[] getTraits() { + return new String[] {"armor","chest","shawl","cloth"}; + } + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getModel(String[] color,NBTTagCompound tags) + { + String[] textures = {this.getIconSuffix(2),this.getIconSuffix(0),this.getIconSuffix(3)}; + + int HeadID = tags.getCompoundTag("InfiTool").getInteger("RenderHead"); + int HandleID = tags.getCompoundTag("InfiTool").getInteger("RenderHandle"); + + CustomMaterial newColor = TConstructRegistry.getCustomMaterial(HeadID, ClothMaterial.class); + color[1] = Integer.toHexString(newColor.color); + + newColor = TConstructRegistry.getCustomMaterial(HandleID, ClothMaterial.class); + color[0] = Integer.toHexString(newColor.color); + + return new ModelTinkersShawl(color, this.getDefaultFolder(), textures); + } + + @Override + public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) + { + return 0; + } +} diff --git a/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShoes.java b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShoes.java new file mode 100644 index 0000000..d842647 --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersShoes.java @@ -0,0 +1,133 @@ +package lance5057.tDefense.armor.items.cloth; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import lance5057.tDefense.TinkersDefense; +import lance5057.tDefense.armor.ArmorCore; +import lance5057.tDefense.armor.parts.ClothMaterial; +import lance5057.tDefense.armor.renderers.light.ModelTinkersBoots; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import tconstruct.library.TConstructRegistry; +import tconstruct.library.tools.CustomMaterial; + +public class TinkersShoes extends ArmorCore +{ + public TinkersShoes() { + super(0,3); + this.setUnlocalizedName("tinkersshoes"); + } + + @Override + public Item getHeadItem() + { + return TinkersDefense.partCloth; + } + + @Override + public Item getHandleItem() { + return TinkersDefense.partClasp; + } + + @Override + public Item getAccessoryItem() + { + return TinkersDefense.partRivet; + } + + @Override + public int durabilityTypeAccessory() { + return 1; + } + + @Override + public float getRepairCost() { + return 1.0f; + } + + @Override + public float getDurabilityModifier() { + return 1f; + } + + @Override + public float getDamageModifier() { + return 1f; + } + + @Override + public int getPartAmount() { + return 3; + } + + @Override + public String getIconSuffix(int partType) + { + switch (partType) { + case 0: + return "_shoes_cloth"; + case 1: + return "_shoes_cloth_broken"; + case 2: + return "_shoes_clasp"; + case 3: + return "_shoes_rivet"; + default: + return ""; + } + } + + @Override + public String getEffectSuffix() + { + return "_shoes_effect"; + } + + @Override + public String getDefaultFolder() + { + return "armor/shoes"; + } + +// @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/TinkersShoes.png"; + } + + @Override + public String[] getTraits() { + return new String[] {"armor","helmet","shoes","cloth"}; + } + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getModel(String[] color,NBTTagCompound tags) + { + String[] textures = {this.getIconSuffix(2),this.getIconSuffix(0),this.getIconSuffix(3)}; + + int HeadID = tags.getCompoundTag("InfiTool").getInteger("RenderHead"); + + CustomMaterial newColor = TConstructRegistry.getCustomMaterial(HeadID, ClothMaterial.class); + color[1] = Integer.toHexString(newColor.color); + + return (ModelBiped) new ModelTinkersBoots(color, this.getDefaultFolder(), textures); + } + + @Override + public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) + { + return 0; + } +} diff --git a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersBreastplate.java b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersBreastplate.java index 3a8be65..d3fce5d 100644 --- a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersBreastplate.java +++ b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersBreastplate.java @@ -1,23 +1,30 @@ package lance5057.tDefense.armor.items.heavy; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import lance5057.tDefense.TinkersDefense; import lance5057.tDefense.armor.ArmorCore; import lance5057.tDefense.armor.renderers.heavy.ModelTinkersBreastplate; import lance5057.tDefense.armor.renderers.heavy.ModelTinkersHelm; 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.world.World; +import net.minecraftforge.common.ISpecialArmor.ArmorProperties; import tconstruct.tools.TinkerTools; public class TinkersBreastplate extends ArmorCore { public TinkersBreastplate() { - super(0,1); + super(2,1); this.setUnlocalizedName("tinkershelm"); + this.maxReduction = 100; + this.reductionPercent = 0.32; } @Override @@ -118,12 +125,17 @@ public class TinkersBreastplate extends ArmorCore } @Override + @SideOnly(Side.CLIENT) public ModelBiped getModel(String[] color,NBTTagCompound tags) { String[] textures = {this.getIconSuffix(2),this.getIconSuffix(0),this.getIconSuffix(3), this.getIconSuffix(4)}; - armorModel = new ModelTinkersBreastplate(color, this.getDefaultFolder(), textures); - - return armorModel; + return new ModelTinkersBreastplate(color, this.getDefaultFolder(), textures); + } + + @Override + public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) + { + return 8; } } diff --git a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersGrieves.java b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersGrieves.java index 4903bde..747b0e7 100644 --- a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersGrieves.java +++ b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersGrieves.java @@ -1,21 +1,29 @@ package lance5057.tDefense.armor.items.heavy; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import lance5057.tDefense.TinkersDefense; import lance5057.tDefense.armor.ArmorCore; import lance5057.tDefense.armor.renderers.heavy.ModelTinkersGrieves; 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.world.World; +import net.minecraftforge.common.ISpecialArmor.ArmorProperties; import tconstruct.tools.TinkerTools; public class TinkersGrieves extends ArmorCore { public TinkersGrieves() { - super(0,2); + super(2,2); this.setUnlocalizedName("tinkergrieves"); + this.maxReduction = 100; + this.reductionPercent = 0.24; } @Override @@ -116,11 +124,17 @@ public class TinkersGrieves extends ArmorCore } @Override + @SideOnly(Side.CLIENT) public ModelBiped getModel(String[] color,NBTTagCompound tags) { String[] textures = {this.getIconSuffix(2),this.getIconSuffix(0),this.getIconSuffix(3), this.getIconSuffix(4)}; - armorModel = new ModelTinkersGrieves(color, this.getDefaultFolder(), textures); - return armorModel; + return new ModelTinkersGrieves(color, this.getDefaultFolder(), textures); + } + + @Override + public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) + { + return 6; } } diff --git a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java index a4444d4..a2ad9eb 100644 --- a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java +++ b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java @@ -5,18 +5,24 @@ import lance5057.tDefense.armor.ArmorCore; import lance5057.tDefense.armor.renderers.heavy.ModelTinkersHelm; 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.world.World; +import net.minecraft.util.DamageSource; +import net.minecraftforge.common.ISpecialArmor.ArmorProperties; import tconstruct.tools.TinkerTools; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class TinkersHelm extends ArmorCore { public TinkersHelm() { super(2,0); this.setUnlocalizedName("tinkershelm"); + this.maxReduction = 100; + this.reductionPercent = 0.12; } @Override @@ -109,17 +115,17 @@ public class TinkersHelm extends ArmorCore } @Override + @SideOnly(Side.CLIENT) public ModelBiped getModel(String[] color,NBTTagCompound tags) { String[] textures = {this.getIconSuffix(2),this.getIconSuffix(0),this.getIconSuffix(3)}; - armorModel = new ModelTinkersHelm(color, this.getDefaultFolder(), textures); - return armorModel; + return new ModelTinkersHelm(color, this.getDefaultFolder(), textures); } @Override public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) { - return 2; + return 3; } } diff --git a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersSabatons.java b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersSabatons.java index 2ada754..b3cb58a 100644 --- a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersSabatons.java +++ b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersSabatons.java @@ -1,14 +1,21 @@ package lance5057.tDefense.armor.items.heavy; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import lance5057.tDefense.TinkersDefense; import lance5057.tDefense.armor.ArmorCore; import lance5057.tDefense.armor.parts.ClothMaterial; import lance5057.tDefense.armor.renderers.heavy.ModelTinkersSabatons; 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.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraftforge.common.ISpecialArmor.ArmorProperties; import tconstruct.library.TConstructRegistry; import tconstruct.library.tools.CustomMaterial; import tconstruct.tools.TinkerTools; @@ -16,8 +23,10 @@ import tconstruct.tools.TinkerTools; public class TinkersSabatons extends ArmorCore { public TinkersSabatons() { - super(0,3); + super(2,3); this.setUnlocalizedName("tinkersabatons"); + this.maxReduction = 100; + this.reductionPercent = 0.12; } @Override @@ -118,16 +127,24 @@ public class TinkersSabatons extends ArmorCore } @Override + @SideOnly(Side.CLIENT) public ModelBiped getModel(String[] color, NBTTagCompound tags) { String[] textures = {this.getIconSuffix(2),this.getIconSuffix(0),this.getIconSuffix(3), this.getIconSuffix(4)}; int matID = tags.getCompoundTag("InfiTool").getInteger("RenderExtra"); + + CustomMaterial newColor = TConstructRegistry.getCustomMaterial(matID, ClothMaterial.class); color[3] = Integer.toHexString(newColor.color); - armorModel = new ModelTinkersSabatons(color, this.getDefaultFolder(), textures); - return armorModel; + return new ModelTinkersSabatons(color, this.getDefaultFolder(), textures); + } + + @Override + public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) + { + return 3; } } diff --git a/src/main/java/lance5057/tDefense/armor/items/light/TinkersBoots.java b/src/main/java/lance5057/tDefense/armor/items/light/TinkersBoots.java new file mode 100644 index 0000000..afe0368 --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/items/light/TinkersBoots.java @@ -0,0 +1,139 @@ +package lance5057.tDefense.armor.items.light; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import lance5057.tDefense.TinkersDefense; +import lance5057.tDefense.armor.ArmorCore; +import lance5057.tDefense.armor.parts.ClothMaterial; +import lance5057.tDefense.armor.renderers.cloth.ModelTinkersHood; +import lance5057.tDefense.armor.renderers.light.ModelTinkersBoots; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraftforge.common.ISpecialArmor.ArmorProperties; +import tconstruct.library.TConstructRegistry; +import tconstruct.library.tools.CustomMaterial; + +public class TinkersBoots extends ArmorCore +{ + public TinkersBoots() { + super(1,3); + this.setUnlocalizedName("tinkersboots"); + this.maxReduction = 100; + this.reductionPercent = 0.08; + } + + @Override + public Item getHeadItem() + { + return TinkersDefense.partChainmaille; + } + + @Override + public Item getHandleItem() { + return TinkersDefense.partCloth; + } + + @Override + public Item getAccessoryItem() + { + return TinkersDefense.partRivet; + } + + @Override + public int durabilityTypeAccessory() { + return 1; + } + + @Override + public float getRepairCost() { + return 1.0f; + } + + @Override + public float getDurabilityModifier() { + return 1f; + } + + @Override + public float getDamageModifier() { + return 1f; + } + + @Override + public int getPartAmount() { + return 3; + } + + @Override + public String getIconSuffix(int partType) + { + switch (partType) { + case 0: + return "_boots_chain"; + case 1: + return "_boots_chain_broken"; + case 2: + return "_boots_cloth"; + case 3: + return "_boots_rivet"; + default: + return ""; + } + } + + @Override + public String getEffectSuffix() + { + return "_boots_effect"; + } + + @Override + public String getDefaultFolder() + { + return "armor/boots"; + } + +// @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/TinkersBoots.png"; + } + + @Override + public String[] getTraits() { + return new String[] {"armor","feet","boots","lightarmor"}; + } + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getModel(String[] color,NBTTagCompound tags) + { + String[] textures = {this.getIconSuffix(2),this.getIconSuffix(0),this.getIconSuffix(3)}; + + int HandleID = tags.getCompoundTag("InfiTool").getInteger("RenderHandle"); + + CustomMaterial newColor = TConstructRegistry.getCustomMaterial(HandleID, ClothMaterial.class); + color[0] = Integer.toHexString(newColor.color); + + return new ModelTinkersBoots(color, this.getDefaultFolder(), textures); + } + + @Override + public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) + { + return 2; + } +} diff --git a/src/main/java/lance5057/tDefense/armor/items/light/TinkersChausses.java b/src/main/java/lance5057/tDefense/armor/items/light/TinkersChausses.java new file mode 100644 index 0000000..203535d --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/items/light/TinkersChausses.java @@ -0,0 +1,134 @@ +package lance5057.tDefense.armor.items.light; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import lance5057.tDefense.TinkersDefense; +import lance5057.tDefense.armor.ArmorCore; +import lance5057.tDefense.armor.parts.ClothMaterial; +import lance5057.tDefense.armor.renderers.light.ModelTinkersChausses; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraftforge.common.ISpecialArmor.ArmorProperties; +import tconstruct.library.TConstructRegistry; +import tconstruct.library.tools.CustomMaterial; + +public class TinkersChausses extends ArmorCore +{ + public TinkersChausses() { + super(1,2); + this.setUnlocalizedName("tinkerschausses"); + this.maxReduction = 100; + this.reductionPercent = 0.2; + } + + @Override + public Item getHeadItem() + { + return TinkersDefense.partChainmaille; + } + + @Override + public Item getHandleItem() { + return TinkersDefense.partArmorplate; + } + + @Override + public int durabilityTypeAccessory() { + return 1; + } + + @Override + public float getRepairCost() { + return 1.0f; + } + + @Override + public float getDurabilityModifier() { + return 1f; + } + + @Override + public float getDamageModifier() { + return 1f; + } + + @Override + public int getPartAmount() { + return 2; + } + + @Override + public String getIconSuffix(int partType) + { + switch (partType) { + case 0: + return "_chausses_chain"; + case 1: + return "_chausses_chain_broken"; + case 2: + return "_chausses_plate"; + default: + return ""; + } + } + + @Override + public String getEffectSuffix() + { + return "_chausses_effect"; + } + + @Override + public String getDefaultFolder() + { + return "armor/chausses"; + } + +// @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/TinkersChausses.png"; + } + + @Override + public String[] getTraits() { + return new String[] {"armor","feet","chausses","lightarmor"}; + } + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getModel(String[] color,NBTTagCompound tags) + { + String[] textures = {this.getIconSuffix(2),this.getIconSuffix(0)}; + + return new ModelTinkersChausses(color, this.getDefaultFolder(), textures); + } + + @Override + public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) + { + return 5; + } + + @Override + public ArmorProperties getProperties(EntityLivingBase player, + ItemStack armor, DamageSource source, double damage, int slot) + { + ArmorProperties armorp = new ArmorProperties(0, 0.2, 100); //0.04 per half shirt + //((EntityPlayer)player).addChatComponentMessage(new ChatComponentText(Double.toString(damage))); + return armorp; + } +} diff --git a/src/main/java/lance5057/tDefense/armor/items/light/TinkersCoif.java b/src/main/java/lance5057/tDefense/armor/items/light/TinkersCoif.java new file mode 100644 index 0000000..47dbf27 --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/items/light/TinkersCoif.java @@ -0,0 +1,149 @@ +package lance5057.tDefense.armor.items.light; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import lance5057.tDefense.TinkersDefense; +import lance5057.tDefense.armor.ArmorCore; +import lance5057.tDefense.armor.parts.ClothMaterial; +import lance5057.tDefense.armor.renderers.cloth.ModelTinkersHood; +import lance5057.tDefense.armor.renderers.light.ModelTinkersCoif; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraftforge.common.ISpecialArmor.ArmorProperties; +import tconstruct.library.TConstructRegistry; +import tconstruct.library.tools.CustomMaterial; +import tconstruct.tools.TinkerTools; + +public class TinkersCoif extends ArmorCore +{ + public TinkersCoif() { + super(1,0); + this.setUnlocalizedName("tinkerscoif"); + this.maxReduction = 100; + this.reductionPercent = 0.08; + } + + @Override + public Item getHeadItem() + { + return TinkersDefense.partChainmaille; + } + + @Override + public Item getHandleItem() { + return TinkersDefense.partCloth; + } + + @Override + public Item getAccessoryItem() + { + return TinkerTools.toughRod; + } + + @Override + public int durabilityTypeAccessory() { + return 1; + } + + @Override + public float getRepairCost() { + return 1.0f; + } + + @Override + public float getDurabilityModifier() { + return 1f; + } + + @Override + public float getDamageModifier() { + return 1f; + } + + @Override + public int getPartAmount() { + return 3; + } + + @Override + public String getIconSuffix(int partType) + { + switch (partType) { + case 0: + return "_coif_chain"; + case 1: + return "_coif_chain_broken"; + case 2: + return "_coif_cloth"; + case 3: + return "_coif_circlet"; + default: + return ""; + } + } + + @Override + public String getEffectSuffix() + { + return "_coif_effect"; + } + + @Override + public String getDefaultFolder() + { + return "armor/coif"; + } + +// @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/TinkersCoif.png"; + } + + @Override + public String[] getTraits() { + return new String[] {"armor","head","coif","lightarmor"}; + } + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getModel(String[] color,NBTTagCompound tags) + { + String[] textures = {this.getIconSuffix(2),this.getIconSuffix(0),this.getIconSuffix(3)}; + + int HandleID = tags.getCompoundTag("InfiTool").getInteger("RenderHandle"); + + CustomMaterial newColor = TConstructRegistry.getCustomMaterial(HandleID, ClothMaterial.class); + color[0] = Integer.toHexString(newColor.color); + + return new ModelTinkersCoif(color, this.getDefaultFolder(), textures); + } + + @Override + public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) + { + return 2; + } + + @Override + public ArmorProperties getProperties(EntityLivingBase player, + ItemStack armor, DamageSource source, double damage, int slot) + { + ArmorProperties armorp = new ArmorProperties(0, 0.08, 100); //0.04 per half shirt + //((EntityPlayer)player).addChatComponentMessage(new ChatComponentText(Double.toString(damage))); + return armorp; + } +} diff --git a/src/main/java/lance5057/tDefense/armor/items/light/TinkersHalberd.java b/src/main/java/lance5057/tDefense/armor/items/light/TinkersHalberd.java new file mode 100644 index 0000000..739e6e0 --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/items/light/TinkersHalberd.java @@ -0,0 +1,135 @@ +package lance5057.tDefense.armor.items.light; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import lance5057.tDefense.TinkersDefense; +import lance5057.tDefense.armor.ArmorCore; +import lance5057.tDefense.armor.parts.ClothMaterial; +import lance5057.tDefense.armor.renderers.cloth.ModelTinkersHood; +import lance5057.tDefense.armor.renderers.light.ModelTinkersHalberd; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraftforge.common.ISpecialArmor.ArmorProperties; +import tconstruct.library.TConstructRegistry; +import tconstruct.library.tools.CustomMaterial; +import tconstruct.tools.TinkerTools; + +public class TinkersHalberd extends ArmorCore +{ + public TinkersHalberd() { + super(1,1); + this.setUnlocalizedName("tinkershalberd"); + this.maxReduction = 100; + this.reductionPercent = 0.24; + } + + @Override + public Item getHeadItem() + { + return TinkersDefense.partChainmaille; + } + + @Override + public Item getHandleItem() { + return TinkersDefense.partArmorplate; + } + + @Override + public Item getAccessoryItem() + { + return TinkersDefense.partRivet; + } + + @Override + public int durabilityTypeAccessory() { + return 1; + } + + @Override + public float getRepairCost() { + return 1.0f; + } + + @Override + public float getDurabilityModifier() { + return 1f; + } + + @Override + public float getDamageModifier() { + return 1f; + } + + @Override + public int getPartAmount() { + return 3; + } + + @Override + public String getIconSuffix(int partType) + { + switch (partType) { + case 0: + return "_halberd_chain"; + case 1: + return "_halberd_chain_broken"; + case 2: + return "_halberd_plate"; + case 3: + return "_halberd_rivet"; + default: + return ""; + } + } + + @Override + public String getEffectSuffix() + { + return "_halberd_effect"; + } + + @Override + public String getDefaultFolder() + { + return "armor/halberd"; + } + +// @Override +// public void onUpdate(ItemStack stack, World world, Entity entity, int par4, +// boolean par5) { +// super.onUpdate(stack, world, entity, par4, par5); +// +// } + + @Override + public String getArmorTexture(ItemStack stack, Entity entity, int slot, + String type) { + return "tinkersdefense:textures/armor/TinkersHalberd.png"; + } + + @Override + public String[] getTraits() { + return new String[] {"armor","chest","halberd","lightarmor"}; + } + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getModel(String[] color,NBTTagCompound tags) + { + String[] textures = {this.getIconSuffix(2),this.getIconSuffix(0),this.getIconSuffix(3)}; + + return new ModelTinkersHalberd(color, this.getDefaultFolder(), textures); + } + + @Override + public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) + { + return 6; + } +} diff --git a/src/main/java/lance5057/tDefense/armor/modifiers/ArmorMods.java b/src/main/java/lance5057/tDefense/armor/modifiers/ArmorMods.java new file mode 100644 index 0000000..1ee7b1f --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/modifiers/ArmorMods.java @@ -0,0 +1,52 @@ +package lance5057.tDefense.armor.modifiers; + +import java.util.List; + +import cpw.mods.fml.common.registry.GameRegistry; +import lance5057.tDefense.TinkersDefense; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import tconstruct.armor.TinkerArmor; +import tconstruct.library.TConstructRegistry; +import tconstruct.library.client.TConstructClientRegistry; +import tconstruct.library.crafting.ModifyBuilder; +import tconstruct.library.tools.ToolCore; + +public class ArmorMods +{ + Item protKit; + + public ArmorMods() + { + LoadItems(); + RegisterRecipes(); + RegisterModifiers(); + } + + public void LoadItems() + { + protKit = new Item() + .setUnlocalizedName("protectionkit") + .setCreativeTab(TinkersDefense.tabName) + .setTextureName("tinkersdefense:protectionkit"); + + GameRegistry.registerItem(protKit, "protectionkit"); + } + + public void RegisterRecipes() + { + GameRegistry.addShapelessRecipe(new ItemStack(protKit,1), new ItemStack(TinkersDefense.partArmorplate,1,2), TinkerArmor.heartCanister, Items.iron_ingot); + } + + public void RegisterModifiers() + { + ModifyBuilder.registerModifier(new modifierProtection(new ItemStack[] {new ItemStack(protKit,1)}, TinkersDefense.config.ArmorProtectionID, 1, "\u00A77")); + + for (ToolCore tool : TConstructRegistry.getToolMapping()) + { + TConstructClientRegistry.addEffectRenderMapping(tool, TinkersDefense.config.ArmorProtectionID, "tinker", "protection", true); + } + } +} diff --git a/src/main/java/lance5057/tDefense/armor/modifiers/modifierProtection.java b/src/main/java/lance5057/tDefense/armor/modifiers/modifierProtection.java new file mode 100644 index 0000000..bd781cd --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/modifiers/modifierProtection.java @@ -0,0 +1,98 @@ +package lance5057.tDefense.armor.modifiers; + +import java.util.Arrays; +import java.util.List; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import tconstruct.library.crafting.PatternBuilder; +import tconstruct.library.modifier.ItemModifier; +import tconstruct.library.tools.AbilityHelper; +import tconstruct.library.tools.ToolCore; +import tconstruct.modifiers.tools.ModInteger; + + +public class modifierProtection extends ModInteger +{ + String color; + String tooltipName = ""; + int initialIncrease; + int secondaryIncrease; + + public modifierProtection(ItemStack[] items, int effect, int increase, String c) + { + super(items, effect, "Protection", increase, c, "Protection"); + color = c; + } + + @Override + protected boolean canModify (ItemStack tool, ItemStack[] input) + { + if (tool.getItem() instanceof ToolCore) + { + List list = Arrays.asList(((ToolCore)tool.getItem()).getTraits()); + if (list.contains("heavyarmor") || list.contains("lightarmor")) + { + return true; + } + } + return false; + } + + @Override + public void modify (ItemStack[] input, ItemStack tool) + { + NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); + if (tags.hasKey(key)) + { + int increase = tags.getInteger(key); + increase += secondaryIncrease; + tags.setInteger(key, increase); + } + else + { + tags.setInteger(key, initialIncrease); + } + + int modifiers = tags.getInteger("Modifiers"); + modifiers -= 1; + tags.setInteger("Modifiers", modifiers); + + int prot = tags.getInteger("Protection"); + prot += 1; + tags.setInteger("Protection", prot); + + addToolTip(tool, color + tooltipName, color + key); + } + + protected int addToolTip (ItemStack tool, String tooltip, String modifierTip) + { + NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); + int tipNum = 0; + while (true) + { + tipNum++; + String tip = "Tooltip" + tipNum; + if (!tags.hasKey(tip)) + { + tags.setString(tip, ""); + String modTip = "ModifierTip" + tipNum; + String tag = tags.getString(modTip); + tags.setString(modTip, getProperName(modifierTip, tag)); + return tipNum; + } + else + { + String modTip = "ModifierTip" + tipNum; + String tag = tags.getString(modTip); + if (tag.contains(modifierTip)) + { + tags.setString(tip, ""); + tag = tags.getString(modTip); + tags.setString(modTip, getProperName(modifierTip, tag)); + return tipNum; + } + } + } + } +}
\ No newline at end of file diff --git a/src/main/java/lance5057/tDefense/armor/renderers/cloth/ModelTinkersHood.java b/src/main/java/lance5057/tDefense/armor/renderers/cloth/ModelTinkersHood.java new file mode 100644 index 0000000..0ae93c0 --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/renderers/cloth/ModelTinkersHood.java @@ -0,0 +1,82 @@ +package lance5057.tDefense.armor.renderers.cloth; + +import lance5057.tDefense.TinkersDefense; + +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; + +/** + * ModelBiped - Either Mojang or a mod author + * Created using Tabula 4.1.1 + */ +public class ModelTinkersHood extends ModelBiped { + public ModelRenderer Hood; + public ModelRenderer Flop; + + public String[] colors; + + public String[] textures; + public String defaultFolder; + + public ModelTinkersHood(String[] colors, String defaultFolder, String[] textures) + { + super(1.1f, 0, 64,64); + + this.textureWidth = 64; + this.textureHeight = 64; + + this.colors = colors; + this.textures = textures; + this.defaultFolder = defaultFolder; + + this.Hood = new ModelRenderer(this, 0, 44); + this.Hood.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Hood.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 0.5F); + this.bipedHead.addChild(this.Hood); + + this.Flop = new ModelRenderer(this, 0, 32); + this.Flop.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Flop.addBox(-4.0F, -9.6F, 0.3F, 8, 8, 4, 0.0F); + this.setRotateAngle(Flop, -0.4553564018453205F, 0.0F, 0.0F); + this.bipedHead.addChild(this.Flop); + + this.bipedHeadwear.isHidden = true; + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + GL11.glPushMatrix(); + for(int i = 0; i<3; i++) + { + GL11.glPushMatrix(); + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation("tinkersdefense:textures/" + defaultFolder + "/" + textures[i] + ".png")); + + float size = 2.25f; + GL11.glScalef(1.5F / size, 1.5F / size, 1.5F / size); + GL11.glTranslatef(0.0F, 0F*f5, 0.0F); + + int[] intColors = TinkersDefense.hexToRGB(colors[i]); + GL11.glColor3d((float)intColors[0]/255, (float)intColors[1]/255, (float)intColors[2]/255); + + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + GL11.glPopMatrix(); + } + GL11.glPopMatrix(); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/src/main/java/lance5057/tDefense/armor/renderers/cloth/ModelTinkersRobe.java b/src/main/java/lance5057/tDefense/armor/renderers/cloth/ModelTinkersRobe.java new file mode 100644 index 0000000..63634c8 --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/renderers/cloth/ModelTinkersRobe.java @@ -0,0 +1,127 @@ +package lance5057.tDefense.armor.renderers.cloth; + +import lance5057.tDefense.TinkersDefense; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.FMLClientHandler; + +/** + * ClothRobes - Undefined + * Created using Tabula 4.1.1 + */ +public class ModelTinkersRobe extends ModelBiped { + public ModelRenderer Left; + public ModelRenderer Right; + public ModelRenderer RightBack; + public ModelRenderer LeftFront; + public ModelRenderer RightFront; + public ModelRenderer Belt; + public ModelRenderer LeftBack; + + public String[] colors; + + public String[] textures; + public String defaultFolder; + + public ModelTinkersRobe(String[] colors, String defaultFolder, String[] textures) + { + super(1f, 0, 64,64); + + this.colors = colors; + this.textures = textures; + this.defaultFolder = defaultFolder; + + this.textureWidth = 64; + this.textureHeight = 64; + + this.Right = new ModelRenderer(this, 18, 41); + this.Right.mirror = true; + this.Right.setRotationPoint(0F, 0F, 0F); + this.Right.addBox(-2.5F, 0.0F, -2.5F, 6, 11, 5, 0.01F); + this.setRotateAngle(Right, 0.0F, 0.0F, 0.08726646259971647F); + this.bipedRightLeg.addChild(this.Right); + + this.RightBack = new ModelRenderer(this, 40, 43); + this.RightBack.mirror = true; + this.RightBack.setRotationPoint(0F, 0F, 0F); + this.RightBack.addBox(-2.5F, 0.27F, -0.6F, 6, 11, 3, 0.0F); + this.setRotateAngle(RightBack, 0.2617993877991494F, 0.0F, 0.08726646259971647F); + this.bipedRightLeg.addChild(this.RightBack); + + this.LeftBack = new ModelRenderer(this, 40, 43); + this.LeftBack.setRotationPoint(0F, 0F, 0F); + this.LeftBack.addBox(-3.5F, 0.27F, -0.6F, 6, 11, 3, 0.0F); + this.setRotateAngle(LeftBack, 0.2617993877991494F, 0.0F, -0.08726646259971647F); + this.bipedLeftLeg.addChild(this.LeftBack); + + this.Belt = new ModelRenderer(this, 0, 32); + this.Belt.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Belt.addBox(-6.8F, 10.0F, -3.0F, 10, 3, 6, 0.0F); + this.setRotateAngle(Belt, 0.0F, 0.0F, -0.13962634015954636F); + this.bipedBody.addChild(this.Belt); + + this.Left = new ModelRenderer(this, 18, 41); + this.Left.setRotationPoint(0F, 0F, 0F); + this.Left.addBox(-3.5F, 0.0F, -2.5F, 6, 11, 5, 0.01F); + this.setRotateAngle(Left, 0.0F, 0.0F, -0.08726646259971647F); + this.bipedLeftLeg.addChild(this.Left); + + this.LeftFront = new ModelRenderer(this, 0, 43); + this.LeftFront.setRotationPoint(0F, 0F, 0F); + this.LeftFront.addBox(-3.5F, 0.27F, -2.4F, 6, 11, 3, 0.0F); + this.setRotateAngle(LeftFront, -0.2617993877991494F, 0.0F, -0.08726646259971647F); + this.bipedLeftLeg.addChild(this.LeftFront); + + this.RightFront = new ModelRenderer(this, 0, 43); + this.RightFront.mirror = true; + this.RightFront.setRotationPoint(0F, 0F, 0F); + this.RightFront.addBox(-2.5F, 0.27F, -2.4F, 6, 11, 3, 0.0F); + this.setRotateAngle(RightFront, -0.2617993877991494F, 0.0F, 0.08726646259971647F); + this.bipedRightLeg.addChild(this.RightFront); + + //this.bipedBody.isHidden = true; + this.bipedHead.isHidden = true; + this.bipedHeadwear.isHidden = true; + //this.bipedRightLeg.isHidden = true; + //this.bipedLeftLeg.isHidden = true; + this.bipedRightArm.isHidden = true; + this.bipedLeftArm.isHidden = true; + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + GL11.glPushMatrix(); + for(int i = 0; i<2; i++) + { + GL11.glPushMatrix(); + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation("tinkersdefense:textures/" + defaultFolder + "/" + textures[i] + ".png")); + + float size = 1.45f; + GL11.glScalef(1.0F / size, 1.0F / size, 1.0F / size); + GL11.glTranslatef(0F, -1.5F*f5, -0F); + + int[] intColors = TinkersDefense.hexToRGB(colors[i]); + GL11.glColor3d((float)intColors[0]/255, (float)intColors[1]/255, (float)intColors[2]/255); + + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + GL11.glPopMatrix(); + } + GL11.glPopMatrix(); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/src/main/java/lance5057/tDefense/armor/renderers/cloth/ModelTinkersShawl.java b/src/main/java/lance5057/tDefense/armor/renderers/cloth/ModelTinkersShawl.java new file mode 100644 index 0000000..8ddb70b --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/renderers/cloth/ModelTinkersShawl.java @@ -0,0 +1,140 @@ +package lance5057.tDefense.armor.renderers.cloth; + +import lance5057.tDefense.TinkersDefense; + +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; + +/** + * ModelBiped - Either Mojang or a mod author + * Created using Tabula 4.1.1 + */ +public class ModelTinkersShawl extends ModelBiped { + public ModelRenderer ShawlLeft1; + public ModelRenderer ShawlLeft2; + public ModelRenderer ShawlRight1; + public ModelRenderer ShawlRight2; + public ModelRenderer Button; + public ModelRenderer TopLeft; + public ModelRenderer TopRight; + public ModelRenderer ArmLeft; + public ModelRenderer ArmRight; + public ModelRenderer Chest; + + public String[] colors; + + public String[] textures; + public String defaultFolder; + + public ModelTinkersShawl(String[] colors, String defaultFolder, String[] textures) + { + super(1f, 0, 64,64); + + this.colors = colors; + this.textures = textures; + this.defaultFolder = defaultFolder; + + this.textureWidth = 64; + this.textureHeight = 64; + + this.ArmLeft = new ModelRenderer(this, 48, 48); + this.ArmLeft.mirror = true; + this.ArmLeft.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ArmLeft.addBox(-1.0F, -2.0F, -2.0F, 4, 12, 4, 0.0F); + this.bipedLeftArm.addChild(this.ArmLeft); + + this.ArmRight = new ModelRenderer(this, 48, 48); + this.ArmRight.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ArmRight.addBox(-3.0F, -2.0F, -2.0F, 4, 12, 4, 0.0F); + this.bipedRightArm.addChild(this.ArmRight); + + this.Chest = new ModelRenderer(this, 40, 32); + this.Chest.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Chest.addBox(-4.0F, 0.0F, -2.0F, 8, 12, 4, 0.0F); + this.bipedBody.addChild(this.Chest); + + this.TopRight = new ModelRenderer(this, 0, 52); + this.TopRight.mirror = true; + this.TopRight.setRotationPoint(0.0F, 0.0F, 0.0F); + this.TopRight.addBox(-3.5F, -2.3F, -3.0F, 9, 3, 6, -0.01F); + this.bipedRightArm.addChild(this.TopRight); + + this.Button = new ModelRenderer(this, 0, 61); + this.Button.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Button.addBox(0.0F, 0.0F, -3.5F, 2, 2, 1, 0.0F); + this.setRotateAngle(Button, 0.0F, 0.0F, 0.7853981633974483F); + this.bipedBody.addChild(this.Button); + + this.TopLeft = new ModelRenderer(this, 0, 52); + this.TopLeft.setRotationPoint(0.0F, 0.0F, 0.0F); + this.TopLeft.addBox(-5.5F, -2.3F, -3.0F, 9, 3, 6, -0.01F); + this.bipedLeftArm.addChild(this.TopLeft); + + this.ShawlRight1 = new ModelRenderer(this, 0, 32); + this.ShawlRight1.mirror = true; + this.ShawlRight1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ShawlRight1.addBox(-4.0F, -1.3F, -3.0F, 6, 5, 6, 0.0F); + this.setRotateAngle(ShawlRight1, 0.0F, 0.0F, 0.2617993877991494F); + this.bipedRightArm.addChild(this.ShawlRight1); + + this.ShawlRight2 = new ModelRenderer(this, 0, 43); + this.ShawlRight2.mirror = true; + this.ShawlRight2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ShawlRight2.addBox(-1.9F, 0.8F, -3.0F, 6, 3, 6, 0.01F); + this.setRotateAngle(ShawlRight2, 0.0F, 0.0F, -0.6981317007977318F); + this.bipedRightArm.addChild(this.ShawlRight2); + + this.ShawlLeft1 = new ModelRenderer(this, 0, 32); + this.ShawlLeft1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ShawlLeft1.addBox(-2.0F, -1.3F, -3.0F, 6, 5, 6, 0.0F); + this.setRotateAngle(ShawlLeft1, 0.0F, 0.0F, -0.2617993877991494F); + this.bipedLeftArm.addChild(this.ShawlLeft1); + + this.ShawlLeft2 = new ModelRenderer(this, 0, 43); + this.ShawlLeft2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ShawlLeft2.addBox(-4.1F, 0.8F, -3.0F, 6, 3, 6, 0.1F); + this.setRotateAngle(ShawlLeft2, 0.0F, 0.0F, 0.6981317007977318F); + this.bipedLeftArm.addChild(this.ShawlLeft2); + + this.bipedHead.isHidden = true; + this.bipedHeadwear.isHidden = true; + this.bipedCloak.isHidden = true; + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + GL11.glPushMatrix(); + for(int i = 0; i<3; i++) + { + GL11.glPushMatrix(); + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation("tinkersdefense:textures/" + defaultFolder + "/" + textures[i] + ".png")); + + float size = 1.5f; + GL11.glScalef(1.0F / size, 1.0F / size, 1.0F / size); + GL11.glTranslatef(0F, -0F*f5, -0F); + + int[] intColors = TinkersDefense.hexToRGB(colors[i]); + GL11.glColor3d((float)intColors[0]/255, (float)intColors[1]/255, (float)intColors[2]/255); + + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + GL11.glPopMatrix(); + } + GL11.glPopMatrix(); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersBreastplate.java b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersBreastplate.java index 7c99478..d1c3fd5 100644 --- a/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersBreastplate.java +++ b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersBreastplate.java @@ -100,7 +100,7 @@ public class ModelTinkersBreastplate extends ModelBiped this.setRotateAngle(PauldronL, 0.0F, -0.0F, -0.4363323129985824F); this.bipedLeftArm.addChild(this.PauldronL); - this.ArmR.offsetX = this.ArmR.offsetX + 0.04f; + // this.ArmR.offsetX = this.ArmR.offsetX + 0.04f; this.bipedHead.isHidden = true; this.bipedHeadwear.isHidden = true; diff --git a/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersHelm.java b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersHelm.java index c210df7..5c87cdb 100644 --- a/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersHelm.java +++ b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersHelm.java @@ -68,9 +68,9 @@ public class ModelTinkersHelm extends ModelBiped FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation("tinkersdefense:textures/" + defaultFolder + "/" + textures[i] + ".png")); - float size = 1.75f; + float size = 2.5f; GL11.glScalef(1.5F / size, 1.5F / size, 1.5F / size); - GL11.glTranslatef(0.0F, -12F * f5, 0.0F); + GL11.glTranslatef(0.0F, -0F * f5, 0.0F); int[] intColors = TinkersDefense.hexToRGB(colors[i]); GL11.glColor3d((float)intColors[0]/255, (float)intColors[1]/255, (float)intColors[2]/255); diff --git a/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersSabatons.java b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersSabatons.java index 0d7fd15..e8f8963 100644 --- a/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersSabatons.java +++ b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersSabatons.java @@ -134,9 +134,9 @@ public class ModelTinkersSabatons extends ModelBiped FMLClientHandler.instance().getClient().renderEngine.bindTexture(texture); - float size =0.75f; + float size =1.5f; GL11.glScalef(1.0F / size, 1.0F / size, 1.0F / size); - GL11.glTranslatef(0.0F, -12.4F*f5, 0.0F); + GL11.glTranslatef(0.0F, -1F*f5, 0.0F); int[] intColors = TinkersDefense.hexToRGB(colors[i]); GL11.glColor3d((float)intColors[0]/255, (float)intColors[1]/255, (float)intColors[2]/255); diff --git a/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersBoots.java b/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersBoots.java new file mode 100644 index 0000000..9144d38 --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersBoots.java @@ -0,0 +1,91 @@ +package lance5057.tDefense.armor.renderers.light; + +import lance5057.tDefense.TinkersDefense; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.FMLClientHandler; + +/** + * ModelBiped - Either Mojang or a mod author + * Created using Tabula 4.1.1 + */ +public class ModelTinkersBoots extends ModelBiped +{ + public ModelRenderer LegR; + public ModelRenderer LegL; + public ModelRenderer FootL; + public ModelRenderer FootR; + + public String[] colors; + + public String[] textures; + public String defaultFolder; + + public ModelTinkersBoots(String[] colors, String defaultFolder, String[] textures) { + super(1.1f, 0, 64,64); + + this.textureWidth = 64; + this.textureHeight = 64; + + this.colors = colors; + this.textures = textures; + this.defaultFolder = defaultFolder; + + this.FootL = new ModelRenderer(this, 0, 43); + 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(this.FootL); + + 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.0F); + this.bipedLeftLeg.addChild(this.LegL); + + this.FootR = new ModelRenderer(this, 0, 43); + 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(this.FootR); + + 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.0F); + this.bipedRightLeg.addChild(this.LegR); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + GL11.glPushMatrix(); + for(int i = 0; i<3; i++) + { + GL11.glPushMatrix(); + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation("tinkersdefense:textures/" + defaultFolder + "/" + textures[i] + ".png")); + + float size =1.45f; + GL11.glScalef(1.0F / size, 1.0F / size, 1.0F / size); + GL11.glTranslatef(0.0F, -1F*f5, 0.0F); + + int[] intColors = TinkersDefense.hexToRGB(colors[i]); + GL11.glColor3d((float)intColors[0]/255, (float)intColors[1]/255, (float)intColors[2]/255); + + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + GL11.glPopMatrix(); + } + GL11.glPopMatrix(); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersChausses.java b/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersChausses.java new file mode 100644 index 0000000..c9326e7 --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersChausses.java @@ -0,0 +1,117 @@ +package lance5057.tDefense.armor.renderers.light; + +import lance5057.tDefense.TinkersDefense; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.FMLClientHandler; + +/** + * ModelBiped - Either Mojang or a mod author + * Created using Tabula 4.1.1 + */ +public class ModelTinkersChausses extends ModelBiped { + public ModelRenderer LegL; + public ModelRenderer FrontL; + public ModelRenderer HipGuardL; + public ModelRenderer HipGuardR; + public ModelRenderer LegR; + public ModelRenderer BackL; + public ModelRenderer FrontR; + public ModelRenderer BackR; + + public String[] colors; + + public String[] textures; + public String defaultFolder; + + public ModelTinkersChausses(String[] colors, String defaultFolder, String[] textures) { + super(1.1f, 0, 64,64); + + this.textureWidth = 64; + this.textureHeight = 64; + + this.colors = colors; + this.textures = textures; + this.defaultFolder = defaultFolder; + + this.HipGuardR = new ModelRenderer(this, 10, 37); + this.HipGuardR.setRotationPoint(0F, 0F, 0F); + this.HipGuardR.addBox(-2.5F, 0.0F, -2.5F, 4, 6, 5, 0.0F); + this.setRotateAngle(HipGuardR, 0.0F, 0.0F, 0.17453292519943295F); + this.bipedRightLeg.addChild(this.HipGuardR); + + this.LegL = new ModelRenderer(this, 0, 48); + this.LegL.setRotationPoint(0F, 0F, 0F); + this.LegL.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, 0.0F); + this.bipedLeftLeg.addChild(this.LegL); + + this.BackR = new ModelRenderer(this, 0, 40); + this.BackR.setRotationPoint(0F, 0F, 0F); + this.BackR.addBox(-0.1F, 0.0F, 1.7F, 4, 7, 1, 0.01F); + this.bipedRightLeg.addChild(this.BackR); + + this.FrontL = new ModelRenderer(this, 0, 40); + this.FrontL.setRotationPoint(0F, 0F, 0F); + this.FrontL.addBox(-4.0F, 0.0F, -2.7F, 4, 7, 1, 0.0F); + this.bipedLeftLeg.addChild(this.FrontL); + + this.LegR = new ModelRenderer(this, 0, 48); + this.LegR.setRotationPoint(0F, 0F, 0F); + this.LegR.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, 0.0F); + this.bipedRightLeg.addChild(this.LegR); + + this.BackL = new ModelRenderer(this, 0, 40); + this.BackL.setRotationPoint(0F, 0F, 0F); + this.BackL.addBox(-4.0F, 0.0F, 1.7F, 4, 7, 1, 0.0F); + this.bipedLeftLeg.addChild(this.BackL); + + this.FrontR = new ModelRenderer(this, 0, 40); + this.FrontR.setRotationPoint(0F, 0F, 0F); + this.FrontR.addBox(-0.1F, 0.0F, -2.7F, 4, 7, 1, 0.01F); + this.bipedRightLeg.addChild(this.FrontR); + + this.HipGuardL = new ModelRenderer(this, 10, 37); + this.HipGuardL.mirror = true; + this.HipGuardL.setRotationPoint(0F, 0F, 0F); + this.HipGuardL.addBox(-1.5F, 0.0F, -2.5F, 4, 6, 5, 0.0F); + this.setRotateAngle(HipGuardL, 0.0F, 0.0F, -0.17453292519943295F); + this.bipedLeftLeg.addChild(this.HipGuardL); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + GL11.glPushMatrix(); + for(int i = 0; i<2; i++) + { + GL11.glPushMatrix(); + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation("tinkersdefense:textures/" + defaultFolder + "/" + textures[i] + ".png")); + + float size =1.5f; + GL11.glScalef(1.0F / size, 1.0F / size, 1.0F / size); + GL11.glTranslatef(0F, -1F*f5, -0F); + + int[] intColors = TinkersDefense.hexToRGB(colors[i]); + GL11.glColor3d((float)intColors[0]/255, (float)intColors[1]/255, (float)intColors[2]/255); + + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + GL11.glPopMatrix(); + } + GL11.glPopMatrix(); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersCoif.java b/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersCoif.java new file mode 100644 index 0000000..0589ccc --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersCoif.java @@ -0,0 +1,78 @@ +package lance5057.tDefense.armor.renderers.light; + +import lance5057.tDefense.TinkersDefense; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.FMLClientHandler; + +/** + * ModelBiped - Either Mojang or a mod author + * Created using Tabula 4.1.1 + */ +public class ModelTinkersCoif extends ModelBiped { + public ModelRenderer Coif; + public ModelRenderer Head; + + public String[] colors; + + public String[] textures; + public String defaultFolder; + + public ModelTinkersCoif(String[] colors, String defaultFolder, String[] textures) { + super(1.1f, 0, 64,64); + + this.textureWidth = 64; + this.textureHeight = 64; + + this.colors = colors; + this.textures = textures; + this.defaultFolder = defaultFolder; + + this.Head = new ModelRenderer(this, 32, 48); + this.Head.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Head.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 0.0F); + this.bipedHead.addChild(this.Head); + + this.Coif = new ModelRenderer(this, 0, 46); + 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(this.Coif); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + GL11.glPushMatrix(); + for(int i = 0; i<3; i++) + { + GL11.glPushMatrix(); + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation("tinkersdefense:textures/" + defaultFolder + "/" + textures[i] + ".png")); + + float size = 2.25f; + GL11.glScalef(1.5F / size, 1.5F / size, 1.5F / size); + GL11.glTranslatef(0.0F, 0F*f5, 0.0F); + + int[] intColors = TinkersDefense.hexToRGB(colors[i]); + GL11.glColor3d((float)intColors[0]/255, (float)intColors[1]/255, (float)intColors[2]/255); + + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + GL11.glPopMatrix(); + } + GL11.glPopMatrix(); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersHalberd.java b/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersHalberd.java new file mode 100644 index 0000000..4d4b46b --- /dev/null +++ b/src/main/java/lance5057/tDefense/armor/renderers/light/ModelTinkersHalberd.java @@ -0,0 +1,130 @@ +package lance5057.tDefense.armor.renderers.light; + +import lance5057.tDefense.TinkersDefense; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.FMLClientHandler; + +/** + * ModelBiped - Either Mojang or a mod author + * Created using Tabula 4.1.1 + */ +public class ModelTinkersHalberd extends ModelBiped { + public ModelRenderer Pauldron1; + public ModelRenderer Pauldron2; + public ModelRenderer Pauldron3; + public ModelRenderer ArmR; + public ModelRenderer Body; + public ModelRenderer Pauldron1_1; + public ModelRenderer Pauldron2_1; + public ModelRenderer Pauldron3_1; + public ModelRenderer ArmL; + + public String[] colors; + + public String[] textures; + public String defaultFolder; + + public ModelTinkersHalberd(String[] colors, String defaultFolder, String[] textures) { + super(1.1f, 0, 64,64); + + this.textureWidth = 64; + this.textureHeight = 64; + + this.colors = colors; + this.textures = textures; + this.defaultFolder = defaultFolder; + + this.Pauldron2_1 = new ModelRenderer(this, 0, 32); + this.Pauldron2_1.mirror = true; + this.Pauldron2_1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron2_1.addBox(-0.7F, -2.7F, -2.0F, 3, 3, 4, 0.1F); + this.setRotateAngle(Pauldron2_1, 0.0F, 0.0F, 0.2617993877991494F); + this.bipedLeftArm.addChild(this.Pauldron2_1); + + this.Body = new ModelRenderer(this, 16, 48); + this.Body.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Body.addBox(-4.0F, 0.0F, -2.0F, 8, 12, 4, 0.0F); + this.bipedBody.addChild(this.Body); + + this.Pauldron1_1 = new ModelRenderer(this, 30, 32); + this.Pauldron1_1.mirror = true; + this.Pauldron1_1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron1_1.addBox(0.5F, -1.9F, -2.5F, 3, 4, 5, 0.0F); + this.setRotateAngle(Pauldron1_1, 0.0F, 0.0F, -0.2617993877991494F); + this.bipedLeftArm.addChild(this.Pauldron1_1); + + this.Pauldron3 = new ModelRenderer(this, 16, 32); + this.Pauldron3.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron3.addBox(-1.2F, -1.5F, -2.5F, 2, 2, 5, 0.1F); + this.setRotateAngle(Pauldron3, 0.0F, 0.0F, -0.2617993877991494F); + this.bipedRightArm.addChild(this.Pauldron3); + + this.ArmL = new ModelRenderer(this, 0, 48); + this.ArmL.mirror = true; + this.ArmL.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ArmL.addBox(-1.0F, -2.0F, -2.0F, 4, 12, 4, 0.0F); + this.bipedLeftArm.addChild(this.ArmL); + + this.Pauldron1 = new ModelRenderer(this, 30, 32); + this.Pauldron1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron1.addBox(-3.5F, -1.9F, -2.5F, 3, 4, 5, 0.0F); + this.setRotateAngle(Pauldron1, 0.0F, 0.0F, 0.2617993877991494F); + this.bipedRightArm.addChild(this.Pauldron1); + + this.Pauldron3_1 = new ModelRenderer(this, 16, 32); + this.Pauldron3_1.mirror = true; + this.Pauldron3_1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron3_1.addBox(-0.8F, -1.5F, -2.5F, 2, 2, 5, 0.1F); + this.setRotateAngle(Pauldron3_1, 0.0F, 0.0F, 0.2617993877991494F); + this.bipedLeftArm.addChild(this.Pauldron3_1); + + this.Pauldron2 = new ModelRenderer(this, 0, 32); + this.Pauldron2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.Pauldron2.addBox(-2.3F, -2.7F, -2.0F, 3, 3, 4, 0.1F); + this.setRotateAngle(Pauldron2, 0.0F, 0.0F, -0.2617993877991494F); + this.bipedRightArm.addChild(this.Pauldron2); + + this.ArmR = new ModelRenderer(this, 0, 48); + this.ArmR.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ArmR.addBox(-3.0F, -2.0F, -2.0F, 4, 12, 4, 0.0F); + this.bipedRightArm.addChild(this.ArmR); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + GL11.glPushMatrix(); + for(int i = 0; i<3; i++) + { + GL11.glPushMatrix(); + + FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation("tinkersdefense:textures/" + defaultFolder + "/" + textures[i] + ".png")); + + float size = 2.25f; + GL11.glScalef(1.5F / size, 1.5F / size, 1.5F / size); + GL11.glTranslatef(0.0F, 0F*f5, 0.0F); + + int[] intColors = TinkersDefense.hexToRGB(colors[i]); + GL11.glColor3d((float)intColors[0]/255, (float)intColors[1]/255, (float)intColors[2]/255); + + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + GL11.glPopMatrix(); + } + GL11.glPopMatrix(); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/src/main/java/lance5057/tDefense/core/TD_Patterns.java b/src/main/java/lance5057/tDefense/core/TD_Patterns.java index 66cbefa..7b33e18 100644 --- a/src/main/java/lance5057/tDefense/core/TD_Patterns.java +++ b/src/main/java/lance5057/tDefense/core/TD_Patterns.java @@ -9,7 +9,7 @@ import tconstruct.tools.items.Pattern; import tconstruct.util.Reference; public class TD_Patterns extends Pattern { - private static final String[] patternName = new String[] {"rivets","clasp","armorplate","chainmaille"}; + private static final String[] patternName = new String[] {"rivets","clasp","armorplate","cloth","chainmaille"}; public TD_Patterns(String patternType, String name) { super(patternName, getPatternNames(patternName, patternType), "patterns/"); diff --git a/src/main/java/lance5057/tDefense/core/blocks/ore/TD_Ore.java b/src/main/java/lance5057/tDefense/core/blocks/ore/TD_Ore.java new file mode 100644 index 0000000..708abbe --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/blocks/ore/TD_Ore.java @@ -0,0 +1,39 @@ +package lance5057.tDefense.core.blocks.ore; + +import java.util.Random; + +import lance5057.tDefense.Reference; +import lance5057.tDefense.TinkersDefense; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.item.Item; + +public class TD_Ore extends Block +{ + Item drops; + public TD_Ore(Material mat, String name, Item drop) + { + super(mat); + this.setBlockName(name + "ore"); + this.setBlockTextureName(Reference.MOD_ID + ":" + name + "ore"); + this.setCreativeTab(TinkersDefense.tabName); + this.setStepSound(soundTypeStone); + this.setHardness(10.0f); + this.setResistance(20.0f); + setHarvestLevel("pickaxe",2); + + drops = drop; + } + + @Override + public Item getItemDropped(int metadata, Random random, int fortune) { + return drops; + } + + @Override + public int quantityDropped(int meta, int fortune, Random random) + { + int rand = random.nextInt(fortune + 1) + 1; + return rand; + } +} diff --git a/src/main/java/lance5057/tDefense/core/events/TDEventHandler.java b/src/main/java/lance5057/tDefense/core/events/TDEventHandler.java index 845419c..51612a6 100644 --- a/src/main/java/lance5057/tDefense/core/events/TDEventHandler.java +++ b/src/main/java/lance5057/tDefense/core/events/TDEventHandler.java @@ -6,6 +6,7 @@ import mods.battlegear2.api.PlayerEventChild.ShieldBlockEvent; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityFireball; import net.minecraft.entity.projectile.EntityLargeFireball; import net.minecraft.item.ItemStack; @@ -15,12 +16,18 @@ import net.minecraft.potion.PotionEffect; import net.minecraft.util.Vec3; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.living.LivingDropsEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.event.entity.living.LivingSpawnEvent; import tconstruct.library.TConstructRegistry; import tconstruct.library.event.PartBuilderEvent; import tconstruct.library.tools.BowstringMaterial; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.eventhandler.SubscribeEvent; +@Optional.InterfaceList({ + @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.PlayerEventChild.ShieldBlockEvent"), +}) + public class TDEventHandler { public TDEventHandler() { @@ -47,6 +54,7 @@ public class TDEventHandler { } @SubscribeEvent + @Optional.Method(modid = "battlegear2") public void TD_ShieldBlock(ShieldBlockEvent event) { NBTTagCompound tags = event.shield.getTagCompound().getCompoundTag("InfiTool"); @@ -103,20 +111,26 @@ public class TDEventHandler { } } } - - @SubscribeEvent - public void dropEasterEggs(LivingDropsEvent event) - { - if(!event.entityLiving.worldObj.isRemote) - { - if(event.entityLiving.getHeldItem() != null) - if(event.entityLiving.getHeldItem().getItem() == TinkersDefense.item_RedMintcane) - event.drops.add(new EntityItem(event.entityLiving.worldObj, event.entityLiving.posX, event.entityLiving.posY, event.entityLiving.posZ, new ItemStack(TinkersDefense.item_RedMintcane,1,0))); - else - event.drops.add(new EntityItem(event.entityLiving.worldObj, event.entityLiving.posX, event.entityLiving.posY, event.entityLiving.posZ, new ItemStack(TinkersDefense.item_GreenMintcane,1,0))); - } - } +// public void TD_LivingHurt(LivingHurtEvent event) +// { +// if(event.entityLiving instanceof EntityPlayer) +// event.entityLiving +// } + +// @SubscribeEvent +// public void dropEasterEggs(LivingDropsEvent event) +// { +// if(!event.entityLiving.worldObj.isRemote) +// { +// if(event.entityLiving.getHeldItem() != null) +// if(event.entityLiving.getHeldItem().getItem() == TinkersDefense.item_RedMintcane) +// event.drops.add(new EntityItem(event.entityLiving.worldObj, event.entityLiving.posX, event.entityLiving.posY, event.entityLiving.posZ, new ItemStack(TinkersDefense.item_RedMintcane,1,0))); +// if(event.entityLiving.getHeldItem().getItem() == TinkersDefense.item_GreenMintcane) +// event.drops.add(new EntityItem(event.entityLiving.worldObj, event.entityLiving.posX, event.entityLiving.posY, event.entityLiving.posZ, new ItemStack(TinkersDefense.item_GreenMintcane,1,0))); +// +// } +// } @SubscribeEvent public void giveCandyToUndead(LivingSpawnEvent event) diff --git a/src/main/java/lance5057/tDefense/core/items/RawGem.java b/src/main/java/lance5057/tDefense/core/items/RawGem.java new file mode 100644 index 0000000..ed08b32 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/items/RawGem.java @@ -0,0 +1,16 @@ +package lance5057.tDefense.core.items; + +import lance5057.tDefense.Reference; +import lance5057.tDefense.TinkersDefense; +import net.minecraft.item.Item; + +public class RawGem extends Item +{ + public RawGem(String name) + { + this.setCreativeTab(TinkersDefense.tabName); + this.setMaxStackSize(64); + this.setUnlocalizedName("raw" + name); + this.setTextureName(Reference.MOD_ID + ":raw" + name); + } +} diff --git a/src/main/java/lance5057/tDefense/core/tools/HeaterShield.java b/src/main/java/lance5057/tDefense/core/tools/HeaterShield.java index e35ba7c..d349b59 100644 --- a/src/main/java/lance5057/tDefense/core/tools/HeaterShield.java +++ b/src/main/java/lance5057/tDefense/core/tools/HeaterShield.java @@ -126,26 +126,6 @@ public class HeaterShield extends Shield { } @Override - @SideOnly(Side.CLIENT) - public void addInformation(ItemStack par1ItemStack, - EntityPlayer par2EntityPlayer, List par3List, boolean par4) { - NBTTagCompound tags = par1ItemStack.getTagCompound(); - super.addInformation(par1ItemStack, par2EntityPlayer, par3List, par4); - par3List.add(""); - par3List.add(EnumChatFormatting.DARK_GREEN - + ItemStack.field_111284_a - .format(1F / (10f / (tags.getCompoundTag("InfiTool") - .getInteger("MiningSpeed") / 1.5f)) / 20F) - + StatCollector.translateToLocal("attribute.shield.block.time")); - int arrowCount = getArrowCount(par1ItemStack); - if (arrowCount > 0) { - par3List.add(String.format("%s%s %s", EnumChatFormatting.GOLD, - arrowCount, StatCollector - .translateToLocal("attribute.shield.arrow.count"))); - } - } - - @Override protected String getHarvestType() { return "shield"; } diff --git a/src/main/java/lance5057/tDefense/core/tools/RoundShield.java b/src/main/java/lance5057/tDefense/core/tools/RoundShield.java index b25ae1a..f6eff84 100644 --- a/src/main/java/lance5057/tDefense/core/tools/RoundShield.java +++ b/src/main/java/lance5057/tDefense/core/tools/RoundShield.java @@ -119,26 +119,6 @@ public class RoundShield extends Shield { } @Override - @SideOnly(Side.CLIENT) - public void addInformation(ItemStack par1ItemStack, - EntityPlayer par2EntityPlayer, List par3List, boolean par4) { - NBTTagCompound tags = par1ItemStack.getTagCompound(); - super.addInformation(par1ItemStack, par2EntityPlayer, par3List, par4); - par3List.add(""); - par3List.add(EnumChatFormatting.DARK_GREEN - + ItemStack.field_111284_a - .format(1F / (10f / (tags.getCompoundTag("InfiTool") - .getInteger("MiningSpeed") / 1.5f)) / 20F) - + StatCollector.translateToLocal("attribute.shield.block.time")); - int arrowCount = getArrowCount(par1ItemStack); - if (arrowCount > 0) { - par3List.add(String.format("%s%s %s", EnumChatFormatting.GOLD, - arrowCount, StatCollector - .translateToLocal("attribute.shield.arrow.count"))); - } - } - - @Override protected String getHarvestType() { return "shield"; } diff --git a/src/main/java/lance5057/tDefense/core/tools/Shield.java b/src/main/java/lance5057/tDefense/core/tools/Shield.java index c47b5a7..466ae13 100644 --- a/src/main/java/lance5057/tDefense/core/tools/Shield.java +++ b/src/main/java/lance5057/tDefense/core/tools/Shield.java @@ -1,5 +1,7 @@ package lance5057.tDefense.core.tools; +import java.util.List; + import mods.battlegear2.api.ISheathed; import mods.battlegear2.api.shield.IArrowCatcher; import mods.battlegear2.api.shield.IArrowDisplay; @@ -16,6 +18,8 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; import net.minecraft.world.World; import tconstruct.library.tools.ToolCore; import cpw.mods.fml.common.Optional; @@ -258,4 +262,25 @@ public class Shield extends ToolCore implements IShield, ISheathed, public String getIconSuffix(int arg0) { return null; } + + @Override + @Optional.Method(modid = "battlegear2") + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack par1ItemStack, + EntityPlayer par2EntityPlayer, List par3List, boolean par4) { + NBTTagCompound tags = par1ItemStack.getTagCompound(); + super.addInformation(par1ItemStack, par2EntityPlayer, par3List, par4); + par3List.add(""); + par3List.add(EnumChatFormatting.DARK_GREEN + + ItemStack.field_111284_a + .format(1F / (10f / (tags.getCompoundTag("InfiTool") + .getInteger("MiningSpeed") / 1.5f)) / 20F) + + StatCollector.translateToLocal("attribute.shield.block.time")); + int arrowCount = getArrowCount(par1ItemStack); + if (arrowCount > 0) { + par3List.add(String.format("%s%s %s", EnumChatFormatting.GOLD, + arrowCount, StatCollector + .translateToLocal("attribute.shield.arrow.count"))); + } + } }
\ No newline at end of file diff --git a/src/main/java/lance5057/tDefense/core/tools/TinkerWrench.java b/src/main/java/lance5057/tDefense/core/tools/TinkerWrench.java index 0714823..6ae9257 100644 --- a/src/main/java/lance5057/tDefense/core/tools/TinkerWrench.java +++ b/src/main/java/lance5057/tDefense/core/tools/TinkerWrench.java @@ -1,5 +1,6 @@ package lance5057.tDefense.core.tools; +import cpw.mods.fml.common.Optional; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.nbt.NBTTagCompound; @@ -8,6 +9,9 @@ import tconstruct.library.tools.Weapon; import tconstruct.tools.TinkerTools; import buildcraft.api.tools.IToolWrench; +@Optional.InterfaceList({ + @Optional.Interface(modid = "buildcraft", iface = "buildcraft.api.tools.IToolWrench") +}) public class TinkerWrench extends Weapon implements IToolWrench { int induceDamage = 0; @@ -83,6 +87,7 @@ public class TinkerWrench extends Weapon implements IToolWrench { } @Override + @Optional.Method(modid = "buildcraft") public boolean canWrench(EntityPlayer player, int x, int y, int z) { NBTTagCompound tags = player.inventory.getCurrentItem() .getTagCompound().getCompoundTag("InfiTool"); 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 index 0ce9eb2..b93f5e8 100644 --- a/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/BotaniaToolMods.java +++ b/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/BotaniaToolMods.java @@ -9,10 +9,10 @@ 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 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({ @@ -31,18 +31,18 @@ public class BotaniaToolMods { 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; +// 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); - } +// 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); +// } } } 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 index af124dc..1f8f8cd 100644 --- a/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TDefenseActiveToolMod.java +++ b/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TDefenseActiveToolMod.java @@ -17,14 +17,14 @@ import tconstruct.library.tools.ToolCore; public class TDefenseActiveToolMod extends ActiveToolMod { TdefenseToolMods TDMods = new TdefenseToolMods(); - BotaniaToolMods FlowerMods = new BotaniaToolMods(); + //BotaniaToolMods FlowerMods = new BotaniaToolMods(); @Override public void updateTool(ToolCore tool, ItemStack stack, World world, Entity entity) { if(stack.hasTagCompound() && stack.getTagCompound().hasKey("InfiTool")) - { + { NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool"); if (!tags.getBoolean("Broken")) @@ -33,10 +33,10 @@ public class TDefenseActiveToolMod extends ActiveToolMod TDMods.UpdateAll(tool, stack, world, entity, tags); //Botania - if(Loader.isModLoaded("Botania")) - { - FlowerMods.UpdateAll(tool, stack, world, entity, tags); - } +// if(Loader.isModLoaded("Botania")) +// { +// FlowerMods.UpdateAll(tool, stack, world, entity, tags); +// } } } 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 index d75ec13..12d84d6 100644 --- a/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TdefenseToolMods.java +++ b/src/main/java/lance5057/tDefense/core/tools/modifiers/ActiveToolMods/TdefenseToolMods.java @@ -48,4 +48,9 @@ public class TdefenseToolMods } } } + + public void UpdateTorchArrow(ToolCore tool, ItemStack stack, World world, Entity entity) + { + //entity.worldObj.ent + } } diff --git a/src/main/java/lance5057/tDefense/core/tools/modifiers/Botania/modifierCorpseIvy.java b/src/main/java/lance5057/tDefense/core/tools/modifiers/Botania/modifierCorpseIvy.java new file mode 100644 index 0000000..b2211b3 --- /dev/null +++ b/src/main/java/lance5057/tDefense/core/tools/modifiers/Botania/modifierCorpseIvy.java @@ -0,0 +1,67 @@ +package lance5057.tDefense.core.tools.modifiers.Botania; + +import java.util.Arrays; +import java.util.List; + +import lance5057.tDefense.core.tools.Shield; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import tconstruct.library.tools.ToolCore; +import tconstruct.modifiers.tools.ItemModTypeFilter; + +public class modifierCorpseIvy extends ItemModTypeFilter +{ + String tooltipName; + String guiType; + + public modifierCorpseIvy(String type, int effect, ItemStack[] items, int[] values) + { + super(effect, "corpseivy", items, values); + tooltipName = "\u00A7fCorpse Drinker"; + guiType = type; + } + + @Override + protected boolean canModify (ItemStack tool, ItemStack[] input) + { + NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); + + List list = Arrays.asList(((ToolCore)tool.getItem()).getTraits()); + if (list.contains("weapon")) + { + return tags.getInteger("Modifiers") > 0; + } + + 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); + + updateModTag(tool, keyPair); + + } + else + { + int modifiers = tags.getInteger("Modifiers"); + modifiers -= 1; + tags.setInteger("Modifiers", modifiers); + String modName = "\u00A76" + guiType; + int tooltipIndex = addToolTip(tool, tooltipName, modName); + } + } + + void updateModTag (ItemStack tool, int[] keys) + { + NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool"); + String tip = "ModifierTip" + keys[2]; + String modName = "\u00A76" + guiType; + tags.setString(tip, modName); + } +} diff --git a/src/main/java/lance5057/tDefense/core/tools/modifiers/Modifiers.java b/src/main/java/lance5057/tDefense/core/tools/modifiers/Modifiers.java index de0b82f..8f1187e 100644 --- a/src/main/java/lance5057/tDefense/core/tools/modifiers/Modifiers.java +++ b/src/main/java/lance5057/tDefense/core/tools/modifiers/Modifiers.java @@ -1,8 +1,8 @@ package lance5057.tDefense.core.tools.modifiers; -import cpw.mods.fml.common.registry.GameRegistry; import lance5057.tDefense.Reference; import lance5057.tDefense.TinkersDefense; +import lance5057.tDefense.armor.modifiers.ArmorMods; import lance5057.tDefense.core.tools.modifiers.ActiveToolMods.TDefenseActiveToolMod; import lance5057.tDefense.core.tools.modifiers.shields.modifierCrestofBlades; import lance5057.tDefense.core.tools.modifiers.shields.modifierCrestofFeathers; @@ -17,13 +17,17 @@ import tconstruct.library.TConstructRegistry; import tconstruct.library.client.TConstructClientRegistry; import tconstruct.library.crafting.ModifyBuilder; import tconstruct.library.tools.ToolCore; +import cpw.mods.fml.common.registry.GameRegistry; public class Modifiers { public static Item item_relic; + public static ArmorMods AMod; public void init() { + AMod = new ArmorMods(); + item_relic = new Item().setCreativeTab(TinkersDefense.tabName).setMaxStackSize(1) .setUnlocalizedName("AncientRelic") .setTextureName(Reference.MOD_ID + ":AncientRelic"); diff --git a/src/main/java/lance5057/tDefense/finishingAnvil/blocks/finishingAnvil/Gui_FinishingAnvil.java b/src/main/java/lance5057/tDefense/finishingAnvil/blocks/finishingAnvil/Gui_FinishingAnvil.java index 30b841f..e36aab8 100644 --- a/src/main/java/lance5057/tDefense/finishingAnvil/blocks/finishingAnvil/Gui_FinishingAnvil.java +++ b/src/main/java/lance5057/tDefense/finishingAnvil/blocks/finishingAnvil/Gui_FinishingAnvil.java @@ -63,16 +63,16 @@ public class Gui_FinishingAnvil extends GuiContainer public void initGui() { super.initGui(); - this.buttonList.add(new GuiButton(1 ,this.guiLeft+25, this.guiTop+10, 10, 10,"▲")); - this.buttonList.add(new GuiButton(2 ,this.guiLeft+25, this.guiTop+59, 10, 10,"▼")); - this.buttonList.add(new GuiButton(3 ,this.guiLeft+47, this.guiTop+49, 18, 18,"✓")); + this.buttonList.add(new GuiButton(1 ,this.guiLeft+25, this.guiTop+10, 10, 10,"")); + this.buttonList.add(new GuiButton(2 ,this.guiLeft+25, this.guiTop+59, 10, 10,"")); + this.buttonList.add(new GuiButton(3 ,this.guiLeft+47, this.guiTop+49, 18, 18,"")); this.buttonList.add(new GuiButton(4 ,this.guiLeft+5, this.guiTop+10, 20, 20,"")); this.buttonList.add(new GuiButton(5 ,this.guiLeft+5, this.guiTop+30, 20, 20,"")); this.buttonList.add(new GuiButton(6 ,this.guiLeft+5, this.guiTop+50, 20, 20,"")); - this.buttonList.add(new GuiButton(7 ,this.guiLeft+120, this.guiTop+10, 10, 10,"▲")); - this.buttonList.add(new GuiButton(8 ,this.guiLeft+120, this.guiTop+59, 10, 10,"▼")); + this.buttonList.add(new GuiButton(7 ,this.guiLeft+120, this.guiTop+10, 10, 10,"")); + this.buttonList.add(new GuiButton(8 ,this.guiLeft+120, this.guiTop+59, 10, 10,"")); this.buttonList.add(new GuiButton(9 ,this.guiLeft+130, this.guiTop+10, 20, 20,"")); this.buttonList.add(new GuiButton(10 ,this.guiLeft+130, this.guiTop+30, 20, 20,"")); @@ -87,7 +87,7 @@ public class Gui_FinishingAnvil extends GuiContainer switch(button.id) { case 1: if(this.leftButtonPosX > 0) this.leftButtonPosX--; break; - case 2: if(this.leftButtonPosX+2 < ((ToolCore)bigCopy.getItem()).getPartAmount() - 1) this.leftButtonPosX++; break; + case 2: if(this.leftButtonPosX+2 < ((ToolCore)bigCopy.getItem()).getPartAmount()) this.leftButtonPosX++; break; case 3: TinkersDefense.INSTANCE.sendToServer(new Message_FinishingAnvil(inventory.xCoord, inventory.yCoord, inventory.zCoord, this.bigCopy)); diff --git a/src/main/java/lance5057/tDefense/core/Injector.java b/src/main/java/lance5057/tDefense/finishingAnvil/utilities/Injector.java index 8510fd4..61a4393 100644 --- a/src/main/java/lance5057/tDefense/core/Injector.java +++ b/src/main/java/lance5057/tDefense/finishingAnvil/utilities/Injector.java @@ -1,4 +1,4 @@ -package lance5057.tDefense.core; +package lance5057.tDefense.finishingAnvil.utilities; import java.util.ArrayList; import java.util.List; @@ -12,30 +12,62 @@ import net.minecraft.util.ResourceLocation; import tconstruct.library.crafting.PatternBuilder; import tconstruct.library.crafting.PatternBuilder.MaterialSet; import tconstruct.library.tools.ToolCore; -import tconstruct.tools.TinkerTools; public class Injector extends ToolCore { ToolCore tool; - public Injector(int baseDamage, ToolCore tool) { - super(baseDamage); - this.tool = tool; - } - - List<String> heads = new ArrayList<String>(); + InjectorLocations injectLoc; + + List<String> heads= new ArrayList<String>(); List<String> accessorys= new ArrayList<String>(); List<String> handles = new ArrayList<String>(); List<String> extras = new ArrayList<String>(); + public Injector(int baseDamage, ToolCore tool, InjectorLocations injLoc) + { + super(0); + this.tool = tool; + + injectLoc = injLoc; + + List<String> temp = injectLoc.getList(tool.getUnlocalizedName().substring(tool.getUnlocalizedName().lastIndexOf('.')+1, tool.getUnlocalizedName().length())); + + if(!temp.isEmpty()) + { + for(int i = 0; i<temp.size(); i++) + { + if(temp.get(i).contains("head")) + { + heads.add(temp.get(i)); + } + if(temp.get(i).contains("accessory")) + { + accessorys.add(temp.get(i)); + } + if(temp.get(i).contains("handle")) + { + handles.add(temp.get(i)); + } + if(temp.get(i).contains("extra")) + { + extras.add(temp.get(i)); + } + } + } + } + protected void loadHeads(IIconRegister iconRegister) - { - IIcon origHead = TinkerTools.broadsword.headIcons.get(-1); - IIcon origAccessory = TinkerTools.broadsword.accessoryIcons.get(-1); - IIcon origHandle = TinkerTools.broadsword.handleIcons.get(-1); + { + IIcon origHead = tool.headIcons.get(-1); + IIcon origAccessory = tool.accessoryIcons.get(-1); + IIcon origHandle = tool.handleIcons.get(-1); + IIcon origExtra = tool.handleIcons.get(-1); //File[] icons = new File("tinkersdefense:items/" + tool.getDefaultFolder()).listFiles(); + + ResourceLocation icons = new ResourceLocation("tinkersdefense", tool.getDefaultFolder()); String test = icons.toString(); for(int i = 0; i<heads.size(); i++) @@ -44,12 +76,12 @@ public class Injector extends ToolCore for(Map.Entry<String, MaterialSet> entry : pb.materialSets.entrySet()) { String icon = "tinkersdefense:"; - icon += TinkerTools.broadsword.getDefaultFolder() + "/" + entry.getKey().toLowerCase() + "/" + heads.get(i); + icon += tool.getDefaultFolder() + "/" + entry.getKey().toLowerCase() + "/" + heads.get(i); //toolIcons[i] = icon; headStrings.put(entry.getValue().materialID+(TinkersDefense.config.MaterialIndex*(i+1)), icon); } - addIcons(headStrings, headIcons, iconRegister, heads.get(i), false); + addIcons(tool.headStrings, headIcons, iconRegister, heads.get(i), false); for(int j = (i+1)*TinkersDefense.config.MaterialIndex; j<TinkersDefense.config.MaterialIndex + ((i+1)*TinkersDefense.config.MaterialIndex); j++) { @@ -59,8 +91,8 @@ public class Injector extends ToolCore } } - TinkerTools.broadsword.headStrings.putAll(headStrings); - TinkerTools.broadsword.headIcons.putAll(headIcons); + tool.headStrings.putAll(headStrings); + tool.headIcons.putAll(headIcons); } for(int i = 0; i<accessorys.size(); i++) @@ -69,7 +101,7 @@ public class Injector extends ToolCore for(Map.Entry<String, MaterialSet> entry : pb.materialSets.entrySet()) { String icon = "tinkersdefense:"; - icon += TinkerTools.broadsword.getDefaultFolder() + "/" + entry.getKey().toLowerCase() + "/" + accessorys.get(i); + icon += tool.getDefaultFolder() + "/" + entry.getKey().toLowerCase() + "/" + accessorys.get(i); //toolIcons[i] = icon; accessoryStrings.put(entry.getValue().materialID+(TinkersDefense.config.MaterialIndex*(i+1)), icon); } @@ -84,8 +116,8 @@ public class Injector extends ToolCore } } - TinkerTools.broadsword.accessoryStrings.putAll(accessoryStrings); - TinkerTools.broadsword.accessoryIcons.putAll(accessoryIcons); + tool.accessoryStrings.putAll(accessoryStrings); + tool.accessoryIcons.putAll(accessoryIcons); } for(int i = 0; i<handles.size(); i++) @@ -94,7 +126,7 @@ public class Injector extends ToolCore for(Map.Entry<String, MaterialSet> entry : pb.materialSets.entrySet()) { String icon = "tinkersdefense:"; - icon += TinkerTools.broadsword.getDefaultFolder() + "/" + entry.getKey().toLowerCase() + "/" + handles.get(i); + icon += tool.getDefaultFolder() + "/" + entry.getKey().toLowerCase() + "/" + handles.get(i); //toolIcons[i] = icon; handleStrings.put(entry.getValue().materialID+(TinkersDefense.config.MaterialIndex*(i+1)), icon); } @@ -109,13 +141,13 @@ public class Injector extends ToolCore } } - TinkerTools.broadsword.handleStrings.putAll(handleStrings); - TinkerTools.broadsword.handleIcons.putAll(handleIcons); + tool.handleStrings.putAll(handleStrings); + tool.handleIcons.putAll(handleIcons); } - TinkerTools.broadsword.headIcons.put(-1, origHead); - TinkerTools.broadsword.accessoryIcons.put(-1, origAccessory); - TinkerTools.broadsword.handleIcons.put(-1, origHandle); + tool.headIcons.put(-1, origHead); + tool.accessoryIcons.put(-1, origAccessory); + tool.handleIcons.put(-1, origHandle); } @Override @@ -139,7 +171,8 @@ public class Injector extends ToolCore @Override public String getDefaultFolder() { // TODO Auto-generated method stub - return "broadsword"; + String s = tool.getDefaultFolder(); + return s; } @Override diff --git a/src/main/java/lance5057/tDefense/finishingAnvil/utilities/InjectorLocations.java b/src/main/java/lance5057/tDefense/finishingAnvil/utilities/InjectorLocations.java index 38f2b2d..7d557cf 100644 --- a/src/main/java/lance5057/tDefense/finishingAnvil/utilities/InjectorLocations.java +++ b/src/main/java/lance5057/tDefense/finishingAnvil/utilities/InjectorLocations.java @@ -1,5 +1,115 @@ package lance5057.tDefense.finishingAnvil.utilities; -public class InjectorLocations { +import java.util.ArrayList; +import java.util.List; +public class InjectorLocations +{ + List<String> list; + + public InjectorLocations() + { + list = new ArrayList<String>(); + + //BroadSword + list.add("broadsword_dull_head"); + list.add("broadsword_elusive_head"); + list.add("broadsword_glass_head"); + list.add("broadsword_mace_head"); + list.add("broadsword_plumed_head"); + list.add("broadsword_repulsive_head"); + list.add("broadsword_spiked_head"); + list.add("broadsword_tapered_head"); + list.add("broadsword_widebase_head"); + list.add("broadsword_falchion_head"); + list.add("broadsword_big_head"); + list.add("broadsword_segmented_head"); + list.add("broadsword_nofuller_head"); + list.add("broadsword_hourglass_head"); + list.add("broadsword_flat_head"); + + list.add("broadsword_basket_accessory"); + list.add("broadsword_curved_accessory"); + list.add("broadsword_elusive_accessory"); + list.add("broadsword_extended_accessory"); + list.add("broadsword_legendary_accessory"); + list.add("broadsword_no_accessory"); + list.add("broadsword_basket_accessory"); + list.add("broadsword_repulsive_accessory"); + list.add("broadsword_square_accessory"); + list.add("broadsword_straight_accessory"); + list.add("broadsword_straight_accessory"); + list.add("broadsword_bulbous_accessory"); + list.add("broadsword_sun_accessory"); + list.add("broadsword_lamenting_accessory"); + list.add("broadsword_pixie_accessory"); + list.add("broadsword_forked_accessory"); + + list.add("broadsword_ornate_handle"); + list.add("broadsword_thick_handle"); + list.add("broadsword_short_handle"); + + //Arrow + list.add("arrow_broad_head"); + list.add("arrow_elven_head"); + list.add("arrow_horned_head"); + list.add("arrow_trident_head"); + list.add("arrow_winged_head"); + + list.add("arrow_bulbous_handle"); + list.add("arrow_natural_handle"); + + list.add("arrow_matted_accessory"); + list.add("arrow_magic_accessory"); + list.add("arrow_pixie_accessory"); + list.add("arrow_small_accessory"); + + //Axe + list.add("axe_bearded_head"); + list.add("axe_broad_head"); + list.add("axe_minecraft_head"); + list.add("axe_thin_head"); + + //Battleaxe + list.add("battleaxe_halbard_head"); + list.add("battleaxe_magic_head"); + list.add("battleaxe_scythe_head"); + + list.add("battleaxe_magic_extra"); + list.add("battleaxe_scythe_extra"); + list.add("battleaxe_halbard_extra"); + + list.add("battleaxe_magic_accessory"); + list.add("battleaxe_halbard_accessory"); + list.add("battleaxe_knob_accessory"); + + //Battlesign + list.add("battlesign_small_handle"); + list.add("battlesign_smalllong_handle"); + + list.add("battlesign_arrow_head"); + list.add("battlesign_caution_head"); + list.add("battlesign_noentry_head"); + list.add("battlesign_railroad_head"); + list.add("battlesign_stop_head"); + list.add("battlesign_X_head"); + } + + public List getList(String part) + { + List<String> request = new ArrayList<String>(); + + if(!list.isEmpty()) + { + for(int i = 0; i < list.size(); i++) + { + if(list.get(i).contains(part.toLowerCase())) + { + request.add(list.get(i).substring(part.length(), list.get(i).length())); + } + } + } + + return request; + } } diff --git a/src/main/java/lance5057/tDefense/proxy/ClientProxy.java b/src/main/java/lance5057/tDefense/proxy/ClientProxy.java index 4a46bcf..b9e008a 100644 --- a/src/main/java/lance5057/tDefense/proxy/ClientProxy.java +++ b/src/main/java/lance5057/tDefense/proxy/ClientProxy.java @@ -35,8 +35,8 @@ public class ClientProxy extends CommonProxy { renderer); MinecraftForgeClient.registerItemRenderer(TinkersDefense.tool_shears, renderer); - MinecraftForgeClient.registerItemRenderer(TinkersDefense.tool_zweihander, - bigrenderer); +// MinecraftForgeClient.registerItemRenderer(TinkersDefense.tool_zweihander, +// bigrenderer); MinecraftForgeClient.registerItemRenderer(TinkersDefense.armor_TinkerHelm, renderer); MinecraftForgeClient.registerItemRenderer(TinkersDefense.armor_TinkerBreastplate, @@ -45,6 +45,23 @@ public class ClientProxy extends CommonProxy { renderer); MinecraftForgeClient.registerItemRenderer(TinkersDefense.armor_TinkerSabatons, renderer); + MinecraftForgeClient.registerItemRenderer(TinkersDefense.armor_TinkerRobe, + renderer); + MinecraftForgeClient.registerItemRenderer(TinkersDefense.armor_TinkerShawl, + renderer); + MinecraftForgeClient.registerItemRenderer(TinkersDefense.armor_TinkerHood, + renderer); + MinecraftForgeClient.registerItemRenderer(TinkersDefense.armor_TinkerShoes, + renderer); + + MinecraftForgeClient.registerItemRenderer(TinkersDefense.armor_TinkerCoif, + renderer); + MinecraftForgeClient.registerItemRenderer(TinkersDefense.armor_TinkerHalberd, + renderer); + MinecraftForgeClient.registerItemRenderer(TinkersDefense.armor_TinkerChausses, + renderer); + MinecraftForgeClient.registerItemRenderer(TinkersDefense.armor_TinkerBoots, + renderer); ClientRegistry.bindTileEntitySpecialRenderer( TileEntity_CrestMount.class, new Renderer_CrestMount()); |
