From b4eb8f2d65c62afccc898808b44fdddfde0c15d1 Mon Sep 17 00:00:00 2001 From: Lance5057 Date: Wed, 21 Jan 2015 20:04:34 -0600 Subject: Startup I hope I'm doing this right... --- .../gmail/Lance5057/blocks/AeonSteelBlock.java | 15 + .../java/gmail/Lance5057/blocks/CrestMount.java | 43 +++ .../gmail/Lance5057/blocks/DogbeariumBlock.java | 15 + .../gmail/Lance5057/blocks/ModelCrestMount.java | 87 ++++++ .../gmail/Lance5057/blocks/QueensGoldBlock.java | 15 + .../Lance5057/blocks/Renderer_CrestMount.java | 60 ++++ .../Lance5057/blocks/TileEntity_CrestMount.java | 7 + .../java/gmail/Lance5057/com/HeaterShield.java | 256 +++++++++++++++++ src/main/java/gmail/Lance5057/com/RoundShield.java | 249 ++++++++++++++++ src/main/java/gmail/Lance5057/com/RoyalGuard.java | 42 +++ src/main/java/gmail/Lance5057/com/Shield.java | 121 ++++++++ .../gmail/Lance5057/com/mod_TinkersDefense.java | 312 +++++++++++++++++++++ .../gmail/Lance5057/com/moltenAeonsteelFluid.java | 59 ++++ .../gmail/Lance5057/com/moltenDogbeariumFluid.java | 59 ++++ .../gmail/Lance5057/com/moltenQueensGoldFluid.java | 59 ++++ .../java/gmail/Lance5057/items/AeonSteelIngot.java | 12 + .../gmail/Lance5057/items/DogbeariumIngot.java | 11 + .../gmail/Lance5057/items/ModelTinkerArmor.java | 109 +++++++ .../gmail/Lance5057/items/QueensGoldIngot.java | 11 + .../java/gmail/Lance5057/items/TinkerArmor.java | 76 +++++ src/main/java/gmail/Lance5057/items/TinkerHelm.tcn | Bin 0 -> 1556 bytes .../java/gmail/Lance5057/proxy/ClientProxy.java | 36 +++ .../java/gmail/Lance5057/proxy/CommonProxy.java | 21 ++ 23 files changed, 1675 insertions(+) create mode 100644 src/main/java/gmail/Lance5057/blocks/AeonSteelBlock.java create mode 100644 src/main/java/gmail/Lance5057/blocks/CrestMount.java create mode 100644 src/main/java/gmail/Lance5057/blocks/DogbeariumBlock.java create mode 100644 src/main/java/gmail/Lance5057/blocks/ModelCrestMount.java create mode 100644 src/main/java/gmail/Lance5057/blocks/QueensGoldBlock.java create mode 100644 src/main/java/gmail/Lance5057/blocks/Renderer_CrestMount.java create mode 100644 src/main/java/gmail/Lance5057/blocks/TileEntity_CrestMount.java create mode 100644 src/main/java/gmail/Lance5057/com/HeaterShield.java create mode 100644 src/main/java/gmail/Lance5057/com/RoundShield.java create mode 100644 src/main/java/gmail/Lance5057/com/RoyalGuard.java create mode 100644 src/main/java/gmail/Lance5057/com/Shield.java create mode 100644 src/main/java/gmail/Lance5057/com/mod_TinkersDefense.java create mode 100644 src/main/java/gmail/Lance5057/com/moltenAeonsteelFluid.java create mode 100644 src/main/java/gmail/Lance5057/com/moltenDogbeariumFluid.java create mode 100644 src/main/java/gmail/Lance5057/com/moltenQueensGoldFluid.java create mode 100644 src/main/java/gmail/Lance5057/items/AeonSteelIngot.java create mode 100644 src/main/java/gmail/Lance5057/items/DogbeariumIngot.java create mode 100644 src/main/java/gmail/Lance5057/items/ModelTinkerArmor.java create mode 100644 src/main/java/gmail/Lance5057/items/QueensGoldIngot.java create mode 100644 src/main/java/gmail/Lance5057/items/TinkerArmor.java create mode 100644 src/main/java/gmail/Lance5057/items/TinkerHelm.tcn create mode 100644 src/main/java/gmail/Lance5057/proxy/ClientProxy.java create mode 100644 src/main/java/gmail/Lance5057/proxy/CommonProxy.java (limited to 'src/main/java') 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 Binary files /dev/null and b/src/main/java/gmail/Lance5057/items/TinkerHelm.tcn 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 -- cgit v1.2.3