summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorLance5057 <Lance5057@gmail.com>2015-12-22 07:56:28 -0600
committerLance5057 <Lance5057@gmail.com>2015-12-22 07:56:28 -0600
commit10819ad8b1f865b47656de2ebec6c14ea552e262 (patch)
tree7e6c8be899da18415ef111360c8aee65fb75300a /src/main/java
parent3ec5ba87778c94fd58bc98bb9af85391d12491c4 (diff)
Prepping for Xmas Alpha
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/lance5057/tDefense/TD_Config.java8
-rw-r--r--src/main/java/lance5057/tDefense/TinkersDefense.java289
-rw-r--r--src/main/java/lance5057/tDefense/armor/ArmorCore.java11
-rw-r--r--src/main/java/lance5057/tDefense/armor/events/ArmorRenderEvent.java32
-rw-r--r--src/main/java/lance5057/tDefense/armor/items/ClothArmor.java76
-rw-r--r--src/main/java/lance5057/tDefense/armor/items/cloth/TinkersHood.java124
-rw-r--r--src/main/java/lance5057/tDefense/armor/items/heavy/TinkersBreastplate.java5
-rw-r--r--src/main/java/lance5057/tDefense/armor/items/heavy/TinkersGrieves.java139
-rw-r--r--src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java12
-rw-r--r--src/main/java/lance5057/tDefense/armor/items/heavy/TinkersSabatons.java146
-rw-r--r--src/main/java/lance5057/tDefense/armor/parts/Cloth.java40
-rw-r--r--src/main/java/lance5057/tDefense/armor/parts/ClothMaterial.java14
-rw-r--r--src/main/java/lance5057/tDefense/armor/parts/Item_Cloth.java51
-rw-r--r--src/main/java/lance5057/tDefense/armor/parts/Item_Glowthread.java51
-rw-r--r--src/main/java/lance5057/tDefense/armor/parts/Item_Thread.java51
-rw-r--r--src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersBreastplate.java4
-rw-r--r--src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersGrieves.java42
-rw-r--r--src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersHelm.java7
-rw-r--r--src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersSabatons.java45
-rw-r--r--src/main/java/lance5057/tDefense/core/TD_Patterns.java2
-rw-r--r--src/main/java/lance5057/tDefense/core/blocks/GreenMintBlock.java15
-rw-r--r--src/main/java/lance5057/tDefense/core/blocks/RedMintBlock.java15
-rw-r--r--src/main/java/lance5057/tDefense/core/events/TDEventHandler.java68
-rw-r--r--src/main/java/lance5057/tDefense/core/liquids/MoltenFluid.java (renamed from src/main/java/lance5057/tDefense/core/liquids/moltenAeonsteelFluid.java)14
-rw-r--r--src/main/java/lance5057/tDefense/core/liquids/moltenDogbeariumFluid.java57
-rw-r--r--src/main/java/lance5057/tDefense/core/liquids/moltenQueensGoldFluid.java57
-rw-r--r--src/main/java/lance5057/tDefense/core/renderer/BigFlexibleToolRenderer.java323
-rw-r--r--src/main/java/lance5057/tDefense/core/tools/TinkerZweihander.java77
-rw-r--r--src/main/java/lance5057/tDefense/proxy/ClientProxy.java8
29 files changed, 1241 insertions, 542 deletions
diff --git a/src/main/java/lance5057/tDefense/TD_Config.java b/src/main/java/lance5057/tDefense/TD_Config.java
index 66e1791..ef40f18 100644
--- a/src/main/java/lance5057/tDefense/TD_Config.java
+++ b/src/main/java/lance5057/tDefense/TD_Config.java
@@ -11,6 +11,8 @@ public class TD_Config
public int AeonsteelMatID;
public int QueensGoldMatID;
public int DogbeariumMatID;
+ public int RedMintMatID;
+ public int GreenMintMatID;
public int DazeID;
public int CrestFeathersID;
@@ -29,14 +31,16 @@ public class TD_Config
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();
-
+ RedMintMatID = config.get("Material Configs", "RedMint Material ID", 204).getInt();
+ GreenMintMatID = config.get("Material Configs", "GreenMint Material ID", 205).getInt();
+
DazeID = config.get("Modifier Configs", "Daze ID", 18).getInt();
CrestFeathersID = config.get("Modifier Configs", "Crest of Feathers ID", 19).getInt();
CrestMirrorsID = config.get("Modifier Configs", "Crest of Mirrors ID", 20).getInt();
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 -\n TDefense - 204\n MFR - 1001\n ExtraTIC - 1024", 204).getInt();
+ MaterialIndex = config.get("Material Index", "Highest material ID - TDefense - 204 MFR - 1001 ExtraTIC - 1024", 204).getInt();
diff --git a/src/main/java/lance5057/tDefense/TinkersDefense.java b/src/main/java/lance5057/tDefense/TinkersDefense.java
index f36127e..8782cf3 100644
--- a/src/main/java/lance5057/tDefense/TinkersDefense.java
+++ b/src/main/java/lance5057/tDefense/TinkersDefense.java
@@ -3,31 +3,33 @@ package lance5057.tDefense;
import static net.minecraft.util.EnumChatFormatting.DARK_RED;
import static net.minecraft.util.EnumChatFormatting.GOLD;
import static net.minecraft.util.EnumChatFormatting.LIGHT_PURPLE;
-import lance5057.tDefense.armor.ArmorCore;
+
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.util.Date;
+
import lance5057.tDefense.armor.events.ArmorRenderEvent;
import lance5057.tDefense.armor.items.ChainArmor;
-import lance5057.tDefense.armor.items.ClothArmor;
import lance5057.tDefense.armor.items.Mask;
import lance5057.tDefense.armor.items.Sheath;
import lance5057.tDefense.armor.items.heavy.TinkersBreastplate;
import lance5057.tDefense.armor.items.heavy.TinkersGrieves;
import lance5057.tDefense.armor.items.heavy.TinkersHelm;
import lance5057.tDefense.armor.items.heavy.TinkersSabatons;
-import lance5057.tDefense.armor.parts.Item_Cloth;
-import lance5057.tDefense.armor.parts.Item_Glowthread;
-import lance5057.tDefense.armor.parts.Item_Thread;
+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;
+import lance5057.tDefense.core.blocks.GreenMintBlock;
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.events.TDEventHandler;
-import lance5057.tDefense.core.liquids.moltenAeonsteelFluid;
-import lance5057.tDefense.core.liquids.moltenDogbeariumFluid;
-import lance5057.tDefense.core.liquids.moltenQueensGoldFluid;
+import lance5057.tDefense.core.liquids.MoltenFluid;
import lance5057.tDefense.core.network.PacketHandler;
import lance5057.tDefense.core.tools.HeaterShield;
import lance5057.tDefense.core.tools.RoundShield;
@@ -42,6 +44,7 @@ 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.item.Item;
import net.minecraft.item.ItemArmor.ArmorMaterial;
import net.minecraft.item.ItemStack;
@@ -101,27 +104,41 @@ public class TinkersDefense {
public static final SimpleNetworkWrapper INSTANCE = NetworkRegistry.INSTANCE
.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;
public static Modifiers mods;
public static Item item_AeonSteelIngot;
public static Block block_AeonSteelBlock;
-
public static Fluid moltenAeonsteel;
public static Block moltenAeonsteelBlock;
public static Item item_QueensGoldIngot;
public static Block block_QueensGoldBlock;
-
public static Fluid moltenQueensGold;
public static Block moltenQueensGoldBlock;
public static Item item_DogbeariumIngot;
public static Block block_DogbeariumBlock;
-
public static Fluid moltenDogbearium;
public static Block moltenDogbeariumBlock;
+
+ public static Item item_RedMintcane;
+ public static Item item_GreenMintcane;
+
+ public static Item item_RedMintIngot;
+ public static Block block_RedMintBlock;
+ public static Fluid moltenRedMint;
+ public static Block moltenRedMintBlock;
+
+ public static Item item_GreenMintIngot;
+ public static Block block_GreenMintBlock;
+ public static Fluid moltenGreenMint;
+ public static Block moltenGreenMintBlock;
public static ToolCore tool_roundShield;
public static ToolCore tool_heaterShield;
@@ -135,18 +152,17 @@ public class TinkersDefense {
public static Block block_ArmorAnvil;
public static Block block_JewelersBench;
+ public static ToolCore armor_TinkerHood;
+ public static ToolCore armor_TinkerCowl;
+ public static ToolCore armor_TinkerRobe;
+ public static ToolCore armor_TinkerShoes;
+
public static ToolCore armor_TinkerHelm;
public static ToolCore armor_TinkerBreastplate;
- public static Item item_TinkerGrieves;
- public static Item item_TinkerSabatons;
+ public static ToolCore armor_TinkerGrieves;
+ public static ToolCore armor_TinkerSabatons;
public static Item item_ChainArmor;
- public static Item item_ClothArmor;
-
- public static Item item_thread;
- public static Item item_glowthread;
- public static Item item_cloth;
-
public static Pattern woodPattern;
public static Pattern metalPattern;
@@ -174,7 +190,6 @@ public class TinkersDefense {
mods.init();
-
block_CrestMount = new CrestMount().setHardness(4.0F)
.setStepSound(Block.soundTypeStone).setBlockName("CrestMount")
.setCreativeTab(tabName);
@@ -211,25 +226,23 @@ public class TinkersDefense {
tabIcon = new Item().setMaxStackSize(1).setCreativeTab(tabName).setUnlocalizedName("tabIcon").setTextureName(Reference.MOD_ID + ":Icon");
GameRegistry.registerItem(tabIcon, "tabIcon");
-
-
-
- // AeonSteel
item_AeonSteelIngot = new Item().setCreativeTab(tabName)
- .setMaxStackSize(64).setUnlocalizedName("AeonSteelIngot")
- .setTextureName(Reference.MOD_ID + ":AeonSteelIngot");
+ .setMaxStackSize(64).setUnlocalizedName("AeonsteelIngot")
+ .setTextureName(Reference.MOD_ID + ":AeonsteelIngot");
- GameRegistry.registerItem(item_AeonSteelIngot, "AeonSteel Ingot");
+ GameRegistry.registerItem(item_AeonSteelIngot, "AeonsteelIngot");
block_AeonSteelBlock = new AeonSteelBlock(Material.iron)
.setHardness(4.0F).setStepSound(Block.soundTypeMetal)
- .setBlockName("AeonSteelBlock").setCreativeTab(tabName)
- .setBlockTextureName(Reference.MOD_ID + ":AeonSteelBlock");
+ .setBlockName("AeonsteelBlock").setCreativeTab(tabName)
+ .setBlockTextureName(Reference.MOD_ID + ":AeonsteelBlock");
- GameRegistry.registerBlock(block_AeonSteelBlock, "aeonsteelblock");
+ GameRegistry.registerBlock(block_AeonSteelBlock, "Aeonsteelblock");
- GameRegistry.addShapedRecipe(new ItemStack(block_AeonSteelBlock),
- new Object[] { "xxx", "xxx", "xxx", 'x', item_AeonSteelIngot });
+ GameRegistry
+ .addShapedRecipe(new ItemStack(block_AeonSteelBlock),
+ new Object[] { "xxx", "xxx", "xxx", 'x',
+ item_AeonSteelIngot });
GameRegistry.addShapelessRecipe(new ItemStack(item_AeonSteelIngot, 9),
new Object[] { new ItemStack(block_AeonSteelBlock) });
@@ -237,17 +250,16 @@ public class TinkersDefense {
.setDensity(3000).setViscosity(6000).setTemperature(1300);
FluidRegistry.registerFluid(moltenAeonsteel);
- moltenAeonsteelFluid moltenAeonsteelBlock = new moltenAeonsteelFluid(
- moltenAeonsteel);
-
- GameRegistry.registerBlock(moltenAeonsteelBlock, "moltenaeonsteel");
+ moltenAeonsteelBlock = new MoltenFluid(
+ moltenAeonsteel, "Aeonsteel");
- // Queen's Gold
+ GameRegistry.registerBlock(moltenAeonsteelBlock, "moltenAeonsteel");
+
item_QueensGoldIngot = new Item().setCreativeTab(tabName)
.setMaxStackSize(64).setUnlocalizedName("QueensGoldIngot")
.setTextureName(Reference.MOD_ID + ":QueensGoldIngot");
- GameRegistry.registerItem(item_QueensGoldIngot, "Queen's Gold Ingot");
+ GameRegistry.registerItem(item_QueensGoldIngot, "QueensGoldIngot");
block_QueensGoldBlock = new QueensGoldBlock(Material.iron)
.setHardness(4.0F).setStepSound(Block.soundTypeMetal)
@@ -267,11 +279,12 @@ public class TinkersDefense {
.setDensity(3000).setViscosity(6000).setTemperature(1300);
FluidRegistry.registerFluid(moltenQueensGold);
- moltenQueensGoldFluid moltenQueensGoldBlock = new moltenQueensGoldFluid(
- moltenQueensGold);
+ moltenQueensGoldBlock = new MoltenFluid(
+ moltenQueensGold, "QueensGold");
GameRegistry.registerBlock(moltenQueensGoldBlock, "moltenQueensGold");
+
// Dogbearium
item_DogbeariumIngot = new Item().setCreativeTab(tabName)
.setMaxStackSize(64).setUnlocalizedName("DogbeariumIngot")
@@ -297,11 +310,79 @@ public class TinkersDefense {
.setDensity(3000).setViscosity(6000).setTemperature(1300);
FluidRegistry.registerFluid(moltenDogbearium);
- moltenDogbeariumFluid moltenDogbeariumBlock = new moltenDogbeariumFluid(
- moltenDogbearium);
+ moltenDogbeariumBlock = new MoltenFluid(
+ moltenDogbearium, "dogbearium");
GameRegistry.registerBlock(moltenDogbeariumBlock, "moltenDogbearium");
+
+
+ //Candy Canes
+ item_RedMintcane = new Item().setCreativeTab(tabName)
+ .setMaxStackSize(64).setUnlocalizedName("RedMintcane")
+ .setTextureName(Reference.MOD_ID + ":RedMintcane");
+
+ item_RedMintIngot = new Item().setCreativeTab(tabName)
+ .setMaxStackSize(64).setUnlocalizedName("RedMintIngot")
+ .setTextureName(Reference.MOD_ID + ":RedMintIngot");
+
+ GameRegistry.registerItem(item_RedMintcane, "RedMintCane");
+ GameRegistry.registerItem(item_RedMintIngot, "RedMintIngot");
+
+ block_RedMintBlock = new RedMintBlock(Material.iron)
+ .setHardness(4.0F).setStepSound(Block.soundTypeMetal)
+ .setBlockName("RedMintBlock").setCreativeTab(tabName)
+ .setBlockTextureName(Reference.MOD_ID + ":RedMintBlock");
+
+ GameRegistry.registerBlock(block_RedMintBlock, "RedMintblock");
+
+ GameRegistry
+ .addShapedRecipe(new ItemStack(block_RedMintBlock),
+ new Object[] { "xxx", "xxx", "xxx", 'x',
+ new ItemStack(item_RedMintcane,1,2) });
+ GameRegistry.addShapelessRecipe(new ItemStack(item_RedMintcane, 9,2),
+ new Object[] { new ItemStack(block_RedMintBlock) });
+
+ moltenRedMint = new Fluid("moltenRedMint").setLuminosity(15)
+ .setDensity(3000).setViscosity(6000).setTemperature(1300);
+ FluidRegistry.registerFluid(moltenRedMint);
+
+ moltenRedMintBlock = new MoltenFluid(
+ moltenRedMint, "RedMint");
+
+ GameRegistry.registerBlock(moltenRedMintBlock, "moltenRedMint");
+
+ item_GreenMintcane = new Item().setCreativeTab(tabName)
+ .setMaxStackSize(64).setUnlocalizedName("GreenMintcane")
+ .setTextureName(Reference.MOD_ID + ":GreenMintcane");
+
+ item_GreenMintIngot = new Item().setCreativeTab(tabName)
+ .setMaxStackSize(64).setUnlocalizedName("GreenMintIngot")
+ .setTextureName(Reference.MOD_ID + ":GreenMintIngot");
+
+ GameRegistry.registerItem(item_GreenMintcane, "GreenMintCane");
+ GameRegistry.registerItem(item_GreenMintIngot, "GreenMintIngot");
+
+ block_GreenMintBlock = new GreenMintBlock(Material.iron)
+ .setHardness(4.0F).setStepSound(Block.soundTypeMetal)
+ .setBlockName("GreenMintBlock").setCreativeTab(tabName)
+ .setBlockTextureName(Reference.MOD_ID + ":GreenMintBlock");
+ GameRegistry.registerBlock(block_GreenMintBlock, "GreenMintblock");
+
+ GameRegistry
+ .addShapedRecipe(new ItemStack(block_GreenMintBlock), new Object[] { "xxx", "xxx", "xxx", 'x', new ItemStack(item_GreenMintcane,1,3)});
+ GameRegistry.addShapelessRecipe(new ItemStack(item_GreenMintcane, 9, 3),
+ new Object[] { new ItemStack(block_GreenMintBlock) });
+
+ moltenGreenMint = new Fluid("moltenGreenMint").setLuminosity(15)
+ .setDensity(3000).setViscosity(6000).setTemperature(1300);
+ FluidRegistry.registerFluid(moltenGreenMint);
+
+ moltenGreenMintBlock = new MoltenFluid(
+ moltenGreenMint, "GreenMint");
+
+ GameRegistry.registerBlock(moltenGreenMintBlock, "moltenGreenMint");
+
tool_roundShield = new RoundShield();
tool_heaterShield = new HeaterShield();
@@ -314,18 +395,24 @@ public class TinkersDefense {
armor_TinkerHelm = new TinkersHelm();
armor_TinkerBreastplate = new TinkersBreastplate();
+ armor_TinkerGrieves = new TinkersGrieves();
+ armor_TinkerSabatons = new TinkersSabatons();
//Register Tools
GameRegistry.registerItem(tool_roundShield, "Round Shield");
GameRegistry.registerItem(tool_heaterShield, "Heater Shield");
+
GameRegistry.registerItem(tool_shears, "Tinker Shears");
GameRegistry.registerItem(tool_wrench, "Tinker Wrench");
GameRegistry.registerItem(tool_sheath, "Sheath");
GameRegistry.registerItem(tool_mask, "Mask");
+
GameRegistry.registerItem(tool_zweihander, "Zweihander");
GameRegistry.registerItem(armor_TinkerHelm,"tinkerhelm");
GameRegistry.registerItem(armor_TinkerBreastplate,"tinkerbreastplate");
+ GameRegistry.registerItem(armor_TinkerGrieves,"tinkergrieves");
+ GameRegistry.registerItem(armor_TinkerSabatons,"tinkersabatons");
//Add Tools to TiCo directory
TConstructRegistry.addItemToDirectory("Round Shield", tool_roundShield);
@@ -337,12 +424,8 @@ public class TinkersDefense {
TConstructRegistry.addItemToDirectory("Zweihander", tool_zweihander);
TConstructRegistry.addItemToDirectory("tinkerhelm", armor_TinkerHelm);
TConstructRegistry.addItemToDirectory("tinkerbreastplate", armor_TinkerBreastplate);
-
- //Register Items
- GameRegistry.registerItem(item_thread = new Item_Thread(), "thread");
- GameRegistry.registerItem(item_glowthread = new Item_Glowthread(),
- "glowthread");
- GameRegistry.registerItem(item_cloth = new Item_Cloth(), "cloth");
+ TConstructRegistry.addItemToDirectory("tinkergrieves", armor_TinkerGrieves);
+ TConstructRegistry.addItemToDirectory("tinkersabatons", armor_TinkerSabatons);
woodPattern = new TD_Patterns("pattern_", "Pattern");
metalPattern = new TD_Patterns("cast_", "MetalPattern");
@@ -361,22 +444,9 @@ public class TinkersDefense {
// Renderers
proxy.registerRenderers();
-
-// item_TinkerBreastplate = new TinkersBreastplate().setUnlocalizedName("Tinkers_Breastplate");
-// GameRegistry.registerItem(item_TinkerBreastplate,"Tinkers Breastplate");
-
- item_TinkerGrieves = new TinkersGrieves(ArmorMaterial.IRON, 4, 2).setUnlocalizedName("Tinkers_Grieves");
- GameRegistry.registerItem(item_TinkerGrieves,"Tinkers Grieves");
-
- item_TinkerSabatons = new TinkersSabatons(ArmorMaterial.IRON, 4, 3).setUnlocalizedName("Tinkers_Sabatons");
- GameRegistry.registerItem(item_TinkerSabatons,"Tinkers Sabatons");
item_ChainArmor = new ChainArmor(ArmorMaterial.IRON, 4, 1).setUnlocalizedName("Chain_Armor");
GameRegistry.registerItem(item_ChainArmor,"Chain Armor");
-
- item_ClothArmor = new ClothArmor(ArmorMaterial.IRON, 4,
- 1).setUnlocalizedName("Cloth_Armor");
- GameRegistry.registerItem(item_ClothArmor,"Cloth Armor");
//tool_Sheath = new Sheath().setUnlocalizedName("Sheath");
@@ -394,7 +464,7 @@ public class TinkersDefense {
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);
@@ -408,7 +478,7 @@ public class TinkersDefense {
partArmorplate = new DynamicToolPart("_armorplate", "Armor Plate");
GameRegistry.registerItem(partArmorplate, "ArmorPlatePart");
- partCloth = new DynamicToolPart("_cloth", "Cloth");
+ partCloth = new Cloth().setUnlocalizedName("TD.Cloth");
GameRegistry.registerItem(partCloth, "clothPart");
partChainmaille = new DynamicToolPart("_chainmaille", "Chainmaille");
@@ -417,14 +487,11 @@ public class TinkersDefense {
buildParts(partRivet, 0);
buildParts(partClasp, 1);
buildParts(partArmorplate, 2);
- buildParts(partCloth, 3);
+ //buildParts(partCloth, 3);
buildParts(partChainmaille, 4);
PatternBuilder pb = PatternBuilder.instance;
-
-
-
TConstructClientRegistry.toolButtons
.add(TConstructClientRegistry.toolButtons.size(),
new ToolGuiElement(
@@ -581,7 +648,93 @@ public class TinkersDefense {
new FluidStack(TinkerSmeltery.moltenArditeFluid, 144),
new FluidStack(TinkerSmeltery.bloodFluid, 160),
new FluidStack(TinkerSmeltery.moltenEnderFluid, 250) });
+
+ //Red Mint
+ pb.registerMaterialSet("RedMint", new ItemStack(
+ TinkerTools.toolShard, 1, 10), new ItemStack(
+ TinkerTools.toolRod, 1, 10), config.RedMintMatID);
+
+ TConstructClientRegistry.addMaterialRenderMapping(config.RedMintMatID, "tinker",
+ "RedMint", true);
+ TConstructRegistry.addToolMaterial(config.RedMintMatID, "RedMint", 4, 600, 800, 2,
+ 1.6F, 0, -2f, DARK_RED.toString(), 0xFF0000);
+ TinkerTools.registerPatternMaterial("RedMintIngot", 2, "RedMint");
+ TConstructRegistry.addDefaultToolPartMaterial(config.RedMintMatID);
+
+ Smeltery.addMelting(new ItemStack(item_RedMintcane, 1, 0), block_RedMintBlock, 0, 250, new FluidStack(moltenRedMint, TConstruct.chunkLiquidValue));
+ Smeltery.addMelting(new ItemStack(item_RedMintIngot, 1, 0), block_RedMintBlock, 0, 500, new FluidStack(moltenRedMint, TConstruct.ingotLiquidValue));
+ Smeltery.addMelting(block_RedMintBlock, 0, 500, new FluidStack(moltenRedMint, TConstruct.ingotLiquidValue * 9));
+
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(
+ new ItemStack(item_RedMintIngot, 1, 0),
+ new FluidStack(moltenRedMint, TConstruct.ingotLiquidValue),
+ TConstructRegistry.getItemStack("ingotCast"), false, 50);
+
+ TConstructRegistry.instance.getBasinCasting().addCastingRecipe(
+ new ItemStack(block_RedMintBlock, 1, 0),
+ new FluidStack(moltenRedMint,
+ TConstruct.ingotLiquidValue * 9), 100);
+
+ castMolten(moltenRedMint, config.RedMintMatID);
+
+ PatternBuilder.instance.registerFullMaterial(new ItemStack(
+ item_RedMintcane, 1, 0), 2, "RedMint", new ItemStack(
+ TinkerTools.toolShard, 1, config.RedMintMatID), new ItemStack(
+ TinkerTools.toolRod, 1, config.RedMintMatID), config.RedMintMatID);
+
+ //Green Mint
+ pb.registerMaterialSet("GreenMint", new ItemStack(
+ TinkerTools.toolShard, 1, 10), new ItemStack(
+ TinkerTools.toolRod, 1, 10), config.GreenMintMatID);
+
+ TConstructClientRegistry.addMaterialRenderMapping(config.GreenMintMatID, "tinker",
+ "GreenMint", true);
+ TConstructRegistry.addToolMaterial(config.GreenMintMatID, "GreenMint", 4, 600, 800, 2,
+ 1.6F, 0, -2f, DARK_RED.toString(), 0x5bde4b);
+ TinkerTools.registerPatternMaterial("GreenMintIngot", 2, "GreenMint");
+ TConstructRegistry.addDefaultToolPartMaterial(config.GreenMintMatID);
+
+ Smeltery.addMelting(new ItemStack(item_GreenMintcane, 1, 0), block_GreenMintBlock, 0, 250, new FluidStack(moltenGreenMint, TConstruct.chunkLiquidValue));
+ Smeltery.addMelting(new ItemStack(item_GreenMintIngot, 1, 0), block_GreenMintBlock, 0, 500, new FluidStack(moltenGreenMint, TConstruct.ingotLiquidValue));
+ Smeltery.addMelting(block_GreenMintBlock, 0, 500, new FluidStack(moltenGreenMint, TConstruct.ingotLiquidValue * 9));
+
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(
+ new ItemStack(item_GreenMintIngot, 1, 0),
+ new FluidStack(moltenGreenMint, TConstruct.ingotLiquidValue),
+ TConstructRegistry.getItemStack("ingotCast"), false, 50);
+ TConstructRegistry.instance.getBasinCasting().addCastingRecipe(
+ new ItemStack(block_GreenMintBlock, 1, 0),
+ new FluidStack(moltenGreenMint,
+ TConstruct.ingotLiquidValue * 9), 100);
+
+ castMolten(moltenGreenMint, config.GreenMintMatID);
+
+ PatternBuilder.instance.registerFullMaterial(new ItemStack(
+ item_GreenMintcane, 1, 0), 2, "GreenMint", new ItemStack(
+ TinkerTools.toolShard, 1, config.GreenMintMatID), new ItemStack(
+ TinkerTools.toolRod, 1, config.GreenMintMatID), config.GreenMintMatID);
+
+
+ //Cloth
+ TConstructRegistry.addCustomMaterial(new ClothMaterial(0, 2, new ItemStack(Blocks.wool,1,0), new ItemStack(TinkersDefense.partCloth,1,0), 0xffffff));
+ TConstructRegistry.addCustomMaterial(new ClothMaterial(1, 2, new ItemStack(Blocks.wool,1,1), new ItemStack(TinkersDefense.partCloth,1,1), 0xe08c54));
+ TConstructRegistry.addCustomMaterial(new ClothMaterial(2, 2, new ItemStack(Blocks.wool,1,2), new ItemStack(TinkersDefense.partCloth,1,2), 0xc16bc9));
+ TConstructRegistry.addCustomMaterial(new ClothMaterial(3, 2, new ItemStack(Blocks.wool,1,3), new ItemStack(TinkersDefense.partCloth,1,3), 0x8ba4d6));
+ TConstructRegistry.addCustomMaterial(new ClothMaterial(4, 2, new ItemStack(Blocks.wool,1,4), new ItemStack(TinkersDefense.partCloth,1,4), 0xcfc231));
+ TConstructRegistry.addCustomMaterial(new ClothMaterial(5, 2, new ItemStack(Blocks.wool,1,5), new ItemStack(TinkersDefense.partCloth,1,5), 0x50c447));
+ TConstructRegistry.addCustomMaterial(new ClothMaterial(6, 2, new ItemStack(Blocks.wool,1,6), new ItemStack(TinkersDefense.partCloth,1,6), 0xdea5b3));
+ TConstructRegistry.addCustomMaterial(new ClothMaterial(7, 2, new ItemStack(Blocks.wool,1,7), new ItemStack(TinkersDefense.partCloth,1,7), 0x494949));
+ TConstructRegistry.addCustomMaterial(new ClothMaterial(8, 2, new ItemStack(Blocks.wool,1,8), new ItemStack(TinkersDefense.partCloth,1,8), 0xb6baba));
+ TConstructRegistry.addCustomMaterial(new ClothMaterial(9, 2, new ItemStack(Blocks.wool,1,9), new ItemStack(TinkersDefense.partCloth,1,9), 0x3782a1));
+ TConstructRegistry.addCustomMaterial(new ClothMaterial(10, 2, new ItemStack(Blocks.wool,1,10), new ItemStack(TinkersDefense.partCloth,1,10), 0x9453c9));
+ TConstructRegistry.addCustomMaterial(new ClothMaterial(11, 2, new ItemStack(Blocks.wool,1,11), new ItemStack(TinkersDefense.partCloth,1,11), 0x3543a6));
+ TConstructRegistry.addCustomMaterial(new ClothMaterial(12, 2, new ItemStack(Blocks.wool,1,12), new ItemStack(TinkersDefense.partCloth,1,12), 0x5c3a24));
+ TConstructRegistry.addCustomMaterial(new ClothMaterial(13, 2, new ItemStack(Blocks.wool,1,13), new ItemStack(TinkersDefense.partCloth,1,13), 0x3e5420));
+ TConstructRegistry.addCustomMaterial(new ClothMaterial(14, 2, new ItemStack(Blocks.wool,1,14), new ItemStack(TinkersDefense.partCloth,1,14), 0xb03e38));
+ TConstructRegistry.addCustomMaterial(new ClothMaterial(15, 2, new ItemStack(Blocks.wool,1,15), new ItemStack(TinkersDefense.partCloth,1,15), 0x242222));
+
+
// Shields
TConstructRegistry.addToolRecipe(tool_roundShield,
partArmorplate, TinkerTools.toolRod,
@@ -608,6 +761,8 @@ public class TinkersDefense {
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");
diff --git a/src/main/java/lance5057/tDefense/armor/ArmorCore.java b/src/main/java/lance5057/tDefense/armor/ArmorCore.java
index 3853c3d..1410b8a 100644
--- a/src/main/java/lance5057/tDefense/armor/ArmorCore.java
+++ b/src/main/java/lance5057/tDefense/armor/ArmorCore.java
@@ -9,10 +9,13 @@ 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.minecraft.util.IChatComponent;
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.ToolCore;
@@ -38,13 +41,15 @@ public class ArmorCore extends ToolCore implements ISpecialArmor//, IAccessoryMo
public ArmorProperties getProperties(EntityLivingBase player,
ItemStack armor, DamageSource source, double damage, int slot)
{
- return new ArmorProperties(0, 10, 100); //TODO figure this out
+ ArmorProperties armorp = new ArmorProperties(0, 0.8, 100); //TODO figure this out
+ ((EntityPlayer)player).addChatComponentMessage(new ChatComponentText(Double.toString(damage)));
+ return armorp;
}
@Override
public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot)
{
- return 1;
+ return 0;
}
public int getSlot()
@@ -52,7 +57,7 @@ public class ArmorCore extends ToolCore implements ISpecialArmor//, IAccessoryMo
return slot;
}
- public ModelBiped getModel(String[] color)
+ public ModelBiped getModel(String[] color, NBTTagCompound tags)
{
return armorModel;
}
diff --git a/src/main/java/lance5057/tDefense/armor/events/ArmorRenderEvent.java b/src/main/java/lance5057/tDefense/armor/events/ArmorRenderEvent.java
index 343ddc0..21ed906 100644
--- a/src/main/java/lance5057/tDefense/armor/events/ArmorRenderEvent.java
+++ b/src/main/java/lance5057/tDefense/armor/events/ArmorRenderEvent.java
@@ -3,7 +3,9 @@ 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;
@@ -11,7 +13,7 @@ public class ArmorRenderEvent
{
@SubscribeEvent
- public void renderArmorEvent(RenderPlayerEvent.Specials.Post event) {
+ public void renderArmorEvent(RenderPlayerEvent.SetArmorModel event) {
if (event.entityPlayer != null)
{
for(int i = 0; i < 4 ; i++)
@@ -19,6 +21,7 @@ public class ArmorRenderEvent
if(event.entityPlayer.inventory.armorItemInSlot(i) != null)
{
ItemStack Armor = event.entityPlayer.inventory.armorItemInSlot(i);
+ NBTTagCompound tags = Armor.getTagCompound();
if(Armor.getItem() instanceof ArmorCore)
{
@@ -28,24 +31,29 @@ public class ArmorRenderEvent
for(int j = 0; j<10; j++)
color[j] = Integer.toHexString(AArmor.getColorFromItemStack(Armor, j));
- ModelBiped armorModel = AArmor.getModel(color);
+ ModelBiped armorModel = AArmor.getModel(color, tags);
- float size;
- switch(AArmor.getSlot())
- {
- case 0: size = 0.085f; break;
- case 1: size = .126f; break;
-
- default: size = 0.1f; break;
+ if (armorModel != null) {
+ armorModel.isSneak = event.entityPlayer.isSneaking();
+ armorModel.isRiding = event.entityPlayer.isRiding();
+ armorModel.isChild = event.entityPlayer.isChild();
+ armorModel.heldItemRight = event.entityPlayer.getHeldItem() != null ? 1
+ : 0;
+
+ if (event.entityPlayer instanceof EntityPlayer) {
+ armorModel.aimedBow = ((EntityPlayer) event.entityPlayer)
+ .getItemInUseDuration() > 2;
+ }
}
float yaw = event.entityPlayer.prevRotationYawHead + (event.entityPlayer.rotationYawHead - event.entityPlayer.prevRotationYawHead) * event.partialRenderTick;
float yawOffset = event.entityPlayer.prevRenderYawOffset + (event.entityPlayer.renderYawOffset - event.entityPlayer.prevRenderYawOffset) * event.partialRenderTick;
float limbs = event.entityPlayer.prevLimbSwingAmount + (event.entityPlayer.limbSwingAmount - event.entityPlayer.prevLimbSwingAmount) * event.partialRenderTick;
-
- armorModel.render(event.entityPlayer, event.entityPlayer.limbSwing, limbs,event.entityPlayer.ticksExisted ,
+ float limbSwing = event.entityPlayer.limbSwing - event.entityPlayer.limbSwingAmount * (1.0F - event.partialRenderTick);
+
+ armorModel.render(event.entityPlayer, limbSwing, limbs,event.entityPlayer.ticksExisted ,
yaw - yawOffset
- , event.entityPlayer.rotationPitch, size);
+ , event.entityPlayer.rotationPitch, 0.1f);
}
}
}
diff --git a/src/main/java/lance5057/tDefense/armor/items/ClothArmor.java b/src/main/java/lance5057/tDefense/armor/items/ClothArmor.java
deleted file mode 100644
index e297028..0000000
--- a/src/main/java/lance5057/tDefense/armor/items/ClothArmor.java
+++ /dev/null
@@ -1,76 +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 ClothArmor extends ItemArmor {
- public ClothArmor(ArmorMaterial par2EnumArmorMaterial, int par3, int par4) {
- super(par2EnumArmorMaterial, par3, par4);
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public void registerIcons(IIconRegister par1IconRegister) {
- String itemName = "tinkersdefense:textures/armor/ClothArmor";
- this.itemIcon = par1IconRegister.registerIcon(itemName);
- }
-
- @Override
- public String getArmorTexture(ItemStack stack, Entity entity, int slot,
- String type) {
- return "tinkersdefense:textures/armor/ClothArmor.png";
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public ModelBiped getArmorModel(EntityLivingBase entityLiving,
- ItemStack itemStack, int armorSlot) {
-
- // return ClientProxy.chain;
- ModelBiped armorModel = ClientProxy.cloth;
- 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
new file mode 100644
index 0000000..33f42b2
--- /dev/null
+++ b/src/main/java/lance5057/tDefense/armor/items/cloth/TinkersHood.java
@@ -0,0 +1,124 @@
+package lance5057.tDefense.armor.items.cloth;
+
+import lance5057.tDefense.TinkersDefense;
+import lance5057.tDefense.armor.ArmorCore;
+import lance5057.tDefense.armor.renderers.heavy.ModelTinkersHelm;
+import net.minecraft.client.model.ModelBiped;
+import net.minecraft.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.tools.TinkerTools;
+
+public class TinkersHood extends ArmorCore
+{
+ public TinkersHood() {
+ super(2,0);
+ this.setUnlocalizedName("tinkershelm");
+ }
+
+ @Override
+ public Item getHeadItem()
+ {
+ return TinkerTools.frypanHead;
+ }
+
+ @Override
+ public Item getHandleItem() {
+ return TinkerTools.toughRod;
+ }
+
+ @Override
+ public Item getAccessoryItem()
+ {
+ return TinkersDefense.partArmorplate;
+ }
+
+ @Override
+ public int durabilityTypeAccessory() {
+ return 2;
+ }
+
+ @Override
+ public float getRepairCost() {
+ return 4.0f;
+ }
+
+ @Override
+ public float getDurabilityModifier() {
+ return 2.5f;
+ }
+
+ @Override
+ public float getDamageModifier() {
+ return 1.4f;
+ }
+
+ @Override
+ public int getPartAmount() {
+ return 3;
+ }
+
+ @Override
+ public String getIconSuffix(int partType)
+ {
+ switch (partType) {
+ case 0:
+ return "_helm_top";
+ case 1:
+ return "_helm_top_broken";
+ case 2:
+ return "_helm_visor";
+ case 3:
+ return "_helm_chain";
+ default:
+ return "";
+ }
+ }
+
+ @Override
+ public String getEffectSuffix()
+ {
+ return "_helm_effect";
+ }
+
+ @Override
+ public String getDefaultFolder()
+ {
+ return "armor/helm";
+ }
+
+// @Override
+// public void onUpdate(ItemStack stack, World world, Entity entity, int par4,
+// boolean par5) {
+// super.onUpdate(stack, world, entity, par4, par5);
+//
+// }
+
+ @Override
+ public String getArmorTexture(ItemStack stack, Entity entity, int slot,
+ String type) {
+ return "tinkersdefense:textures/armor/TinkersHelm.png";
+ }
+
+ @Override
+ public String[] getTraits() {
+ return new String[] {"armor","helmet","helm","heavyarmor"};
+ }
+
+ @Override
+ 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;
+ }
+
+ @Override
+ public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot)
+ {
+ return 2;
+ }
+}
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 0b690c3..3a8be65 100644
--- a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersBreastplate.java
+++ b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersBreastplate.java
@@ -6,8 +6,10 @@ 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.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import tconstruct.tools.TinkerTools;
@@ -116,11 +118,12 @@ public class TinkersBreastplate extends ArmorCore
}
@Override
- public ModelBiped getModel(String[] color)
+ 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;
}
}
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 d0fd9f8..4903bde 100644
--- a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersGrieves.java
+++ b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersGrieves.java
@@ -1,57 +1,126 @@
package lance5057.tDefense.armor.items.heavy;
+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.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.Item;
import net.minecraft.item.ItemStack;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.world.World;
+import tconstruct.tools.TinkerTools;
-public class TinkersGrieves extends ItemArmor {
- public TinkersGrieves(ArmorMaterial par2EnumArmorMaterial, int par3, int par4) {
- super(par2EnumArmorMaterial, par3, par4);
+public class TinkersGrieves extends ArmorCore
+{
+ public TinkersGrieves() {
+ super(0,2);
+ this.setUnlocalizedName("tinkergrieves");
+ }
+
+ @Override
+ public Item getHeadItem()
+ {
+ return TinkersDefense.partArmorplate;
+ }
+
+ @Override
+ public Item getHandleItem() {
+ return TinkerTools.toughRod;
+ }
+
+ @Override
+ public Item getAccessoryItem()
+ {
+ return TinkersDefense.partChainmaille;
+ }
+
+ @Override
+ public Item getExtraItem()
+ {
+ return TinkersDefense.partArmorplate;
+ }
+
+ @Override
+ public int durabilityTypeAccessory() {
+ return 2;
}
@Override
- @SideOnly(Side.CLIENT)
- public void registerIcons(IIconRegister par1IconRegister) {
- String itemName = "tinkersdefense:textures/armor/TinkersGrieves";
- this.itemIcon = par1IconRegister.registerIcon(itemName);
+ public float getRepairCost() {
+ return 4.0f;
}
@Override
+ public float getDurabilityModifier() {
+ return 2.5f;
+ }
+
+ @Override
+ public float getDamageModifier() {
+ return 1.4f;
+ }
+
+ @Override
+ public int getPartAmount() {
+ return 4;
+ }
+
+ @Override
+ public String getIconSuffix(int partType)
+ {
+ switch (partType) {
+ case 0:
+ return "_grieves_plate";
+ case 1:
+ return "_grieves_plate_broken";
+ case 2:
+ return "_grieves_trim";
+ case 3:
+ return "_grieves_chain";
+ case 4:
+ return "_grieves_cod";
+ default:
+ return "";
+ }
+ }
+
+ @Override
+ public String getEffectSuffix()
+ {
+ return "_grieves_effect";
+ }
+
+ @Override
+ public String getDefaultFolder()
+ {
+ return "armor/grieves";
+ }
+
+// @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/TinkersGrieves.png";
}
+
+ @Override
+ public String[] getTraits() {
+ return new String[] {"armor","pants","grieves","heavyarmor"};
+ }
@Override
- @SideOnly(Side.CLIENT)
- public ModelBiped getArmorModel(EntityLivingBase entityLiving,
- ItemStack itemStack, int armorSlot)
+ public ModelBiped getModel(String[] color,NBTTagCompound tags)
{
- ModelBiped armorModel = new ModelTinkersGrieves();
- if (itemStack != null) {
-
- if (armorModel != null) {
- armorModel.isSneak = entityLiving.isSneaking();
- armorModel.isRiding = entityLiving.isRiding();
- armorModel.isChild = entityLiving.isChild();
- armorModel.heldItemRight = entityLiving.getHeldItem() != null ? 1
- : 0;
-
- if (entityLiving instanceof EntityPlayer) {
- armorModel.aimedBow = ((EntityPlayer) entityLiving)
- .getItemInUseDuration() > 2;
- }
- return armorModel;
- }
- }
+ String[] textures = {this.getIconSuffix(2),this.getIconSuffix(0),this.getIconSuffix(3), this.getIconSuffix(4)};
+
+ armorModel = new ModelTinkersGrieves(color, this.getDefaultFolder(), textures);
return armorModel;
}
-
-} \ No newline at end of file
+}
diff --git a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java
index 7a49650..a4444d4 100644
--- a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java
+++ b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersHelm.java
@@ -5,15 +5,17 @@ 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.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import tconstruct.tools.TinkerTools;
public class TinkersHelm extends ArmorCore
{
public TinkersHelm() {
- super(0,0);
+ super(2,0);
this.setUnlocalizedName("tinkershelm");
}
@@ -107,11 +109,17 @@ public class TinkersHelm extends ArmorCore
}
@Override
- public ModelBiped getModel(String[] color)
+ 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;
}
+
+ @Override
+ public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot)
+ {
+ return 2;
+ }
}
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 38078af..2ada754 100644
--- a/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersSabatons.java
+++ b/src/main/java/lance5057/tDefense/armor/items/heavy/TinkersSabatons.java
@@ -1,57 +1,133 @@
package lance5057.tDefense.armor.items.heavy;
+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.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.Item;
import net.minecraft.item.ItemStack;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.nbt.NBTTagCompound;
+import tconstruct.library.TConstructRegistry;
+import tconstruct.library.tools.CustomMaterial;
+import tconstruct.tools.TinkerTools;
-public class TinkersSabatons extends ItemArmor {
- public TinkersSabatons(ArmorMaterial par2EnumArmorMaterial, int par3, int par4) {
- super(par2EnumArmorMaterial, par3, par4);
+public class TinkersSabatons extends ArmorCore
+{
+ public TinkersSabatons() {
+ super(0,3);
+ this.setUnlocalizedName("tinkersabatons");
+ }
+
+ @Override
+ public Item getHeadItem()
+ {
+ return TinkersDefense.partArmorplate;
+ }
+
+ @Override
+ public Item getHandleItem() {
+ return TinkerTools.toughRod;
+ }
+
+ @Override
+ public Item getAccessoryItem()
+ {
+ return TinkersDefense.partArmorplate;
+ }
+
+ @Override
+ public Item getExtraItem()
+ {
+ return TinkersDefense.partCloth;
+ }
+
+ @Override
+ public int durabilityTypeAccessory() {
+ return 2;
}
@Override
- @SideOnly(Side.CLIENT)
- public void registerIcons(IIconRegister par1IconRegister) {
- String itemName = "tinkersdefense:textures/armor/TinkersSabatons";
- this.itemIcon = par1IconRegister.registerIcon(itemName);
+ public float getRepairCost() {
+ return 4.0f;
}
@Override
+ public float getDurabilityModifier() {
+ return 2.5f;
+ }
+
+ @Override
+ public float getDamageModifier() {
+ return 1.4f;
+ }
+
+ @Override
+ public int getPartAmount() {
+ return 4;
+ }
+
+ @Override
+ public String getIconSuffix(int partType)
+ {
+ switch (partType) {
+ case 0:
+ return "_sabatons_plates";
+ case 1:
+ return "_sabatons_plate_broken";
+ case 2:
+ return "_sabatons_trim";
+ case 3:
+ return "_sabatons_caps";
+ case 4:
+ return "_sabatons_soles";
+ default:
+ return "";
+ }
+ }
+
+ @Override
+ public String getEffectSuffix()
+ {
+ return "_sabatons_effect";
+ }
+
+ @Override
+ public String getDefaultFolder()
+ {
+ return "armor/sabatons";
+ }
+
+// @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/TinkersSabatons.png";
}
+
+ @Override
+ public String[] getTraits() {
+ return new String[] {"armor","shoes","sabatons","heavyarmor"};
+ }
@Override
- @SideOnly(Side.CLIENT)
- public ModelBiped getArmorModel(EntityLivingBase entityLiving,
- ItemStack itemStack, int armorSlot)
+ public ModelBiped getModel(String[] color, NBTTagCompound tags)
{
- ModelBiped armorModel = new ModelTinkersSabatons();
- if (itemStack != null) {
-
- if (armorModel != null) {
- armorModel.isSneak = entityLiving.isSneaking();
- armorModel.isRiding = entityLiving.isRiding();
- armorModel.isChild = entityLiving.isChild();
- armorModel.heldItemRight = entityLiving.getHeldItem() != null ? 1
- : 0;
-
- if (entityLiving instanceof EntityPlayer) {
- armorModel.aimedBow = ((EntityPlayer) entityLiving)
- .getItemInUseDuration() > 2;
- }
- return armorModel;
- }
- }
+ 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;
}
-
-} \ No newline at end of file
+}
diff --git a/src/main/java/lance5057/tDefense/armor/parts/Cloth.java b/src/main/java/lance5057/tDefense/armor/parts/Cloth.java
new file mode 100644
index 0000000..5613157
--- /dev/null
+++ b/src/main/java/lance5057/tDefense/armor/parts/Cloth.java
@@ -0,0 +1,40 @@
+package lance5057.tDefense.armor.parts;
+
+import mantle.items.abstracts.CraftingItem;
+import net.minecraft.item.ItemStack;
+import tconstruct.library.TConstructRegistry;
+import tconstruct.library.util.IToolPart;
+
+public class Cloth extends CraftingItem implements IToolPart
+{
+ public Cloth()
+ {
+ super(toolMaterialNames, buildTextureNames("_cloth"), "parts/", "tinker", TConstructRegistry.materialTab);
+ this.setHasSubtypes(true);
+ this.setMaxDamage(0);
+ }
+
+ private static String[] buildTextureNames (String textureType)
+ {
+ String[] names = new String[toolMaterialNames.length];
+ for (int i = 0; i < toolMaterialNames.length; i++)
+ {
+ if (toolTextureNames[i].equals(""))
+ names[i] = "";
+ else
+ names[i] = toolTextureNames[i] + textureType;
+ }
+ return names;
+ }
+
+ public static final String[] toolMaterialNames = new String[] { "white", "orange", "magenta", "lightblue", "yellow", "lime", "pink", "gray", "lightgray", "cyan", "purple", "blue", "brown", "green", "red", "black" };
+ public static final String[] toolTextureNames = new String[] { "white", "orange", "magenta", "lightblue", "yellow", "lime", "pink", "gray", "lightgray", "cyan", "purple", "blue", "brown", "green", "red", "black" };
+
+ @Override
+ public int getMaterialID (ItemStack stack)
+ {
+ if (stack.getItemDamage() >= toolMaterialNames.length)
+ return -1;
+ return stack.getItemDamage();
+ }
+} \ No newline at end of file
diff --git a/src/main/java/lance5057/tDefense/armor/parts/ClothMaterial.java b/src/main/java/lance5057/tDefense/armor/parts/ClothMaterial.java
new file mode 100644
index 0000000..40bf260
--- /dev/null
+++ b/src/main/java/lance5057/tDefense/armor/parts/ClothMaterial.java
@@ -0,0 +1,14 @@
+package lance5057.tDefense.armor.parts;
+
+import net.minecraft.item.ItemStack;
+import tconstruct.library.tools.CustomMaterial;
+
+public class ClothMaterial extends CustomMaterial
+{
+
+ public ClothMaterial(int materialID, int value, ItemStack input,
+ ItemStack craftingItem, int color) {
+ super(materialID, value, input, craftingItem, color);
+ }
+
+}
diff --git a/src/main/java/lance5057/tDefense/armor/parts/Item_Cloth.java b/src/main/java/lance5057/tDefense/armor/parts/Item_Cloth.java
deleted file mode 100644
index 26f54b1..0000000
--- a/src/main/java/lance5057/tDefense/armor/parts/Item_Cloth.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package lance5057.tDefense.armor.parts;
-
-import java.util.List;
-
-import lance5057.tDefense.TinkersDefense;
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.IIcon;
-
-public class Item_Cloth extends Item
-{
- public IIcon[] icons = new IIcon[16];
- public static final String[] colors = new String[] {"black", "red", "green", "brown", "blue", "purple", "cyan", "silver", "grey", "pink", "lime", "yellow", "lightBlue", "magenta", "orange", "white"};
-
- public Item_Cloth()
- {
- super();
- this.setHasSubtypes(true);
- this.setUnlocalizedName("Cloth");
- this.setCreativeTab(TinkersDefense.tabName);
- }
-
- @Override
- public void registerIcons(IIconRegister reg) {
- for (int i = 0; i < 16; i ++) {
- this.icons[i] = reg.registerIcon("tinkersdefense:" + colors[i] + "_cloth" );
- }
- }
-
- @Override
- public IIcon getIconFromDamage(int meta) {
- if (meta > 15)
- meta = 0;
-
- return this.icons[meta];
- }
-
- @Override
- public void getSubItems(Item item, CreativeTabs tab, List list) {
- for (int i = 0; i < 16; i ++) {
- list.add(new ItemStack(item, 1, i));
- }
- }
-
- @Override
- public String getUnlocalizedName(ItemStack stack) {
- return colors[stack.getItemDamage()] + "_" + this.getUnlocalizedName();
- }
-}
diff --git a/src/main/java/lance5057/tDefense/armor/parts/Item_Glowthread.java b/src/main/java/lance5057/tDefense/armor/parts/Item_Glowthread.java
deleted file mode 100644
index 8539c6f..0000000
--- a/src/main/java/lance5057/tDefense/armor/parts/Item_Glowthread.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package lance5057.tDefense.armor.parts;
-
-import java.util.List;
-
-import lance5057.tDefense.TinkersDefense;
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.IIcon;
-
-public class Item_Glowthread extends Item
-{
- public IIcon[] icons = new IIcon[16];
- public static final String[] colors = new String[] {"black", "red", "green", "brown", "blue", "purple", "cyan", "silver", "grey", "pink", "lime", "yellow", "lightBlue", "magenta", "orange", "white"};
-
- public Item_Glowthread()
- {
- super();
- this.setHasSubtypes(true);
- this.setUnlocalizedName("GlowThread");
- this.setCreativeTab(TinkersDefense.tabName);
- }
-
- @Override
- public void registerIcons(IIconRegister reg) {
- for (int i = 0; i < 16; i ++) {
- this.icons[i] = reg.registerIcon("tinkersdefense:" + colors[i] + "_glowthread" );
- }
- }
-
- @Override
- public IIcon getIconFromDamage(int meta) {
- if (meta > 15)
- meta = 0;
-
- return this.icons[meta];
- }
-
- @Override
- public void getSubItems(Item item, CreativeTabs tab, List list) {
- for (int i = 0; i < 16; i ++) {
- list.add(new ItemStack(item, 1, i));
- }
- }
-
- @Override
- public String getUnlocalizedName(ItemStack stack) {
- return colors[stack.getItemDamage()] + "_" + this.getUnlocalizedName();
- }
-}
diff --git a/src/main/java/lance5057/tDefense/armor/parts/Item_Thread.java b/src/main/java/lance5057/tDefense/armor/parts/Item_Thread.java
deleted file mode 100644
index f1bc61c..0000000
--- a/src/main/java/lance5057/tDefense/armor/parts/Item_Thread.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package lance5057.tDefense.armor.parts;
-
-import java.util.List;
-
-import lance5057.tDefense.TinkersDefense;
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.IIcon;
-
-public class Item_Thread extends Item
-{
- public IIcon[] icons = new IIcon[16];
- public static final String[] colors = new String[] {"black", "red", "green", "brown", "blue", "purple", "cyan", "silver", "grey", "pink", "lime", "yellow", "lightBlue", "magenta", "orange", "white"};
-
- public Item_Thread()
- {
- super();
- this.setHasSubtypes(true);
- this.setUnlocalizedName("Thread");
- this.setCreativeTab(TinkersDefense.tabName);
- }
-
- @Override
- public void registerIcons(IIconRegister reg) {
- for (int i = 0; i < 16; i ++) {
- this.icons[i] = reg.registerIcon("tinkersdefense:" + colors[i] + "_thread" );
- }
- }
-
- @Override
- public IIcon getIconFromDamage(int meta) {
- if (meta > 15)
- meta = 0;
-
- return this.icons[meta];
- }
-
- @Override
- public void getSubItems(Item item, CreativeTabs tab, List list) {
- for (int i = 0; i < 16; i ++) {
- list.add(new ItemStack(item, 1, i));
- }
- }
-
- @Override
- public String getUnlocalizedName(ItemStack stack) {
- return colors[stack.getItemDamage()] + "_" + this.getUnlocalizedName();
- }
-}
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 4978724..7c99478 100644
--- a/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersBreastplate.java
+++ b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersBreastplate.java
@@ -116,7 +116,9 @@ public class ModelTinkersBreastplate extends ModelBiped
FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation("tinkersdefense:textures/" + defaultFolder + "/" + textures[i] + ".png"));
- GL11.glTranslatef(0f, -1.51f, 0f);
+ float size =1.5f;
+ GL11.glScalef(1.0F / size, 1.0F / size, 1.0F / size);
+ GL11.glTranslatef(0.0F, -0F*f5, 0.0F);
int[] intColors = TinkersDefense.hexToRGB(colors[i]);
GL11.glColor3d((float)intColors[0]/255, (float)intColors[1]/255, (float)intColors[2]/255);
diff --git a/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersGrieves.java b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersGrieves.java
index 99ee68b..ecc00da 100644
--- a/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersGrieves.java
+++ b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersGrieves.java
@@ -1,8 +1,14 @@
package lance5057.tDefense.armor.renderers.heavy;
+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;
/**
* TinkersGrieves - Either Mojang or a mod author
@@ -18,9 +24,18 @@ public class ModelTinkersGrieves extends ModelBiped {
public ModelRenderer LeftLeg;
public ModelRenderer RightLeg;
- public ModelTinkersGrieves()
+ public String[] colors;
+
+ public String[] textures;
+ public String defaultFolder;
+
+ public ModelTinkersGrieves(String[] colors, String defaultFolder, String[] textures)
{
- super(1.0f, 0, 64,64);
+ super(1f, 0, 64,64);
+
+ this.colors = colors;
+ this.textures = textures;
+ this.defaultFolder = defaultFolder;
this.textureWidth = 64;
this.textureHeight = 64;
@@ -69,14 +84,31 @@ public class ModelTinkersGrieves extends ModelBiped {
this.Belt = new ModelRenderer(this, 0, 57);
this.Belt.setRotationPoint(0.0F, 0.0F, 0.0F);
- this.Belt.addBox(-4.5F, 10.0F, -2.5F, 9, 2, 5, 0.0F);
+ this.Belt.addBox(-4.5F, 10.0F, -2.5F, 9, 2, 5, -0.25F);
this.bipedBody.addChild(this.Belt);
}
@Override
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
- super.render(entity, f, f1, f2, f3, f4, f5);
- setRotationAngles(f, f1, f2, f3, f4, f5, entity);
+ GL11.glPushMatrix();
+ for(int i = 0; i<4; 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, -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();
}
/**
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 283e75f..c210df7 100644
--- a/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersHelm.java
+++ b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersHelm.java
@@ -27,7 +27,7 @@ public class ModelTinkersHelm extends ModelBiped
public ModelTinkersHelm(String[] colors, String defaultFolder, String[] textures)
{
- super(1f, 0, 64,64);
+ super(1.5f, 0, 64,64);
this.colors = colors;
this.textures = textures;
@@ -68,8 +68,9 @@ public class ModelTinkersHelm extends ModelBiped
FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation("tinkersdefense:textures/" + defaultFolder + "/" + textures[i] + ".png"));
- GL11.glTranslatef(0f, -1f, 0f);
-
+ float size = 1.75f;
+ GL11.glScalef(1.5F / size, 1.5F / size, 1.5F / size);
+ GL11.glTranslatef(0.0F, -12F * 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 572f4cb..0d7fd15 100644
--- a/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersSabatons.java
+++ b/src/main/java/lance5057/tDefense/armor/renderers/heavy/ModelTinkersSabatons.java
@@ -1,8 +1,17 @@
package lance5057.tDefense.armor.renderers.heavy;
+import java.io.File;
+
+import lance5057.tDefense.TinkersDefense;
+
+import org.lwjgl.opengl.GL11;
+
+import tconstruct.library.TConstructRegistry;
+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
@@ -23,10 +32,19 @@ public class ModelTinkersSabatons extends ModelBiped
public ModelRenderer KneeGuardL;
public ModelRenderer KneeGuardCapR;
- public ModelTinkersSabatons()
+ public String[] colors;
+
+ public String[] textures;
+ public String defaultFolder;
+
+ public ModelTinkersSabatons(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;
@@ -105,8 +123,29 @@ public class ModelTinkersSabatons extends ModelBiped
@Override
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
- super.render(entity, f, f1, f2, f3, f4, f5);
- setRotationAngles(f, f1, f2, f3, f4, f5, entity);
+ GL11.glPushMatrix();
+
+ for(int i = 0; i<4; i++)
+ {
+ //TConstructRegistry.getCustomMaterial(arg0, arg1)
+ GL11.glPushMatrix();
+ ResourceLocation texture = new ResourceLocation("tinkersdefense:textures/" + defaultFolder + "/" + textures[i] + ".png");
+ //Boolean exists = new File(texture.getResourceDomain() + ":" + texture.getResourcePath()).exists();
+ FMLClientHandler.instance().getClient().renderEngine.bindTexture(texture);
+
+
+ float size =0.75f;
+ GL11.glScalef(1.0F / size, 1.0F / size, 1.0F / size);
+ GL11.glTranslatef(0.0F, -12.4F*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();
}
/**
diff --git a/src/main/java/lance5057/tDefense/core/TD_Patterns.java b/src/main/java/lance5057/tDefense/core/TD_Patterns.java
index 7b33e18..66cbefa 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","cloth","chainmaille"};
+ private static final String[] patternName = new String[] {"rivets","clasp","armorplate","chainmaille"};
public TD_Patterns(String patternType, String name) {
super(patternName, getPatternNames(patternName, patternType), "patterns/");
diff --git a/src/main/java/lance5057/tDefense/core/blocks/GreenMintBlock.java b/src/main/java/lance5057/tDefense/core/blocks/GreenMintBlock.java
new file mode 100644
index 0000000..b598b02
--- /dev/null
+++ b/src/main/java/lance5057/tDefense/core/blocks/GreenMintBlock.java
@@ -0,0 +1,15 @@
+package lance5057.tDefense.core.blocks;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+
+public class GreenMintBlock extends Block
+{
+
+ public GreenMintBlock (Material material)
+ {
+ super(material);
+ setHarvestLevel("pickaxe",2);
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/lance5057/tDefense/core/blocks/RedMintBlock.java b/src/main/java/lance5057/tDefense/core/blocks/RedMintBlock.java
new file mode 100644
index 0000000..0b3ca48
--- /dev/null
+++ b/src/main/java/lance5057/tDefense/core/blocks/RedMintBlock.java
@@ -0,0 +1,15 @@
+package lance5057.tDefense.core.blocks;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+
+public class RedMintBlock extends Block
+{
+
+ public RedMintBlock (Material material)
+ {
+ super(material);
+ setHarvestLevel("pickaxe",2);
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/lance5057/tDefense/core/events/TDEventHandler.java b/src/main/java/lance5057/tDefense/core/events/TDEventHandler.java
index 8b7a845..845419c 100644
--- a/src/main/java/lance5057/tDefense/core/events/TDEventHandler.java
+++ b/src/main/java/lance5057/tDefense/core/events/TDEventHandler.java
@@ -1,15 +1,24 @@
package lance5057.tDefense.core.events;
+import lance5057.tDefense.TinkersDefense;
+import lance5057.tDefense.armor.parts.ClothMaterial;
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.projectile.EntityFireball;
import net.minecraft.entity.projectile.EntityLargeFireball;
+import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
-import net.minecraft.util.ChatComponentText;
import net.minecraft.util.Vec3;
import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.entity.living.LivingDropsEvent;
+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.eventhandler.SubscribeEvent;
public class TDEventHandler {
@@ -19,13 +28,31 @@ public class TDEventHandler {
}
@SubscribeEvent
+ public void craftTDPart(PartBuilderEvent.NormalPart event)
+ {
+ // Cloth
+ if (event.pattern.getItem() == TinkersDefense.woodPattern && event.pattern.getItemDamage() == 3)
+ {
+ ItemStack result = null;
+
+ ClothMaterial mat = (ClothMaterial) TConstructRegistry.getCustomMaterial(event.material, ClothMaterial.class);
+ if (mat != null && event.material.stackSize >= 3)
+ result = mat.craftingItem.copy();
+
+ if (result != null)
+ {
+ event.overrideResult(new ItemStack[] { result, null });
+ }
+ }
+ }
+
+ @SubscribeEvent
public void TD_ShieldBlock(ShieldBlockEvent event)
{
NBTTagCompound tags = event.shield.getTagCompound().getCompoundTag("InfiTool");
if (!tags.getBoolean("Broken"))
{
- event.getPlayer().addChatComponentMessage(new ChatComponentText("Pow!"));
if(tags.hasKey("Crest of Mirrors"))
{
@@ -60,8 +87,6 @@ public class TDEventHandler {
//ent.
ent.setDead();
-
- event.getPlayer().addChatComponentMessage(new ChatComponentText("Nom"));
}
}
@@ -78,4 +103,39 @@ 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)));
+
+ }
+ }
+
+ @SubscribeEvent
+ public void giveCandyToUndead(LivingSpawnEvent event)
+ {
+ //if(!Minecraft.getMinecraft().theWorld.isRemote)
+ if(TinkersDefense.month == 12)
+ {
+ if(event.entityLiving.isEntityUndead())
+ {
+ Integer chance = Minecraft.getMinecraft().theWorld.rand.nextInt(100);
+ Boolean candy = Minecraft.getMinecraft().theWorld.rand.nextBoolean();
+ if(chance < 25)
+ {
+ if(candy == true)
+ event.entityLiving.setCurrentItemOrArmor(0, new ItemStack(TinkersDefense.item_RedMintcane,1,0));
+ else
+ event.entityLiving.setCurrentItemOrArmor(0, new ItemStack(TinkersDefense.item_GreenMintcane,1,0));
+ }
+ }
+ }
+ }
}
diff --git a/src/main/java/lance5057/tDefense/core/liquids/moltenAeonsteelFluid.java b/src/main/java/lance5057/tDefense/core/liquids/MoltenFluid.java
index 450e4b8..49e1d15 100644
--- a/src/main/java/lance5057/tDefense/core/liquids/moltenAeonsteelFluid.java
+++ b/src/main/java/lance5057/tDefense/core/liquids/MoltenFluid.java
@@ -8,23 +8,23 @@ import net.minecraftforge.fluids.Fluid;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-public class moltenAeonsteelFluid
+public class MoltenFluid
extends BlockFluidClassic
{
private IIcon stillIcon;
private IIcon flowingIcon;
- private String stillIconTexture = "molten_Aeonsteel";
- private String flowIconTexture = "molten_Aeonsteel_flow";
+ private String stillIconTexture;
+ private String flowIconTexture;
- public moltenAeonsteelFluid(Fluid fluid)
+ public MoltenFluid(Fluid fluid, String name)
{
super(fluid, Material.lava);
setLightLevel(100.0F);
setHardness(1.0F);
- setBlockName("MoltenAeonSteel");
+ setBlockName("Molten" + name);
- this.stillIconTexture = ("tinkersdefense:" + stillIconTexture);
- this.flowIconTexture = ("tinkersdefense:" + flowIconTexture);
+ stillIconTexture = "tinkersdefense:molten_" + name;
+ flowIconTexture = "tinkersdefense:molten_"+name+"_flow";
}
@SideOnly(Side.CLIENT)
diff --git a/src/main/java/lance5057/tDefense/core/liquids/moltenDogbeariumFluid.java b/src/main/java/lance5057/tDefense/core/liquids/moltenDogbeariumFluid.java
deleted file mode 100644
index ee82745..0000000
--- a/src/main/java/lance5057/tDefense/core/liquids/moltenDogbeariumFluid.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package lance5057.tDefense.core.liquids;
-
-import net.minecraft.block.material.Material;
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.util.IIcon;
-import net.minecraftforge.fluids.BlockFluidClassic;
-import net.minecraftforge.fluids.Fluid;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-
-public class moltenDogbeariumFluid
- extends BlockFluidClassic
-{
- private IIcon stillIcon;
- private IIcon flowingIcon;
- private String stillIconTexture = "molten_Dogbearium";
- private String flowIconTexture = "molten_Dogbearium_flow";
-
- public moltenDogbeariumFluid(Fluid fluid)
- {
- super(fluid, Material.lava);
- setLightLevel(100.0F);
- setHardness(1.0F);
- setBlockName("MoltenDogbearium");
-
- this.stillIconTexture = ("tinkersdefense:" + stillIconTexture);
- this.flowIconTexture = ("tinkersdefense:" + flowIconTexture);
- }
-
- @SideOnly(Side.CLIENT)
- public void func_149651_a(IIconRegister icon)
- {
- this.stillIcon = icon.registerIcon(this.stillIconTexture);
- this.flowingIcon = icon.registerIcon(this.flowIconTexture);
-
- getFluid().setIcons(this.stillIcon, this.flowingIcon);
- }
-
- public IIcon getStillIcon()
- {
- return this.stillIcon;
- }
-
- public IIcon getFlowingIcon()
- {
- return this.flowingIcon;
- }
-
- @SideOnly(Side.CLIENT)
- public IIcon func_149691_a(int side, int meta)
- {
- if (side <= 1) {
- return this.stillIcon;
- }
- return this.flowingIcon;
- }
-}
diff --git a/src/main/java/lance5057/tDefense/core/liquids/moltenQueensGoldFluid.java b/src/main/java/lance5057/tDefense/core/liquids/moltenQueensGoldFluid.java
deleted file mode 100644
index f1ba268..0000000
--- a/src/main/java/lance5057/tDefense/core/liquids/moltenQueensGoldFluid.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package lance5057.tDefense.core.liquids;
-
-import net.minecraft.block.material.Material;
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.util.IIcon;
-import net.minecraftforge.fluids.BlockFluidClassic;
-import net.minecraftforge.fluids.Fluid;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-
-public class moltenQueensGoldFluid
- extends BlockFluidClassic
-{
- private IIcon stillIcon;
- private IIcon flowingIcon;
- private String stillIconTexture = "molten_QueensGold";
- private String flowIconTexture = "molten_QueensGold_flow";
-
- public moltenQueensGoldFluid(Fluid fluid)
- {
- super(fluid, Material.lava);
- setLightLevel(100.0F);
- setHardness(1.0F);
- setBlockName("MoltenQueensGold");
-
- this.stillIconTexture = ("tinkersdefense:" + stillIconTexture);
- this.flowIconTexture = ("tinkersdefense:" + flowIconTexture);
- }
-
- @SideOnly(Side.CLIENT)
- public void func_149651_a(IIconRegister icon)
- {
- this.stillIcon = icon.registerIcon(this.stillIconTexture);
- this.flowingIcon = icon.registerIcon(this.flowIconTexture);
-
- getFluid().setIcons(this.stillIcon, this.flowingIcon);
- }
-
- public IIcon getStillIcon()
- {
- return this.stillIcon;
- }
-
- public IIcon getFlowingIcon()
- {
- return this.flowingIcon;
- }
-
- @SideOnly(Side.CLIENT)
- public IIcon func_149691_a(int side, int meta)
- {
- if (side <= 1) {
- return this.stillIcon;
- }
- return this.flowingIcon;
- }
-}
diff --git a/src/main/java/lance5057/tDefense/core/renderer/BigFlexibleToolRenderer.java b/src/main/java/lance5057/tDefense/core/renderer/BigFlexibleToolRenderer.java
new file mode 100644
index 0000000..c51c37e
--- /dev/null
+++ b/src/main/java/lance5057/tDefense/core/renderer/BigFlexibleToolRenderer.java
@@ -0,0 +1,323 @@
+package lance5057.tDefense.core.renderer;
+
+//Owned by Tinkers Construct with small edit
+
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+
+import org.lwjgl.opengl.GL11;
+import org.lwjgl.opengl.GL12;
+
+import tconstruct.TConstruct;
+import tconstruct.client.FlexibleToolRenderer;
+import tconstruct.library.tools.ToolCore;
+
+public class BigFlexibleToolRenderer extends FlexibleToolRenderer
+{
+ public float depth = 1/32f;
+
+ public void setDepth(float d) { depth = d; }
+
+ @Override
+ public boolean handleRenderType (ItemStack item, ItemRenderType type)
+ {
+ if(!item.hasTagCompound())
+ return false;
+
+ switch (type)
+ {
+ case ENTITY:
+ //GL11.glTranslatef(-0.0625F, -0.0625F, 0F);
+ return true;
+ case EQUIPPED:
+ //GL11.glTranslatef(0.03f, 0F, -0.09375F);
+ case EQUIPPED_FIRST_PERSON:
+ return true;
+ case INVENTORY:
+ return true;
+ default:
+ TConstruct.logger.warn("[TCon] Unhandled render case!");
+ case FIRST_PERSON_MAP:
+ return false;
+ }
+ }
+
+ @Override
+ public boolean shouldUseRenderHelper (ItemRenderType type, ItemStack item, ItemRendererHelper helper)
+ {
+ return handleRenderType(item, type) & helper.ordinal() < ItemRendererHelper.EQUIPPED_BLOCK.ordinal();
+ }
+
+ private static final int toolIcons = 10;
+
+ protected void specialAnimation(ItemRenderType type, ItemStack item) {}
+
+ @Override
+ public void renderItem (ItemRenderType type, ItemStack item, Object... data) {
+ if(item == null || item.getItem() == null || !(item.getItem() instanceof ToolCore))
+ return;
+
+ Entity ent = null;
+ if (data.length > 1)
+ ent = (Entity) data[1];
+
+ IIcon[] parts = new IIcon[toolIcons];
+ int iconParts = getIcons(item, type, ent, parts);
+
+ // drawing the inventory is a simple procedure
+ if (type == ItemRenderType.INVENTORY) {
+ renderInventory(iconParts, parts, item);
+ return;
+ }
+
+
+
+ Tessellator tess = Tessellator.instance;
+ float[] xMax = new float[iconParts];
+ float[] yMin = new float[iconParts];
+ float[] xMin = new float[iconParts];
+ float[] yMax = new float[iconParts];
+
+ float[] width = new float[iconParts];
+ float[] height = new float[iconParts];
+ float[] xDiff = new float[iconParts];
+ float[] yDiff = new float[iconParts];
+ float[] xSub = new float[iconParts];
+ float[] ySub = new float[iconParts];
+ for (int i = 0; i < iconParts; ++i)
+ {
+ IIcon icon = parts[i];
+ xMin[i] = icon.getMinU();
+ xMax[i] = icon.getMaxU();
+ yMin[i] = icon.getMinV();
+ yMax[i] = icon.getMaxV();
+ width[i] = icon.getIconWidth();
+ height[i] = icon.getIconHeight();
+ xDiff[i] = xMin[i] - xMax[i];
+ yDiff[i] = yMin[i] - yMax[i];
+ xSub[i] = 0.5f * (xMax[i] - xMin[i]) / width[i];
+ ySub[i] = 0.5f * (yMax[i] - yMin[i]) / height[i];
+ }
+
+ GL11.glPushMatrix();
+ GL11.glEnable(GL12.GL_RESCALE_NORMAL);
+
+ GL11.glScalef(1.5f, 1.5f, 1.5f);
+ GL11.glTranslatef(-0.325f, -0.025f, 0f);
+
+ if(type != ItemRenderType.ENTITY) {
+ specialAnimation(type, item);
+ }
+ else
+ GL11.glTranslatef(-0.5f, -0.25f, 0); // why? because.. minecraft.
+
+ // prepare colors
+ int[] color = new int[iconParts];
+ for(int i = 0; i < iconParts; i++)
+ color[i] = item.getItem().getColorFromItemStack(item, i);
+
+ // one side
+ tess.startDrawingQuads();
+ tess.setNormal(0, 0, 1);
+ for (int i = 0; i < iconParts; ++i)
+ {
+ tess.setColorOpaque_I(color[i]);
+ tess.addVertexWithUV(0, 0, +depth, xMax[i], yMax[i]);
+ tess.addVertexWithUV(1, 0, +depth, xMin[i], yMax[i]);
+ tess.addVertexWithUV(1, 1, +depth, xMin[i], yMin[i]);
+ tess.addVertexWithUV(0, 1, +depth, xMax[i], yMin[i]);
+ }
+ tess.draw();
+
+ // other side
+ tess.startDrawingQuads();
+ tess.setNormal(0, 0, -1);
+ for (int i = 0; i < iconParts; ++i)
+ {
+ tess.setColorOpaque_I(color[i]);
+ tess.addVertexWithUV(0, 1, -depth, xMax[i], yMin[i]);
+ tess.addVertexWithUV(1, 1, -depth, xMin[i], yMin[i]);
+ tess.addVertexWithUV(1, 0, -depth, xMin[i], yMax[i]);
+ tess.addVertexWithUV(0, 0, -depth, xMax[i], yMax[i]);
+ }
+ tess.draw();
+
+ // make it have "depth"
+ tess.startDrawingQuads();
+ tess.setNormal(-1, 0, 0);
+ float pos;
+ float iconPos;
+
+ for (int i = 0; i < iconParts; ++i)
+ {
+ tess.setColorOpaque_I(color[i]);
+ float w = width[i], m = xMax[i], d = xDiff[i], s = xSub[i];
+ for (int k = 0, e = (int)w; k < e; ++k)
+ {
+ pos = k / w;
+ iconPos = m + d * pos - s;
+ tess.addVertexWithUV(pos, 0, -depth, iconPos, yMax[i]);
+ tess.addVertexWithUV(pos, 0, +depth, iconPos, yMax[i]);
+ tess.addVertexWithUV(pos, 1, +depth, iconPos, yMin[i]);
+ tess.addVertexWithUV(pos, 1, -depth, iconPos, yMin[i]);
+ }
+ }
+
+ tess.draw();
+ tess.startDrawingQuads();
+ tess.setNormal(1, 0, 0);
+ float posEnd;
+
+ for (int i = 0; i < iconParts; ++i)
+ {
+ tess.setColorOpaque_I(color[i]);
+ float w = width[i], m = xMax[i], d = xDiff[i], s = xSub[i];
+ float d2 = 1f / w;
+ for (int k = 0, e = (int)w; k < e; ++k)
+ {
+ pos = k / w;
+ iconPos = m + d * pos - s;
+ posEnd = pos + d2;
+ tess.addVertexWithUV(posEnd, 1, -depth, iconPos, yMin[i]);
+ tess.addVertexWithUV(posEnd, 1, +depth, iconPos, yMin[i]);
+ tess.addVertexWithUV(posEnd, 0, +depth, iconPos, yMax[i]);
+ tess.addVertexWithUV(posEnd, 0, -depth, iconPos, yMax[i]);
+ }
+ }
+
+ tess.draw();
+ tess.startDrawingQuads();
+ tess.setNormal(0, 1, 0);
+
+ for (int i = 0; i < iconParts; ++i)
+ {
+ tess.setColorOpaque_I(color[i]);
+ float h = height[i], m = yMax[i], d = yDiff[i], s = ySub[i];
+ float d2 = 1f / h;
+ for (int k = 0, e = (int)h; k < e; ++k)
+ {
+ pos = k / h;
+ iconPos = m + d * pos - s;
+ posEnd = pos + d2;
+ tess.addVertexWithUV(0, posEnd, +depth, xMax[i], iconPos);
+ tess.addVertexWithUV(1, posEnd, +depth, xMin[i], iconPos);
+ tess.addVertexWithUV(1, posEnd, -depth, xMin[i], iconPos);
+ tess.addVertexWithUV(0, posEnd, -depth, xMax[i], iconPos);
+ }
+ }
+
+ tess.draw();
+ tess.startDrawingQuads();
+ tess.setNormal(0, -1, 0);
+
+ for (int i = 0; i < iconParts; ++i)
+ {
+ tess.setColorOpaque_I(color[i]);
+ float h = height[i], m = yMax[i], d = yDiff[i], s = ySub[i];
+ for (int k = 0, e = (int)h; k < e; ++k)
+ {
+ pos = k / h;
+ iconPos = m + d * pos - s;
+ tess.addVertexWithUV(1, pos, +depth, xMin[i], iconPos);
+ tess.addVertexWithUV(0, pos, +depth, xMax[i], iconPos);
+ tess.addVertexWithUV(0, pos, -depth, xMax[i], iconPos);
+ tess.addVertexWithUV(1, pos, -depth, xMin[i], iconPos);
+ }
+ }
+
+ tess.draw();
+ GL11.glDisable(GL12.GL_RESCALE_NORMAL);
+
+ //edit
+ GL11.glScalef(2f, 2f, 2f);
+
+ GL11.glPopMatrix();
+ }
+
+ public void renderInventory(int count, IIcon[] icons, ItemStack item)
+ {
+ Tessellator tess = Tessellator.instance;
+ GL11.glPushMatrix();
+
+ GL11.glDisable(GL11.GL_LIGHTING);
+ GL11.glEnable(GL11.GL_ALPHA_TEST);
+ GL11.glAlphaFunc(GL11.GL_GREATER, 0.5F);
+ //GL11.glDisable(GL11.GL_BLEND);
+
+ tess.startDrawingQuads();
+
+ // draw a simple rectangle for the inventory icon
+ for (int i = 0; i < count; ++i)
+ {
+ tess.setColorOpaque_I(item.getItem().getColorFromItemStack(item, i));
+
+ final IIcon icon = icons[i];
+ final float xmin = icon.getMinU();
+ final float xmax = icon.getMaxU();
+ final float ymin = icon.getMinV();
+ final float ymax = icon.getMaxV();
+ tess.addVertexWithUV( 0, 16, 0, xmin, ymax);
+ tess.addVertexWithUV(16, 16, 0, xmax, ymax);
+ tess.addVertexWithUV(16, 0, 0, xmax, ymin);
+ tess.addVertexWithUV( 0, 0, 0, xmin, ymin);
+ }
+ tess.draw();
+
+ //GL11.glEnable(GL11.GL_BLEND);
+ GL11.glDisable(GL11.GL_ALPHA_TEST);
+ GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
+ GL11.glEnable(GL11.GL_LIGHTING);
+ GL11.glPopMatrix();
+ }
+
+ public int getIcons(ItemStack item, ItemRenderType type, Entity ent, IIcon[] parts)
+ {
+ int iconParts = toolIcons;//tool.getRenderPasses(item.getItemDamage());
+ // TODO: have the tools define how many render passes they have
+ // (requires more logic rewrite than it sounds like)
+
+ boolean isInventory = type == ItemRenderType.INVENTORY;
+ ToolCore tool = (ToolCore) item.getItem();
+
+ IIcon[] tempParts = new IIcon[iconParts];
+ label:
+ {
+ if (!isInventory && ent instanceof EntityPlayer)
+ {
+ EntityPlayer player = (EntityPlayer) ent;
+ ItemStack itemInUse = player.getItemInUse();
+ if (itemInUse != null)
+ {
+ int useCount = player.getItemInUseCount();
+ for (int i = iconParts; i-- > 0;)
+ tempParts[i] = tool.getIcon(item, i, player, itemInUse, useCount);
+ break label;
+ }
+ }
+ for (int i = iconParts; i-- > 0;)
+ tempParts[i] = tool.getIcon(item, i);
+ }
+
+ int count = 0;
+ for (int i = 0; i < iconParts; ++i)
+ {
+ IIcon part = tempParts[i];
+ if (part == null || part == ToolCore.blankSprite || part == ToolCore.emptyIcon)
+ ++count;
+ else
+ parts[i - count] = part;
+ }
+ iconParts -= count;
+
+ if (iconParts <= 0)
+ {
+ iconParts = 1;
+ parts[0] = ToolCore.blankSprite;
+ }
+
+ return iconParts;
+ }
+}
diff --git a/src/main/java/lance5057/tDefense/core/tools/TinkerZweihander.java b/src/main/java/lance5057/tDefense/core/tools/TinkerZweihander.java
index d77cbc5..6c476ad 100644
--- a/src/main/java/lance5057/tDefense/core/tools/TinkerZweihander.java
+++ b/src/main/java/lance5057/tDefense/core/tools/TinkerZweihander.java
@@ -1,7 +1,9 @@
package lance5057.tDefense.core.tools;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
+import java.util.List;
+
+import mods.battlegear2.api.PlayerEventChild;
+import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
@@ -10,9 +12,17 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
+import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import tconstruct.library.tools.Weapon;
import tconstruct.tools.TinkerTools;
+import cpw.mods.fml.common.Optional;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+@Optional.InterfaceList({
+ @Optional.Interface(modid = "battlegear2", iface = "mods.battlegear2.api.weapons.IBattlegearWeapon"),
+})
public class TinkerZweihander extends Weapon {
@@ -44,8 +54,24 @@ public class TinkerZweihander extends Weapon {
@Override
public ItemStack onItemRightClick (ItemStack stack, World world, EntityPlayer player)
{
+ if(!player.isPotionActive(Potion.moveSlowdown))
+ {
+ List entities = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, AxisAlignedBB.getBoundingBox(player.posX - 2, player.posY - 2, player.posZ - 2, player.posX + 2, player.posY + 2, player.posZ + 2));
+
+ for(int i = 0; i<entities.size(); i++)
+ {
+ if(((Entity)entities.get(i)) instanceof EntityLivingBase)
+ {
+ player.attackTargetEntityWithCurrentItem((Entity) entities.get(i));
+ player.worldObj.spawnParticle("largeexplode", ((Entity)entities.get(i)).posX, ((Entity)entities.get(i)).posY + (((Entity)entities.get(i)).height/2), ((Entity)entities.get(i)).posZ, 0, 0, 0);
+ player.worldObj.playSoundAtEntity((Entity) entities.get(i), "mob.zombie.metal", 15f, 1f);
+ }
+ }
+ player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 20, 3));
+ player.addPotionEffect(new PotionEffect(Potion.weakness.id, 200, 1));
+ }
- return stack;
+ return stack;
}
@Override
@@ -96,19 +122,36 @@ public class TinkerZweihander extends Weapon {
return "zweihander";
}
- @Override
- @SideOnly(Side.CLIENT)
- public void onUpdate(ItemStack stack, World world, Entity entity, int par4,
- boolean par5) {
- super.onUpdate(stack, world, entity, par4, par5);
- if (entity instanceof EntityPlayerSP) {
- EntityPlayerSP player = (EntityPlayerSP) entity;
- ItemStack usingItem = player.inventory.getCurrentItem();
- if (usingItem != null && usingItem.getItem() == this) {
- player.addPotionEffect(new PotionEffect(Potion.resistance.getId(),2,1));
-
- }
- }
- }
+// @Override
+// @SideOnly(Side.CLIENT)
+// public void onUpdate(ItemStack stack, World world, Entity entity, int par4,
+// boolean par5) {
+// super.onUpdate(stack, world, entity, par4, par5);
+// if (entity instanceof EntityPlayerSP) {
+// EntityPlayerSP player = (EntityPlayerSP) entity;
+// ItemStack usingItem = player.inventory.getCurrentItem();
+// if (usingItem != null && usingItem.getItem() == this) {
+// player.addPotionEffect(new PotionEffect(Potion.resistance.getId(),2,1));
+//
+// }
+// }
+// }
+ @Override
+ @Optional.Method(modid = "battlegear2")
+ public boolean isOffhandHandDual(ItemStack off) {
+ return false;
+ }
+
+ @Override
+ @Optional.Method(modid = "battlegear2")
+ public boolean offhandAttackEntity(PlayerEventChild.OffhandAttackEvent event, ItemStack mainhandItem, ItemStack offhandItem) {
+ return false;
+ }
+
+ @Override
+ @Optional.Method(modid = "battlegear2")
+ public boolean allowOffhand(ItemStack mainhand, ItemStack offhand) {
+ return false;
+ }
}
diff --git a/src/main/java/lance5057/tDefense/proxy/ClientProxy.java b/src/main/java/lance5057/tDefense/proxy/ClientProxy.java
index bb02e9e..4a46bcf 100644
--- a/src/main/java/lance5057/tDefense/proxy/ClientProxy.java
+++ b/src/main/java/lance5057/tDefense/proxy/ClientProxy.java
@@ -6,6 +6,7 @@ import lance5057.tDefense.armor.renderers.ModelClothArmor;
import lance5057.tDefense.armor.renderers.ModelMask;
import lance5057.tDefense.core.blocks.crestMount.Renderer_CrestMount;
import lance5057.tDefense.core.blocks.crestMount.TileEntity_CrestMount;
+import lance5057.tDefense.core.renderer.BigFlexibleToolRenderer;
import lance5057.tDefense.finishingAnvil.blocks.finishingAnvil.Renderer_FinishingAnvil;
import lance5057.tDefense.finishingAnvil.blocks.finishingAnvil.TileEntity_FinishingAnvil;
import lance5057.tDefense.models.Renderer_JewelersBench;
@@ -25,6 +26,7 @@ public class ClientProxy extends CommonProxy {
@Override
public void registerRenderers() {
FlexibleToolRenderer renderer = new FlexibleToolRenderer();
+ FlexibleToolRenderer bigrenderer = new BigFlexibleToolRenderer();
MinecraftForgeClient.registerItemRenderer(
TinkersDefense.tool_roundShield, renderer);
MinecraftForgeClient.registerItemRenderer(
@@ -34,11 +36,15 @@ public class ClientProxy extends CommonProxy {
MinecraftForgeClient.registerItemRenderer(TinkersDefense.tool_shears,
renderer);
MinecraftForgeClient.registerItemRenderer(TinkersDefense.tool_zweihander,
- renderer);
+ bigrenderer);
MinecraftForgeClient.registerItemRenderer(TinkersDefense.armor_TinkerHelm,
renderer);
MinecraftForgeClient.registerItemRenderer(TinkersDefense.armor_TinkerBreastplate,
renderer);
+ MinecraftForgeClient.registerItemRenderer(TinkersDefense.armor_TinkerGrieves,
+ renderer);
+ MinecraftForgeClient.registerItemRenderer(TinkersDefense.armor_TinkerSabatons,
+ renderer);
ClientRegistry.bindTileEntitySpecialRenderer(
TileEntity_CrestMount.class, new Renderer_CrestMount());