From afb474545246da88084a43cae31259c33e63a8d1 Mon Sep 17 00:00:00 2001 From: Lance5057 Date: Fri, 13 Mar 2015 08:15:33 -0500 Subject: Updated to TiCo 1.8.3 and fixed the rendering issues that followed. Also refactored some codes. --- src/main/java/gmail/Lance5057/items/Shield.java | 121 ++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 src/main/java/gmail/Lance5057/items/Shield.java (limited to 'src/main/java/gmail/Lance5057/items/Shield.java') diff --git a/src/main/java/gmail/Lance5057/items/Shield.java b/src/main/java/gmail/Lance5057/items/Shield.java new file mode 100644 index 0000000..acf05fb --- /dev/null +++ b/src/main/java/gmail/Lance5057/items/Shield.java @@ -0,0 +1,121 @@ +package gmail.Lance5057.items; + +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 -- cgit v1.2.3