summaryrefslogtreecommitdiff
path: root/src/main/java/gmail
diff options
context:
space:
mode:
authorLance5057 <Lance5057@gmail.com>2015-01-21 20:04:34 -0600
committerLance5057 <Lance5057@gmail.com>2015-01-21 20:04:34 -0600
commitb4eb8f2d65c62afccc898808b44fdddfde0c15d1 (patch)
treeee3a9f47a22418a6778c299cc96b4fedc2265afe /src/main/java/gmail
parent39642dce74d23f025b71d5766c1ac8489a41a802 (diff)
Startup
I hope I'm doing this right...
Diffstat (limited to 'src/main/java/gmail')
-rw-r--r--src/main/java/gmail/Lance5057/blocks/AeonSteelBlock.java15
-rw-r--r--src/main/java/gmail/Lance5057/blocks/CrestMount.java43
-rw-r--r--src/main/java/gmail/Lance5057/blocks/DogbeariumBlock.java15
-rw-r--r--src/main/java/gmail/Lance5057/blocks/ModelCrestMount.java87
-rw-r--r--src/main/java/gmail/Lance5057/blocks/QueensGoldBlock.java15
-rw-r--r--src/main/java/gmail/Lance5057/blocks/Renderer_CrestMount.java60
-rw-r--r--src/main/java/gmail/Lance5057/blocks/TileEntity_CrestMount.java7
-rw-r--r--src/main/java/gmail/Lance5057/com/HeaterShield.java256
-rw-r--r--src/main/java/gmail/Lance5057/com/RoundShield.java249
-rw-r--r--src/main/java/gmail/Lance5057/com/RoyalGuard.java42
-rw-r--r--src/main/java/gmail/Lance5057/com/Shield.java121
-rw-r--r--src/main/java/gmail/Lance5057/com/mod_TinkersDefense.java312
-rw-r--r--src/main/java/gmail/Lance5057/com/moltenAeonsteelFluid.java59
-rw-r--r--src/main/java/gmail/Lance5057/com/moltenDogbeariumFluid.java59
-rw-r--r--src/main/java/gmail/Lance5057/com/moltenQueensGoldFluid.java59
-rw-r--r--src/main/java/gmail/Lance5057/items/AeonSteelIngot.java12
-rw-r--r--src/main/java/gmail/Lance5057/items/DogbeariumIngot.java11
-rw-r--r--src/main/java/gmail/Lance5057/items/ModelTinkerArmor.java109
-rw-r--r--src/main/java/gmail/Lance5057/items/QueensGoldIngot.java11
-rw-r--r--src/main/java/gmail/Lance5057/items/TinkerArmor.java76
-rw-r--r--src/main/java/gmail/Lance5057/items/TinkerHelm.tcnbin0 -> 1556 bytes
-rw-r--r--src/main/java/gmail/Lance5057/proxy/ClientProxy.java36
-rw-r--r--src/main/java/gmail/Lance5057/proxy/CommonProxy.java21
23 files changed, 1675 insertions, 0 deletions
diff --git a/src/main/java/gmail/Lance5057/blocks/AeonSteelBlock.java b/src/main/java/gmail/Lance5057/blocks/AeonSteelBlock.java
new file mode 100644
index 0000000..259132a
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/blocks/AeonSteelBlock.java
@@ -0,0 +1,15 @@
+package gmail.Lance5057.blocks;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+
+public class AeonSteelBlock extends Block
+{
+
+ public AeonSteelBlock (Material material)
+ {
+ super(material);
+ setHarvestLevel("pickaxe",2);
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/blocks/CrestMount.java b/src/main/java/gmail/Lance5057/blocks/CrestMount.java
new file mode 100644
index 0000000..a318c77
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/blocks/CrestMount.java
@@ -0,0 +1,43 @@
+package gmail.Lance5057.blocks;
+
+import net.minecraft.block.BlockContainer;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+
+public class CrestMount extends BlockContainer {
+ //Treat it like a normal block here. The Block Bounds are a good idea - the first three are X Y and Z of the botton-left corner,
+ //And the second three are the top-right corner.
+ public CrestMount() {
+ super(Material.iron);
+ this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
+ }
+
+ //You don't want the normal render type, or it wont render properly.
+ @Override
+ public int getRenderType() {
+ return -1;
+ }
+
+ //It's not an opaque cube, so you need this.
+ @Override
+ public boolean isOpaqueCube() {
+ return false;
+ }
+
+ //It's not a normal block, so you need this too.
+ public boolean renderAsNormalBlock() {
+ return false;
+ }
+
+ //This is the icon to use for showing the block in your hand.
+ public void registerIcons(IIconRegister icon) {
+ this.blockIcon = icon.registerIcon("tinkersdefense:textures/items/QueensGoldIngot.png");
+ }
+
+ @Override
+ public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
+ return new TileEntity_CrestMount();
+ }
+}
diff --git a/src/main/java/gmail/Lance5057/blocks/DogbeariumBlock.java b/src/main/java/gmail/Lance5057/blocks/DogbeariumBlock.java
new file mode 100644
index 0000000..b7f5c79
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/blocks/DogbeariumBlock.java
@@ -0,0 +1,15 @@
+package gmail.Lance5057.blocks;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+
+public class DogbeariumBlock extends Block
+{
+
+ public DogbeariumBlock (Material material)
+ {
+ super(material);
+ setHarvestLevel("pickaxe",2);
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/blocks/ModelCrestMount.java b/src/main/java/gmail/Lance5057/blocks/ModelCrestMount.java
new file mode 100644
index 0000000..5a5759d
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/blocks/ModelCrestMount.java
@@ -0,0 +1,87 @@
+// Date: 1/18/2015 9:46:49 PM
+// Template version 1.1
+// Java generated by Techne
+// Keep in mind that you still need to fill in some blanks
+// - ZeuX
+
+
+
+
+
+
+package gmail.Lance5057.blocks;
+
+import net.minecraft.client.model.ModelBase;
+import net.minecraft.client.model.ModelRenderer;
+import net.minecraft.entity.Entity;
+
+public class ModelCrestMount extends ModelBase
+{
+ //fields
+ ModelRenderer ShieldMount;
+ ModelRenderer Base;
+ ModelRenderer SwordMount1;
+ ModelRenderer SwordMount2;
+ ModelRenderer SwordMount3;
+
+ public ModelCrestMount()
+ {
+ textureWidth = 32;
+ textureHeight = 32;
+
+ ShieldMount = new ModelRenderer(this, 20, 6);
+ ShieldMount.addBox(0F, 0F, 0F, 2, 7, 2);
+ ShieldMount.setRotationPoint(-1F, 17F, -1F);
+ ShieldMount.setTextureSize(32, 32);
+ ShieldMount.mirror = true;
+ setRotation(ShieldMount, 0F, 0F, 0F);
+ Base = new ModelRenderer(this, 0, 6);
+ Base.addBox(0F, 0F, 0F, 4, 4, 4);
+ Base.setRotationPoint(-2F, 20F, -2F);
+ Base.setTextureSize(32, 32);
+ Base.mirror = true;
+ setRotation(Base, 0F, 0F, 0F);
+ SwordMount1 = new ModelRenderer(this, 0, 0);
+ SwordMount1.addBox(-5F, 0F, -2F, 10, 2, 4);
+ SwordMount1.setRotationPoint(0F, 22F, 0F);
+ SwordMount1.setTextureSize(32, 32);
+ SwordMount1.mirror = true;
+ setRotation(SwordMount1, 0F, 0.7853982F, 0F);
+ SwordMount2 = new ModelRenderer(this, 0, 0);
+ SwordMount2.addBox(-5F, 0F, -2F, 10, 2, 4);
+ SwordMount2.setRotationPoint(0F, 22F, 0F);
+ SwordMount2.setTextureSize(32, 32);
+ SwordMount2.mirror = true;
+ setRotation(SwordMount2, 0F, -0.7853982F, 0F);
+ SwordMount3 = new ModelRenderer(this, 0, 0);
+ SwordMount3.addBox(-5F, 0F, -2F, 10, 2, 4);
+ SwordMount3.setRotationPoint(0F, 21.9F, 0F);
+ SwordMount3.setTextureSize(32, 32);
+ SwordMount3.mirror = true;
+ setRotation(SwordMount3, 0F, 1.570796F, 0F);
+ }
+
+ 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);
+ ShieldMount.render(f5);
+ Base.render(f5);
+ SwordMount1.render(f5);
+ SwordMount2.render(f5);
+ SwordMount3.render(f5);
+ }
+
+ private void setRotation(ModelRenderer model, float x, float y, float z)
+ {
+ model.rotateAngleX = x;
+ model.rotateAngleY = y;
+ model.rotateAngleZ = z;
+ }
+
+ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
+ {
+ super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
+ }
+
+}
diff --git a/src/main/java/gmail/Lance5057/blocks/QueensGoldBlock.java b/src/main/java/gmail/Lance5057/blocks/QueensGoldBlock.java
new file mode 100644
index 0000000..0ad2376
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/blocks/QueensGoldBlock.java
@@ -0,0 +1,15 @@
+package gmail.Lance5057.blocks;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+
+public class QueensGoldBlock extends Block
+{
+
+ public QueensGoldBlock (Material material)
+ {
+ super(material);
+ setHarvestLevel("pickaxe",2);
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/blocks/Renderer_CrestMount.java b/src/main/java/gmail/Lance5057/blocks/Renderer_CrestMount.java
new file mode 100644
index 0000000..f7a542f
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/blocks/Renderer_CrestMount.java
@@ -0,0 +1,60 @@
+package gmail.Lance5057.blocks;
+
+import net.minecraft.block.Block;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.renderer.OpenGlHelper;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
+import net.minecraft.entity.Entity;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.world.World;
+
+import org.lwjgl.opengl.GL11;
+
+public class Renderer_CrestMount extends TileEntitySpecialRenderer {
+
+ //The model of your block
+ private final ModelCrestMount model;
+
+ public Renderer_CrestMount() {
+ this.model = new ModelCrestMount();
+ }
+
+ private void adjustRotatePivotViaMeta(World world, int x, int y, int z) {
+ int meta = world.getBlockMetadata(x, y, z);
+ GL11.glPushMatrix();
+ GL11.glRotatef(meta * (-90), 0.0F, 0.0F, 1.0F);
+ GL11.glPopMatrix();
+ }
+
+ @Override
+ public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale) {
+ //The PushMatrix tells the renderer to "start" doing something.
+ GL11.glPushMatrix();
+ //This is setting the initial location.
+ GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F);
+ //This is the texture of your block. It's pathed to be the same place as your other blocks here.
+ //Outdated bindTextureByName("/mods/roads/textures/blocks/TrafficLightPoleRed.png");
+ //Use in 1.6.2 this
+ ResourceLocation textures = (new ResourceLocation("tinkersdefense:textures/blocks/CrestMount.png"));
+ //the ':' is very important
+ //binding the textures
+ Minecraft.getMinecraft().renderEngine.bindTexture(textures);
+
+ //This rotation part is very important! Without it, your model will render upside-down! And for some reason you DO need PushMatrix again!
+ GL11.glPushMatrix();
+ adjustRotatePivotViaMeta(te.getWorldObj(), te.xCoord, te.yCoord, te.zCoord);//rotation 1
+ GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
+ GL11.glRotatef(90F, 0.5F, 0.0F, 0.0F);
+ GL11.glTranslatef(0, -1, -1);
+
+
+ //A reference to your Model file. Again, very important.
+ this.model.render((Entity)null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
+ //Tell it to stop rendering for both the PushMatrix's
+ GL11.glPopMatrix();
+ GL11.glPopMatrix();
+ }
+
+}
diff --git a/src/main/java/gmail/Lance5057/blocks/TileEntity_CrestMount.java b/src/main/java/gmail/Lance5057/blocks/TileEntity_CrestMount.java
new file mode 100644
index 0000000..486689c
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/blocks/TileEntity_CrestMount.java
@@ -0,0 +1,7 @@
+package gmail.Lance5057.blocks;
+
+import net.minecraft.tileentity.TileEntity;
+
+public class TileEntity_CrestMount extends TileEntity {
+
+}
diff --git a/src/main/java/gmail/Lance5057/com/HeaterShield.java b/src/main/java/gmail/Lance5057/com/HeaterShield.java
new file mode 100644
index 0000000..13875bc
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/com/HeaterShield.java
@@ -0,0 +1,256 @@
+package gmail.Lance5057.com;
+
+import java.util.List;
+import java.util.Random;
+
+import mods.battlegear2.api.ISheathed;
+import mods.battlegear2.api.shield.IArrowCatcher;
+import mods.battlegear2.api.shield.IArrowDisplay;
+import mods.battlegear2.api.shield.IShield;
+import mods.battlegear2.api.shield.ShieldType;
+import mods.battlegear2.utils.BattlegearConfig;
+import cpw.mods.fml.relauncher.*;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.IProjectile;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.projectile.EntityArrow;
+import net.minecraft.item.*;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.potion.*;
+import net.minecraft.util.DamageSource;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+import net.minecraftforge.event.entity.player.PlayerInteractEvent;
+import tconstruct.library.tools.*;
+import tconstruct.tools.TinkerTools;
+public class HeaterShield extends HarvestTool implements IShield, ISheathed, IArrowCatcher, IArrowDisplay
+{
+ int induceDamage = 0;
+public HeaterShield()
+{
+super(0);
+this.setUnlocalizedName("heatershield");
+}
+@Override
+public Item getHeadItem ()
+{
+return TinkerTools.largePlate;
+}
+@Override
+public Item getHandleItem ()
+{
+return TinkerTools.toughRod;
+}
+@Override
+public Item getAccessoryItem ()
+{
+return TinkerTools.largePlate;
+}
+@Override
+public Item getExtraItem ()
+{
+ return TinkerTools.toughBinding;
+}
+@Override
+public int durabilityTypeAccessory ()
+{
+return 2;
+}
+@Override
+public float getRepairCost ()
+{
+return 4.0f;
+}
+@Override
+public float getDurabilityModifier ()
+{
+return 2.5f;
+}
+@Override
+public float breakSpeedModifier ()
+{
+return 0.4f;
+}
+@Override
+public float getDamageModifier ()
+{
+return 1.4f;
+}
+@SideOnly(Side.CLIENT)
+@Override
+public int getRenderPasses (int metadata)
+{
+return 10;
+}
+@Override
+public int getPartAmount ()
+{
+return 4;
+}
+@Override
+public String getIconSuffix (int partType)
+{
+switch (partType)
+{
+case 0:
+return "_shield_face";
+case 1:
+return "_shield_face_broken";
+case 2:
+return "_shield_edge";
+case 3:
+return "_shield_face_other";
+case 4:
+return "_shield_binding";
+default:
+return "";
+}
+}
+@Override
+public String getEffectSuffix ()
+{
+return "_shield_effect";
+}
+@Override
+public String getDefaultFolder ()
+{
+return "heatershield";
+}
+/* tool_TinkerShield specific */
+@Override
+public boolean onLeftClickEntity (ItemStack stack, EntityPlayer player, Entity entity)
+{
+if (AbilityHelper.onLeftClickEntity(stack, player, entity, this))
+{
+entity.hurtResistantTime += 7;
+/*
+* if (entity instanceof EntityLiving) { EntityLiving living =
+* (EntityLiving) entity; if (living.getHealth() <= 0) {
+*
+* } }
+*/
+// if (entity.getHealth() <= 0)
+}
+return true;
+}
+@Override
+public void onUpdate (ItemStack stack, World world, Entity entity, int par4, boolean par5)
+{
+super.onUpdate(stack, world, entity, par4, par5);
+
+}
+
+@Override
+public int getArrowCount(ItemStack stack)
+{
+ if(stack.hasTagCompound() && stack.getTagCompound().hasKey("arrows"))
+ {
+ return stack.getTagCompound().getShort("arrows");
+ }
+ else
+ return 0;
+}
+@Override
+public void setArrowCount(ItemStack stack, int count)
+{
+ if(!stack.hasTagCompound()){
+ stack.setTagCompound(new NBTTagCompound());
+ }
+ //Should never happen, you would need A LOT of arrows for this to happen
+ if(count > Short.MAX_VALUE){
+ count = Short.MAX_VALUE;
+ }
+ stack.getTagCompound().setShort("arrows", (short)count);
+}
+@Override
+public boolean catchArrow(ItemStack shield, EntityPlayer player, IProjectile arrow)
+{
+ if(arrow instanceof EntityArrow)
+ {
+ setArrowCount(shield, getArrowCount(shield)+1);
+ player.setArrowCountInEntity(player.getArrowCountInEntity() - 1);
+ ((EntityArrow)arrow).setDead();
+ return true;
+ }
+ return false;
+}
+@Override
+public boolean sheatheOnBack(ItemStack arg0) {
+ return true;
+}
+@Override
+public void blockAnimation(EntityPlayer player, float dmg)
+{
+ player.worldObj.playSoundAtEntity(player, "battlegear2:shield", 1, 1);
+}
+@Override
+public boolean canBlock(ItemStack shield, DamageSource source) {
+ return !source.isUnblockable();
+}
+@Override
+public int getBashTimer(ItemStack arg0) {
+ // TODO Auto-generated method stub
+ return 10;
+}
+@Override
+public float getBlockAngle(ItemStack arg0) {
+ // TODO Auto-generated method stub
+ return 60;
+}
+@Override
+public float getDamageDecayRate(ItemStack shield, float amount)
+{
+ return 0;
+}
+@Override
+public float getDamageReduction(ItemStack arg0, DamageSource arg1) {
+ return 1f;
+}
+@Override
+public float getDecayRate(ItemStack stack)
+{
+ NBTTagCompound tags = stack.getTagCompound();
+ float recovery = tags.getCompoundTag("InfiTool").getInteger("MiningSpeed") / 1.5f;
+ return 10f / recovery;
+}
+@Override
+public float getRecoveryRate(ItemStack stack)
+{
+ NBTTagCompound tags = stack.getTagCompound();
+ float recovery = tags.getCompoundTag("InfiTool").getInteger("MiningSpeed") / 1.5f;
+ return 10f / recovery;
+}
+
+@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 Material[] getEffectiveMaterials ()
+{
+ return materials;
+}
+ static Material[] materials = new Material[] { Material.rock, Material.iron, Material.ice, Material.glass, Material.piston, Material.anvil, Material.circuits };
+
+@Override
+protected String getHarvestType() {
+ // TODO Auto-generated method stub
+ return "pickaxe";
+}
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/com/RoundShield.java b/src/main/java/gmail/Lance5057/com/RoundShield.java
new file mode 100644
index 0000000..9588542
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/com/RoundShield.java
@@ -0,0 +1,249 @@
+package gmail.Lance5057.com;
+
+import java.util.List;
+import java.util.Random;
+
+import mods.battlegear2.api.ISheathed;
+import mods.battlegear2.api.shield.IArrowCatcher;
+import mods.battlegear2.api.shield.IArrowDisplay;
+import mods.battlegear2.api.shield.IShield;
+import mods.battlegear2.api.shield.ShieldType;
+import mods.battlegear2.utils.BattlegearConfig;
+import cpw.mods.fml.relauncher.*;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.IProjectile;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.projectile.EntityArrow;
+import net.minecraft.item.*;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.potion.*;
+import net.minecraft.util.DamageSource;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+import net.minecraftforge.event.entity.player.PlayerInteractEvent;
+import tconstruct.library.tools.*;
+import tconstruct.tools.TinkerTools;
+public class RoundShield extends HarvestTool implements IShield, ISheathed, IArrowCatcher, IArrowDisplay
+{
+ int induceDamage = 0;
+public RoundShield()
+{
+super(0);
+this.setUnlocalizedName("roundshield");
+}
+@Override
+public Item getHeadItem ()
+{
+return TinkerTools.largePlate;
+}
+@Override
+public Item getHandleItem ()
+{
+return TinkerTools.toolRod;
+}
+@Override
+public Item getAccessoryItem ()
+{
+return TinkerTools.frypanHead;
+}
+@Override
+public int durabilityTypeAccessory ()
+{
+return 2;
+}
+@Override
+public float getRepairCost ()
+{
+return 4.0f;
+}
+@Override
+public float getDurabilityModifier ()
+{
+return 2.5f;
+}
+@Override
+public float breakSpeedModifier ()
+{
+return 0.4f;
+}
+@Override
+public float getDamageModifier ()
+{
+return 1.4f;
+}
+@SideOnly(Side.CLIENT)
+@Override
+public int getRenderPasses (int metadata)
+{
+return 10;
+}
+@Override
+public int getPartAmount ()
+{
+return 3;
+}
+@Override
+public String getIconSuffix (int partType)
+{
+switch (partType)
+{
+case 0:
+return "_shield_face";
+case 1:
+return "_shield_face_broken";
+case 2:
+return "_shield_edge";
+case 3:
+return "_shield_boss";
+default:
+return "";
+}
+}
+@Override
+public String getEffectSuffix ()
+{
+return "_shield_effect";
+}
+@Override
+public String getDefaultFolder ()
+{
+return "shield";
+}
+/* tool_TinkerShield specific */
+@Override
+public boolean onLeftClickEntity (ItemStack stack, EntityPlayer player, Entity entity)
+{
+if (AbilityHelper.onLeftClickEntity(stack, player, entity, this))
+{
+entity.hurtResistantTime += 7;
+/*
+* if (entity instanceof EntityLiving) { EntityLiving living =
+* (EntityLiving) entity; if (living.getHealth() <= 0) {
+*
+* } }
+*/
+// if (entity.getHealth() <= 0)
+}
+return true;
+}
+@Override
+public void onUpdate (ItemStack stack, World world, Entity entity, int par4, boolean par5)
+{
+super.onUpdate(stack, world, entity, par4, par5);
+
+}
+
+@Override
+public int getArrowCount(ItemStack stack)
+{
+ if(stack.hasTagCompound() && stack.getTagCompound().hasKey("arrows"))
+ {
+ return stack.getTagCompound().getShort("arrows");
+ }
+ else
+ return 0;
+}
+@Override
+public void setArrowCount(ItemStack stack, int count)
+{
+ if(!stack.hasTagCompound()){
+ stack.setTagCompound(new NBTTagCompound());
+ }
+ //Should never happen, you would need A LOT of arrows for this to happen
+ if(count > Short.MAX_VALUE){
+ count = Short.MAX_VALUE;
+ }
+ stack.getTagCompound().setShort("arrows", (short)count);
+}
+@Override
+public boolean catchArrow(ItemStack shield, EntityPlayer player, IProjectile arrow)
+{
+ if(arrow instanceof EntityArrow)
+ {
+ setArrowCount(shield, getArrowCount(shield)+1);
+ player.setArrowCountInEntity(player.getArrowCountInEntity() - 1);
+ ((EntityArrow)arrow).setDead();
+ return true;
+ }
+ return false;
+}
+@Override
+public boolean sheatheOnBack(ItemStack arg0) {
+ return true;
+}
+@Override
+public void blockAnimation(EntityPlayer player, float dmg)
+{
+ player.worldObj.playSoundAtEntity(player, "battlegear2:shield", 1, 1);
+}
+@Override
+public boolean canBlock(ItemStack shield, DamageSource source) {
+ return !source.isUnblockable();
+}
+@Override
+public int getBashTimer(ItemStack arg0) {
+ // TODO Auto-generated method stub
+ return 10;
+}
+@Override
+public float getBlockAngle(ItemStack arg0) {
+ // TODO Auto-generated method stub
+ return 60;
+}
+@Override
+public float getDamageDecayRate(ItemStack shield, float amount)
+{
+ return 2;
+}
+@Override
+public float getDamageReduction(ItemStack arg0, DamageSource arg1) {
+ return 1f;
+}
+@Override
+public float getDecayRate(ItemStack stack)
+{
+ NBTTagCompound tags = stack.getTagCompound();
+ float recovery = tags.getCompoundTag("InfiTool").getInteger("MiningSpeed");
+ return 10f / recovery * 2;
+}
+@Override
+public float getRecoveryRate(ItemStack stack)
+{
+ NBTTagCompound tags = stack.getTagCompound();
+ float recovery = tags.getCompoundTag("InfiTool").getInteger("MiningSpeed");
+ return 10f / recovery * 2;
+}
+
+@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") * 2) / 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 Material[] getEffectiveMaterials ()
+{
+ return materials;
+}
+ static Material[] materials = new Material[] { Material.rock, Material.iron, Material.ice, Material.glass, Material.piston, Material.anvil, Material.circuits };
+
+@Override
+protected String getHarvestType() {
+ // TODO Auto-generated method stub
+ return "pickaxe";
+}
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/com/RoyalGuard.java b/src/main/java/gmail/Lance5057/com/RoyalGuard.java
new file mode 100644
index 0000000..3510c18
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/com/RoyalGuard.java
@@ -0,0 +1,42 @@
+package gmail.Lance5057.com;
+
+import net.minecraft.creativetab.CreativeTabs;
+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.EnumChatFormatting;
+import tconstruct.library.client.TConstructClientRegistry;
+import tconstruct.library.crafting.ToolBuilder;
+import tconstruct.library.tools.Weapon;
+
+import java.util.List;
+
+public abstract class RoyalGuard extends Weapon {
+ public RoyalGuard() {
+ super(10);
+ }
+
+@Override
+public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4) {
+super.addInformation(stack, player, list, par4);
+list.add(EnumChatFormatting.DARK_PURPLE + "Artisan crafted for the royal family");
+}
+@Override
+public void getSubItems(Item id, CreativeTabs tab, List list)
+{
+ super.getSubItems(id, tab, list);
+
+ ItemStack tool = ToolBuilder.instance.buildTool(new ItemStack(getHeadItem(), 1, 2), new ItemStack(getHandleItem(), 1, 6), new ItemStack(getAccessoryItem(), 1, 33), "Royal Guard");
+ NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool");
+ tags.setInteger("Modifiers", 0);
+ tags.setInteger("Attack", 15);
+ tags.setInteger("TotalDurability", Integer.MAX_VALUE / 100);
+ tags.setInteger("BaseDurability", Integer.MAX_VALUE / 100);
+ tags.setInteger("MiningSpeed", Integer.MAX_VALUE / 100);
+ tags.setInteger("Unbreaking", 10);
+ tags.setBoolean("Built", true);
+ tags.setInteger("Fortune", 450);
+ list.add(tool);
+}
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/com/Shield.java b/src/main/java/gmail/Lance5057/com/Shield.java
new file mode 100644
index 0000000..0cfa33c
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/com/Shield.java
@@ -0,0 +1,121 @@
+package gmail.Lance5057.com;
+
+import tconstruct.library.tools.ToolCore;
+import cpw.mods.fml.relauncher.*;
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.entity.EntityPlayerSP;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.*;
+import net.minecraft.world.World;
+
+public abstract class Shield extends ToolCore
+{
+public Shield(int baseDamage)
+{
+super(baseDamage);
+}
+protected float baseSpeed ()
+{
+return 1.5f;
+}
+protected float effectiveSpeed ()
+{
+return 15f;
+}
+public float breakSpeedModifier ()
+{
+return 1.0f;
+}
+@Override
+public float getDigSpeed (ItemStack stack, Block block, int meta)
+{
+if (stack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Broken"))
+return 0.1f;
+for (int i = 0; i < web.length; i++)
+{
+if (web[i] == block.getMaterial())
+{
+return effectiveSpeed();
+}
+}
+return baseSpeed();
+}
+/**
+* returns the action that specifies what animation to play when the items
+* is being used
+*/
+@Override
+public EnumAction getItemUseAction (ItemStack par1ItemStack)
+{
+return EnumAction.block;
+}
+/**
+* How long it takes to use or consume an item
+*/
+@Override
+public int getMaxItemUseDuration (ItemStack par1ItemStack)
+{
+return 72000;
+}
+/**
+* Called whenever this item is equipped and the right mouse button is
+* pressed. Args: itemStack, world, entityPlayer
+*/
+@Override
+public ItemStack onItemRightClick (ItemStack stack, World world, EntityPlayer player)
+{
+player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
+return stack;
+}
+@Override
+public boolean onItemUse (ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float clickX, float clickY, float clickZ)
+{
+return false;
+}
+/**
+* Returns if the item (tool) can harvest results from the block type.
+*/
+@Override
+public boolean canHarvestBlock (Block block, ItemStack is)
+{
+for (int i = 0; i < web.length; i++)
+{
+if (block.getMaterial() == web[i])
+return true;
+}
+return super.canHarvestBlock(block, is);
+}
+protected Material[] getEffectiveMaterials ()
+{
+return web;
+}
+@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.getItemInUse();
+if (usingItem != null && usingItem.getItem() == this)
+{
+player.movementInput.moveForward *= 2.5F;
+player.movementInput.moveStrafe *= 2.5F;
+}
+}
+}
+@Override
+public String[] getTraits ()
+{
+return new String[] { "Shield", "melee" };
+}
+public static Material[] web = new Material[] { Material.web, Material.cloth, Material.coral, Material.cake };
+public static Material[] none = new Material[0];
+protected String getHarvestType() {
+ // TODO Auto-generated method stub
+ return null;
+}
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/com/mod_TinkersDefense.java b/src/main/java/gmail/Lance5057/com/mod_TinkersDefense.java
new file mode 100644
index 0000000..60e4ee1
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/com/mod_TinkersDefense.java
@@ -0,0 +1,312 @@
+package gmail.Lance5057.com;
+
+
+
+
+import static net.minecraft.util.EnumChatFormatting.DARK_RED;
+import static net.minecraft.util.EnumChatFormatting.GOLD;
+import static net.minecraft.util.EnumChatFormatting.LIGHT_PURPLE;
+import gmail.Lance5057.blocks.AeonSteelBlock;
+import gmail.Lance5057.blocks.CrestMount;
+import gmail.Lance5057.blocks.DogbeariumBlock;
+import gmail.Lance5057.blocks.QueensGoldBlock;
+import gmail.Lance5057.blocks.TileEntity_CrestMount;
+import gmail.Lance5057.items.AeonSteelIngot;
+import gmail.Lance5057.items.DogbeariumIngot;
+import gmail.Lance5057.items.QueensGoldIngot;
+import gmail.Lance5057.items.TinkerArmor;
+import gmail.Lance5057.proxy.CommonProxy;
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.init.Items;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemArmor.ArmorMaterial;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+import tconstruct.TConstruct;
+import tconstruct.library.TConstructRegistry;
+import tconstruct.library.client.TConstructClientRegistry;
+import tconstruct.library.client.ToolGuiElement;
+import tconstruct.library.crafting.PatternBuilder;
+import tconstruct.library.crafting.Smeltery;
+import tconstruct.library.tools.ToolCore;
+import tconstruct.smeltery.TinkerSmeltery;
+import tconstruct.tools.TinkerTools;
+import cpw.mods.fml.common.Mod;
+import cpw.mods.fml.common.Mod.EventHandler;
+import cpw.mods.fml.common.SidedProxy;
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLPostInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import cpw.mods.fml.common.registry.GameRegistry;
+
+@Mod(modid="tinkersdefense", version="1.0")
+public class mod_TinkersDefense
+{
+public static String MODID = "tinkersdefense";
+public static String VERSION = "1.0";
+
+public static CreativeTabs tabName = new CreativeTabs("tabName")
+{
+public Item getTabIconItem()
+{
+return Items.arrow;
+}
+};
+
+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 ToolCore tool_roundShield;
+public static ToolCore tool_heaterShield;
+
+public static Block block_CrestMount;
+
+public static Item item_TinkerArmor;
+
+@SidedProxy(clientSide = "gmail.Lance5057.proxy.ClientProxy", serverSide = "gmail.Lance5057.proxy.CommonProxy")
+public static CommonProxy proxy;
+
+@EventHandler
+public void preInit(FMLPreInitializationEvent e)
+{
+ //Renderers
+ proxy.registerRenderers();
+
+ //AeonSteel
+ item_AeonSteelIngot = new AeonSteelIngot()
+ .setCreativeTab(tabName)
+ .setMaxStackSize(64)
+ .setUnlocalizedName("AeonSteelIngot")
+ .setTextureName(MODID+":AeonSteelIngot");
+
+ GameRegistry.registerItem(item_AeonSteelIngot, "AeonSteel Ingot");
+
+ block_AeonSteelBlock = new AeonSteelBlock(Material.iron)
+ .setHardness(4.0F)
+ .setStepSound(Block.soundTypeMetal)
+ .setBlockName("AeonSteelBlock")
+ .setCreativeTab(tabName)
+ .setBlockTextureName(MODID+":AeonSteelBlock");
+
+ GameRegistry.registerBlock(block_AeonSteelBlock, "aeonsteelblock");
+
+ 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)});
+
+ moltenAeonsteel = new Fluid("moltenAeonsteel").setLuminosity(15).setDensity(3000).setViscosity(6000).setTemperature(1300);
+ FluidRegistry.registerFluid(moltenAeonsteel);
+
+ moltenAeonsteelFluid moltenAeonsteelBlock = new moltenAeonsteelFluid(moltenAeonsteel);
+
+ GameRegistry.registerBlock(moltenAeonsteelBlock, "moltenaeonsteel");
+
+ //Queen's Gold
+ item_QueensGoldIngot = new QueensGoldIngot()
+ .setCreativeTab(tabName)
+ .setMaxStackSize(64)
+ .setUnlocalizedName("QueensGoldIngot")
+ .setTextureName(MODID+":QueensGoldIngot");
+
+ GameRegistry.registerItem(item_QueensGoldIngot, "Queen's Gold Ingot");
+
+ block_QueensGoldBlock = new QueensGoldBlock(Material.iron)
+ .setHardness(4.0F)
+ .setStepSound(Block.soundTypeMetal)
+ .setBlockName("QueensGoldBlock")
+ .setCreativeTab(tabName)
+ .setBlockTextureName(MODID+":QueensGoldBlock");
+
+ GameRegistry.registerBlock(block_QueensGoldBlock, "QueensGoldblock");
+
+ GameRegistry.addShapedRecipe(new ItemStack(block_QueensGoldBlock), new Object[] {"xxx", "xxx","xxx",
+ 'x', item_QueensGoldIngot});
+ GameRegistry.addShapelessRecipe(new ItemStack(item_QueensGoldIngot,9),new Object[] {new ItemStack(block_QueensGoldBlock)});
+
+
+ moltenQueensGold = new Fluid("moltenQueensGold").setLuminosity(15).setDensity(3000).setViscosity(6000).setTemperature(1300);
+ FluidRegistry.registerFluid(moltenQueensGold);
+
+ moltenQueensGoldFluid moltenQueensGoldBlock = new moltenQueensGoldFluid(moltenQueensGold);
+
+ GameRegistry.registerBlock(moltenQueensGoldBlock, "moltenQueensGold");
+
+ //Dogbearium
+ item_DogbeariumIngot = new DogbeariumIngot()
+ .setCreativeTab(tabName)
+ .setMaxStackSize(64)
+ .setUnlocalizedName("DogbeariumIngot")
+ .setTextureName(MODID+":DogbeariumIngot");
+
+ GameRegistry.registerItem(item_DogbeariumIngot, "DogbeariumIngot");
+
+ block_DogbeariumBlock = new DogbeariumBlock(Material.iron)
+ .setHardness(4.0F)
+ .setStepSound(Block.soundTypeMetal)
+ .setBlockName("DogbeariumBlock")
+ .setCreativeTab(tabName)
+ .setBlockTextureName(MODID+":DogbeariumBlock");
+
+ GameRegistry.registerBlock(block_DogbeariumBlock, "Dogbeariumblock");
+
+ GameRegistry.addShapedRecipe(new ItemStack(block_DogbeariumBlock), new Object[] {"xxx", "xxx","xxx",
+ 'x', item_DogbeariumIngot});
+ GameRegistry.addShapelessRecipe(new ItemStack(item_DogbeariumIngot,9),new Object[] {new ItemStack(block_DogbeariumBlock)});
+
+
+ moltenDogbearium = new Fluid("moltenDogbearium").setLuminosity(15).setDensity(3000).setViscosity(6000).setTemperature(1300);
+ FluidRegistry.registerFluid(moltenDogbearium);
+
+ moltenDogbeariumFluid moltenDogbeariumBlock = new moltenDogbeariumFluid(moltenDogbearium);
+
+ GameRegistry.registerBlock(moltenDogbeariumBlock, "moltenDogbearium");
+
+ tool_roundShield = new RoundShield();
+ tool_heaterShield = new HeaterShield();
+
+ GameRegistry.registerItem(tool_roundShield, "Round Shield");
+ GameRegistry.registerItem(tool_heaterShield, "Heater Shield");
+ TConstructRegistry.addItemToDirectory("Round Shield", tool_roundShield);
+ TConstructRegistry.addItemToDirectory("Heater Shield", tool_heaterShield);
+
+ block_CrestMount = new CrestMount()
+ .setHardness(4.0F)
+ .setStepSound(Block.soundTypeMetal)
+ .setBlockName("CrestMount")
+ .setCreativeTab(tabName);
+
+ GameRegistry.registerTileEntity(TileEntity_CrestMount.class, "Tile_CrestMount");
+ GameRegistry.registerBlock(block_CrestMount, "Block_CrestMount");
+
+ item_TinkerArmor = new TinkerArmor(ArmorMaterial.IRON, 4, 1).setUnlocalizedName("Tinker_Armor");
+ GameRegistry.registerItem(item_TinkerArmor,"Tinker Armor");
+}
+
+@EventHandler
+public void init(FMLInitializationEvent e)
+{
+ System.out.print(MODID);
+ PatternBuilder pb = PatternBuilder.instance;
+ pb.registerMaterialSet("AeonSteel", new ItemStack(TinkerTools.toolShard, 1, 10), new ItemStack(TinkerTools.toolRod, 1, 10), 10);
+ // Tool Materials: id, name, harvestlevel, durability, speed, damage, handlemodifier, reinforced, shoddy, style color, primary color for block use
+ //Aeonsteel
+ TConstructClientRegistry.addMaterialRenderMapping(201, "tinker", "aeonsteel", true);
+ TConstructRegistry.addToolMaterial(201, "AeonSteel", 4, 822, 1100, 3, 1.6F, 2, 0f, LIGHT_PURPLE.toString(), 0xb565e6);
+ TinkerTools.registerPatternMaterial("AeonSteelIngot", 2, "AeonSteel");
+ TConstructRegistry.addDefaultToolPartMaterial(201);
+
+ Smeltery.addMelting(new ItemStack(item_AeonSteelIngot, 1, 0), block_AeonSteelBlock, 0, 500, new FluidStack(moltenAeonsteel, TConstruct.ingotLiquidValue));
+ Smeltery.addMelting(block_AeonSteelBlock, 0, 500, new FluidStack(moltenAeonsteel, TConstruct.ingotLiquidValue*9));
+
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(item_AeonSteelIngot, 1, 0), new FluidStack(moltenAeonsteel, TConstruct.ingotLiquidValue), TConstructRegistry.getItemStack("ingotCast"), false, 50);
+
+ TConstructRegistry.instance.getBasinCasting().addCastingRecipe(new ItemStack(block_AeonSteelBlock, 1, 0), new FluidStack(moltenAeonsteel, TConstruct.ingotLiquidValue*9), 100);
+
+ castMolten(moltenAeonsteel, 201);
+
+ PatternBuilder.instance.registerFullMaterial(new ItemStack(item_AeonSteelIngot, 1, 0), 2, "Aeonsteel", new ItemStack(TinkerTools.toolShard, 1, 201), new ItemStack(TinkerTools.toolRod, 1, 201), 201);
+
+ Smeltery.addAlloyMixing(new FluidStack(moltenAeonsteel, 144), new FluidStack[] { new FluidStack(TinkerSmeltery.moltenAlumiteFluid, 144), new FluidStack(TinkerSmeltery.moltenCobaltFluid, 144) });
+ //Queen's Gold
+ TConstructClientRegistry.addMaterialRenderMapping(202, "tinker", "queensgold", true);
+ TConstructRegistry.addToolMaterial(202, "QueensGold", 3, 100, 500, 2, 1.0F, 0, 0f, GOLD.toString(), 0xeaee57);
+ TinkerTools.registerPatternMaterial("QueensGoldIngot", 2, "QueensGold");
+ TConstructRegistry.addDefaultToolPartMaterial(202);
+
+ Smeltery.addMelting(new ItemStack(item_QueensGoldIngot, 1, 0), block_QueensGoldBlock, 0, 500, new FluidStack(moltenQueensGold, TConstruct.ingotLiquidValue));
+ Smeltery.addMelting(block_QueensGoldBlock, 0, 500, new FluidStack(moltenQueensGold, TConstruct.ingotLiquidValue*9));
+
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(item_QueensGoldIngot, 1, 0), new FluidStack(moltenQueensGold, TConstruct.ingotLiquidValue), TConstructRegistry.getItemStack("ingotCast"), false, 50);
+
+ TConstructRegistry.instance.getBasinCasting().addCastingRecipe(new ItemStack(block_QueensGoldBlock, 1, 0), new FluidStack(moltenQueensGold, TConstruct.ingotLiquidValue*9), 100);
+
+ castMolten(moltenQueensGold, 202);
+
+ PatternBuilder.instance.registerFullMaterial(new ItemStack(item_QueensGoldIngot, 1, 0), 2, "QueensGold", new ItemStack(TinkerTools.toolShard, 1, 202), new ItemStack(TinkerTools.toolRod, 1, 202), 202);
+
+ Smeltery.addAlloyMixing(new FluidStack(moltenQueensGold, 144*8), new FluidStack[] { new FluidStack(TinkerSmeltery.moltenGoldFluid, 144*8), new FluidStack(TinkerSmeltery.moltenEmeraldFluid, 80) });
+
+ // Tool Materials: id, name, harvestlevel, durability, speed, damage, handlemodifier, reinforced, shoddy, style color, primary color for block use
+ //Dogbearium
+ TConstructClientRegistry.addMaterialRenderMapping(201, "tinker", "Dogbearium", true);
+ TConstructRegistry.addToolMaterial(203, "Dogbearium", 4, 600, 800, 2, 1.6F, 0, -2f, DARK_RED.toString(), 0x754200);
+ TinkerTools.registerPatternMaterial("DogbeariumIngot", 2, "Dogbearium");
+ TConstructRegistry.addDefaultToolPartMaterial(203);
+
+ Smeltery.addMelting(new ItemStack(item_DogbeariumIngot, 1, 0), block_DogbeariumBlock, 0, 500, new FluidStack(moltenDogbearium, TConstruct.ingotLiquidValue));
+ Smeltery.addMelting(block_DogbeariumBlock, 0, 500, new FluidStack(moltenDogbearium, TConstruct.ingotLiquidValue*9));
+
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(item_DogbeariumIngot, 1, 0), new FluidStack(moltenDogbearium, TConstruct.ingotLiquidValue), TConstructRegistry.getItemStack("ingotCast"), false, 50);
+
+ TConstructRegistry.instance.getBasinCasting().addCastingRecipe(new ItemStack(block_DogbeariumBlock, 1, 0), new FluidStack(moltenDogbearium, TConstruct.ingotLiquidValue*9), 100);
+
+ castMolten(moltenDogbearium, 203);
+
+ PatternBuilder.instance.registerFullMaterial(new ItemStack(item_DogbeariumIngot, 1, 0), 2, "Dogbearium", new ItemStack(TinkerTools.toolShard, 1, 203), new ItemStack(TinkerTools.toolRod, 1, 203), 203);
+
+ Smeltery.addAlloyMixing(new FluidStack(moltenDogbearium, 144*2), new FluidStack[] { new FluidStack(TinkerSmeltery.moltenArditeFluid, 144), new FluidStack(TinkerSmeltery.bloodFluid, 160), new FluidStack(TinkerSmeltery.moltenEnderFluid,250) });
+
+ //Shields
+ TConstructRegistry.addToolRecipe(tool_roundShield, TinkerTools.largePlate, TinkerTools.toolRod, TinkerTools.frypanHead);
+
+ TConstructRegistry.addToolRecipe(tool_heaterShield, TinkerTools.largePlate, TinkerTools.toughRod, TinkerTools.largePlate, TinkerTools.toughBinding);
+}
+
+@EventHandler
+public void postInit(FMLPostInitializationEvent e)
+{
+ TConstructClientRegistry.toolButtons.add(TConstructClientRegistry.toolButtons.size(),
+ new ToolGuiElement(1, 0, 0, new int[] { 9, 0, 4, 0 }, new int[] { 2, 3, 2, 0 }, "Round Shield", "A simple shield with average durability and average defense.", "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 }, "Heater Shield", "An advanced shield with high durability and high defense.", "tinkersdefense", "textures/gui/icons.png"));
+}
+
+public void castMolten(Fluid fluid, int ID)
+{
+ //.addCastingRecipe(output, fluid, cast, hardeningDelay)
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.toolRod, 1, ID),new FluidStack(fluid, (int) (144*0.5D)), TConstructRegistry.getItemStack("toolRodCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.pickaxeHead, 1, ID),new FluidStack(fluid, (int) (144*1.0D)), TConstructRegistry.getItemStack("pickaxeHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.shovelHead, 1, ID),new FluidStack(fluid, (int) (144*1.0D)), TConstructRegistry.getItemStack("shovelHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.hatchetHead, 1, ID),new FluidStack(fluid, (int) (144*1.0D)), TConstructRegistry.getItemStack("hatchetHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.swordBlade, 1, ID),new FluidStack(fluid, (int) (144*1.0D)), TConstructRegistry.getItemStack("swordBladeCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.fullGuard, 1, ID),new FluidStack(fluid, (int) (144*1.0D)), TConstructRegistry.getItemStack("fullGuardCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.wideGuard, 1, ID),new FluidStack(fluid, (int) (144*0.5D)), TConstructRegistry.getItemStack("wideGuardCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.crossbar, 1, ID),new FluidStack(fluid, (int) (144*0.5D)), TConstructRegistry.getItemStack("crossbarCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.binding, 1, ID),new FluidStack(fluid, (int) (144*0.5D)), TConstructRegistry.getItemStack("bindingCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.handGuard, 1, ID),new FluidStack(fluid, (int) (144*0.5D)), TConstructRegistry.getItemStack("handGuardCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.frypanHead, 1, ID),new FluidStack(fluid, (int) (144*1.0D)), TConstructRegistry.getItemStack("frypanHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.signHead, 1, ID),new FluidStack(fluid, (int) (144*1.0D)), TConstructRegistry.getItemStack("signHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.knifeBlade, 1, ID),new FluidStack(fluid, (int) (144*0.5D)), TConstructRegistry.getItemStack("knifeBladeCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.chiselHead, 1, ID),new FluidStack(fluid, (int) (144*0.5D)), TConstructRegistry.getItemStack("chiselHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.toughRod, 1, ID),new FluidStack(fluid, (int) (144*3.0D)), TConstructRegistry.getItemStack("toughRodCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.toughBinding, 1, ID),new FluidStack(fluid, (int) (144*3.0D)), TConstructRegistry.getItemStack("toughBindingCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.largePlate, 1, ID),new FluidStack(fluid, (int) (144*8.0D)), TConstructRegistry.getItemStack("largePlateCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.broadAxeHead, 1, ID),new FluidStack(fluid, (int) (144*8.0D)), TConstructRegistry.getItemStack("broadAxeHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.scytheBlade, 1, ID),new FluidStack(fluid, (int) (144*8.0D)), TConstructRegistry.getItemStack("scytheHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.excavatorHead, 1, ID),new FluidStack(fluid, (int) (144*8.0D)), TConstructRegistry.getItemStack("excavatorHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.largeSwordBlade, 1, ID),new FluidStack(fluid, (int) (144*8.0D)), TConstructRegistry.getItemStack("largeBladeCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.hammerHead, 1, ID),new FluidStack(fluid, (int) (144*8.0D)), TConstructRegistry.getItemStack("hammerHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.arrowhead, 1, ID),new FluidStack(fluid, (int) (144*1.0D)), TConstructRegistry.getItemStack("arrowheadCast"),50);
+
+
+}
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/com/moltenAeonsteelFluid.java b/src/main/java/gmail/Lance5057/com/moltenAeonsteelFluid.java
new file mode 100644
index 0000000..b18f981
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/com/moltenAeonsteelFluid.java
@@ -0,0 +1,59 @@
+package gmail.Lance5057.com;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import java.util.Locale;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.util.IIcon;
+import net.minecraftforge.fluids.BlockFluidClassic;
+import net.minecraftforge.fluids.Fluid;
+
+public class moltenAeonsteelFluid
+ extends BlockFluidClassic
+{
+ private IIcon stillIcon;
+ private IIcon flowingIcon;
+ private String stillIconTexture = "molten_Aeonsteel";
+ private String flowIconTexture = "molten_Aeonsteel_flow";
+
+ public moltenAeonsteelFluid(Fluid fluid)
+ {
+ super(fluid, Material.lava);
+ setLightLevel(100.0F);
+ setHardness(1.0F);
+ setBlockName("MoltenAeonSteel");
+
+ 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/gmail/Lance5057/com/moltenDogbeariumFluid.java b/src/main/java/gmail/Lance5057/com/moltenDogbeariumFluid.java
new file mode 100644
index 0000000..b9d91af
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/com/moltenDogbeariumFluid.java
@@ -0,0 +1,59 @@
+package gmail.Lance5057.com;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import java.util.Locale;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.util.IIcon;
+import net.minecraftforge.fluids.BlockFluidClassic;
+import net.minecraftforge.fluids.Fluid;
+
+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/gmail/Lance5057/com/moltenQueensGoldFluid.java b/src/main/java/gmail/Lance5057/com/moltenQueensGoldFluid.java
new file mode 100644
index 0000000..dc55f19
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/com/moltenQueensGoldFluid.java
@@ -0,0 +1,59 @@
+package gmail.Lance5057.com;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import java.util.Locale;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.util.IIcon;
+import net.minecraftforge.fluids.BlockFluidClassic;
+import net.minecraftforge.fluids.Fluid;
+
+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/gmail/Lance5057/items/AeonSteelIngot.java b/src/main/java/gmail/Lance5057/items/AeonSteelIngot.java
new file mode 100644
index 0000000..793507a
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/items/AeonSteelIngot.java
@@ -0,0 +1,12 @@
+package gmail.Lance5057.items;
+
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
+
+public class AeonSteelIngot extends Item
+{
+ public AeonSteelIngot()
+ {
+
+ }
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/items/DogbeariumIngot.java b/src/main/java/gmail/Lance5057/items/DogbeariumIngot.java
new file mode 100644
index 0000000..539dd08
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/items/DogbeariumIngot.java
@@ -0,0 +1,11 @@
+package gmail.Lance5057.items;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
+
+public class DogbeariumIngot extends Item
+{
+ public DogbeariumIngot()
+ {
+
+ }
+}
diff --git a/src/main/java/gmail/Lance5057/items/ModelTinkerArmor.java b/src/main/java/gmail/Lance5057/items/ModelTinkerArmor.java
new file mode 100644
index 0000000..c205c98
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/items/ModelTinkerArmor.java
@@ -0,0 +1,109 @@
+// Date: 1/19/2015 11:08:25 PM
+// Template version 1.1
+// Java generated by Techne
+// Keep in mind that you still need to fill in some blanks
+// - ZeuX
+
+package gmail.Lance5057.items;
+
+import net.minecraft.client.model.ModelBiped;
+import net.minecraft.client.model.ModelRenderer;
+import net.minecraft.entity.Entity;
+
+public class ModelTinkerArmor extends ModelBiped
+{
+ //fields
+ ModelRenderer BackPlate;
+ ModelRenderer BreastPlate;
+ ModelRenderer Plackart;
+ ModelRenderer PauldronL;
+ ModelRenderer ArmL;
+ ModelRenderer PauldronR;
+ ModelRenderer ArmR;
+
+ public ModelTinkerArmor(float f)
+ {
+ super(f, 0, 64,64);
+ textureWidth = 64;
+ textureHeight = 64;
+
+ BackPlate = new ModelRenderer(this, 0, 56);
+ BackPlate.addBox(-4F, 0F, 1F, 8, 5, 3);
+ BackPlate.setRotationPoint(0F, 0F, 0F);
+ BackPlate.setTextureSize(64, 32);
+ BackPlate.mirror = true;
+ setRotation(BackPlate, -0.0872665F, 0F, 0F);
+ this.bipedBody.addChild(BackPlate);
+
+ BreastPlate = new ModelRenderer(this, 0, 32);
+ BreastPlate.addBox(-4F, -1F, -5F, 8, 6, 4);
+ BreastPlate.setRotationPoint(0F, 0F, 0F);
+ BreastPlate.setTextureSize(64, 32);
+ BreastPlate.mirror = true;
+ setRotation(BreastPlate, 0.4363323F, 0F, 0F);
+ this.bipedBody.addChild(BreastPlate);
+
+ Plackart = new ModelRenderer(this, 0, 42);
+ Plackart.addBox(-4F, 5F, -3F, 8, 7, 6);
+ Plackart.setRotationPoint(0F, 0F, 0F);
+ Plackart.setTextureSize(64, 32);
+ Plackart.mirror = true;
+ setRotation(Plackart, 0F, 0F, 0F);
+ this.bipedBody.addChild(Plackart);
+
+ PauldronL = new ModelRenderer(this, 28, 32);
+ PauldronL.addBox(1F, -2F, -3.5F, 5, 5, 7);
+ PauldronL.setRotationPoint(0F, 0F, 0F);
+ PauldronL.setTextureSize(64, 32);
+ PauldronL.mirror = true;
+ setRotation(PauldronL, 0F, 0F, -0.7853982F);
+ this.bipedLeftArm.addChild(PauldronL);
+
+ ArmL = new ModelRenderer(this, 28, 44);
+ ArmL.addBox(-1F, -2F, -3F, 5, 10, 6);
+ ArmL.setRotationPoint(0F, 0F, 0F);
+ ArmL.setTextureSize(64, 32);
+ ArmL.mirror = true;
+ setRotation(ArmL, 0F, 0F, 0F);
+ this.bipedLeftArm.addChild(ArmL);
+
+ PauldronR = new ModelRenderer(this, 28, 32);
+ PauldronR.mirror = true;
+ PauldronR.addBox(-6F, -2F, -3.5F, 5, 5, 7);
+ PauldronR.setRotationPoint(0F, 0F, 0F);
+ PauldronR.setTextureSize(64, 32);
+ PauldronR.mirror = true;
+ setRotation(PauldronR, 0F, 0F, 0.7853982F);
+ PauldronR.mirror = false;
+ this.bipedRightArm.addChild(PauldronR);
+
+ ArmR = new ModelRenderer(this, 28, 44);
+ ArmR.mirror = true;
+ ArmR.addBox(-4F, -2F, -3F, 5, 10, 6);
+ ArmR.setRotationPoint(0F, 0F, 0F);
+ ArmR.setTextureSize(64, 32);
+ ArmR.mirror = true;
+ setRotation(ArmR, 0F, 0F, 0F);
+ ArmR.mirror = false;
+ this.bipedRightArm.addChild(ArmR);
+ }
+
+ public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
+ {
+ super.render(entity, f, f1, f2, f3, f4, f5);
+ setRotationAngles(f, f1, f2, f3, f4, f5, entity);
+ }
+
+ private void setRotation(ModelRenderer model, float x, float y, float z)
+ {
+ model.rotateAngleX = x;
+ model.rotateAngleY = y;
+ model.rotateAngleZ = z;
+ }
+
+ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
+ {
+ super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
+ }
+
+}
diff --git a/src/main/java/gmail/Lance5057/items/QueensGoldIngot.java b/src/main/java/gmail/Lance5057/items/QueensGoldIngot.java
new file mode 100644
index 0000000..74c2708
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/items/QueensGoldIngot.java
@@ -0,0 +1,11 @@
+package gmail.Lance5057.items;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
+
+public class QueensGoldIngot extends Item
+{
+ public QueensGoldIngot()
+ {
+
+ }
+}
diff --git a/src/main/java/gmail/Lance5057/items/TinkerArmor.java b/src/main/java/gmail/Lance5057/items/TinkerArmor.java
new file mode 100644
index 0000000..dd632d4
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/items/TinkerArmor.java
@@ -0,0 +1,76 @@
+package gmail.Lance5057.items;
+
+import gmail.Lance5057.com.mod_TinkersDefense;
+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 TinkerArmor extends ItemArmor
+{
+ public TinkerArmor(ArmorMaterial par2EnumArmorMaterial, int par3, int par4)
+ {
+ super(par2EnumArmorMaterial, par3, par4);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister par1IconRegister)
+ {
+ String itemName = "tinkersdefense:textures/armor/TinkerArmor.png";
+ this.itemIcon = par1IconRegister.registerIcon(itemName);
+ }
+
+ @Override
+ public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
+ {
+ return "tinkersdefense:textures/armor/TinkerArmor.png";
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT) public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot)
+ {
+ ModelBiped armorModel = null;
+ if(itemStack != null)
+ {
+ if(itemStack.getItem() instanceof TinkerArmor)
+ {
+ int type = ((ItemArmor)itemStack.getItem()).armorType;
+ if(type == 1 || type == 3)
+ {
+ armorModel = mod_TinkersDefense.proxy.getArmorModel(0);
+ }
+ else
+ {
+ armorModel = mod_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/gmail/Lance5057/items/TinkerHelm.tcn b/src/main/java/gmail/Lance5057/items/TinkerHelm.tcn
new file mode 100644
index 0000000..4344f18
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/items/TinkerHelm.tcn
Binary files differ
diff --git a/src/main/java/gmail/Lance5057/proxy/ClientProxy.java b/src/main/java/gmail/Lance5057/proxy/ClientProxy.java
new file mode 100644
index 0000000..db933ea
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/proxy/ClientProxy.java
@@ -0,0 +1,36 @@
+package gmail.Lance5057.proxy;
+
+import gmail.Lance5057.blocks.Renderer_CrestMount;
+import gmail.Lance5057.blocks.TileEntity_CrestMount;
+import gmail.Lance5057.proxy.CommonProxy;
+import gmail.Lance5057.items.ModelTinkerArmor;
+import gmail.Lance5057.items.TinkerArmor;
+import net.minecraft.client.model.ModelBiped;
+import cpw.mods.fml.client.registry.ClientRegistry;
+
+
+public class ClientProxy extends CommonProxy {
+ private static final ModelTinkerArmor tutChest = new ModelTinkerArmor(1.0f);
+
+ @Override
+ public void registerRenderers() {
+ // This is for rendering entities and so forth later on
+ ClientRegistry.bindTileEntitySpecialRenderer(TileEntity_CrestMount.class, new Renderer_CrestMount());
+ }
+
+ public void registerTileEntitySpecialRenderer()
+ {
+
+ }
+ @Override
+ public ModelBiped getArmorModel(int id)
+ {
+ switch (id)
+ {
+ case 0: return tutChest;
+ default: break;
+ }
+ return tutChest; //default, if whenever you should have passed on a wrong id
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/proxy/CommonProxy.java b/src/main/java/gmail/Lance5057/proxy/CommonProxy.java
new file mode 100644
index 0000000..164bf21
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/proxy/CommonProxy.java
@@ -0,0 +1,21 @@
+package gmail.Lance5057.proxy;
+
+import net.minecraft.client.model.ModelBiped;
+
+public class CommonProxy {
+
+ // Client stuff
+ public void registerRenderers() {
+ // Nothing here as the server doesn't render graphics or entities!
+ }
+
+ public void registerTileEntitySpecialRenderer()
+ {
+
+ }
+
+ public ModelBiped getArmorModel(int id)
+ {
+ return null;
+ }
+} \ No newline at end of file