From 061df55c4c0f21a5a0c2003a86ecf87462133cde Mon Sep 17 00:00:00 2001 From: Lance5057 Date: Sat, 18 Apr 2015 05:57:46 -0500 Subject: Added wrenches and a steve model. --- src/main/java/gmail/Lance5057/TinkersDefense.java | 20 +- .../gmail/Lance5057/armor/tools/Item_Cloth.java | 52 +++++ .../Lance5057/armor/tools/Item_Glowthread.java | 52 +++++ .../gmail/Lance5057/armor/tools/Item_Thread.java | 52 +++++ .../java/gmail/Lance5057/items/HeaterShield.java | 249 --------------------- .../java/gmail/Lance5057/items/Item_Cloth.java | 52 ----- .../gmail/Lance5057/items/Item_Glowthread.java | 52 ----- .../java/gmail/Lance5057/items/Item_Thread.java | 52 ----- .../java/gmail/Lance5057/items/RoundShield.java | 244 -------------------- src/main/java/gmail/Lance5057/items/Shield.java | 214 ------------------ .../gmail/Lance5057/items/tools/HeaterShield.java | 249 +++++++++++++++++++++ .../gmail/Lance5057/items/tools/RoundShield.java | 244 ++++++++++++++++++++ .../java/gmail/Lance5057/items/tools/Shield.java | 214 ++++++++++++++++++ .../gmail/Lance5057/items/tools/TinkerWrench.java | 118 ++++++++++ .../java/gmail/Lance5057/proxy/ClientProxy.java | 3 +- 15 files changed, 996 insertions(+), 871 deletions(-) create mode 100644 src/main/java/gmail/Lance5057/armor/tools/Item_Cloth.java create mode 100644 src/main/java/gmail/Lance5057/armor/tools/Item_Glowthread.java create mode 100644 src/main/java/gmail/Lance5057/armor/tools/Item_Thread.java delete mode 100644 src/main/java/gmail/Lance5057/items/HeaterShield.java delete mode 100644 src/main/java/gmail/Lance5057/items/Item_Cloth.java delete mode 100644 src/main/java/gmail/Lance5057/items/Item_Glowthread.java delete mode 100644 src/main/java/gmail/Lance5057/items/Item_Thread.java delete mode 100644 src/main/java/gmail/Lance5057/items/RoundShield.java delete mode 100644 src/main/java/gmail/Lance5057/items/Shield.java create mode 100644 src/main/java/gmail/Lance5057/items/tools/HeaterShield.java create mode 100644 src/main/java/gmail/Lance5057/items/tools/RoundShield.java create mode 100644 src/main/java/gmail/Lance5057/items/tools/Shield.java create mode 100644 src/main/java/gmail/Lance5057/items/tools/TinkerWrench.java (limited to 'src/main/java/gmail') diff --git a/src/main/java/gmail/Lance5057/TinkersDefense.java b/src/main/java/gmail/Lance5057/TinkersDefense.java index 7ca5f92..c1f9f01 100644 --- a/src/main/java/gmail/Lance5057/TinkersDefense.java +++ b/src/main/java/gmail/Lance5057/TinkersDefense.java @@ -4,21 +4,21 @@ 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.armor.blocks.ArmorAnvil; +import gmail.Lance5057.armor.tools.Item_Cloth; +import gmail.Lance5057.armor.tools.Item_Glowthread; +import gmail.Lance5057.armor.tools.Item_Thread; import gmail.Lance5057.blocks.AeonSteelBlock; import gmail.Lance5057.blocks.CrestMount; import gmail.Lance5057.blocks.DogbeariumBlock; import gmail.Lance5057.blocks.JewelersBench; import gmail.Lance5057.blocks.QueensGoldBlock; import gmail.Lance5057.items.AeonSteelIngot; -import gmail.Lance5057.items.Crest_Feathers; import gmail.Lance5057.items.DogbeariumIngot; -import gmail.Lance5057.items.HeaterShield; -import gmail.Lance5057.items.Item_Cloth; -import gmail.Lance5057.items.Item_Glowthread; -import gmail.Lance5057.items.Item_Thread; import gmail.Lance5057.items.QueensGoldIngot; -import gmail.Lance5057.items.RoundShield; import gmail.Lance5057.items.TD_Patterns; +import gmail.Lance5057.items.tools.HeaterShield; +import gmail.Lance5057.items.tools.RoundShield; +import gmail.Lance5057.items.tools.TinkerWrench; import gmail.Lance5057.liquids.moltenAeonsteelFluid; import gmail.Lance5057.liquids.moltenDogbeariumFluid; import gmail.Lance5057.liquids.moltenQueensGoldFluid; @@ -49,7 +49,6 @@ import tconstruct.library.crafting.Smeltery; import tconstruct.library.crafting.StencilBuilder; import tconstruct.library.tools.DynamicToolPart; import tconstruct.library.tools.ToolCore; -import tconstruct.library.util.IPattern; import tconstruct.smeltery.TinkerSmeltery; import tconstruct.tools.TinkerTools; import tconstruct.tools.items.Pattern; @@ -103,6 +102,7 @@ public static Block moltenDogbeariumBlock; public static ToolCore tool_roundShield; public static ToolCore tool_heaterShield; +public static ToolCore tool_wrench; public static Block block_CrestMount; public static Block block_ArmorAnvil; @@ -258,6 +258,8 @@ public void preInit(FMLPreInitializationEvent e) tool_roundShield = new RoundShield(); tool_heaterShield = new HeaterShield(); + tool_wrench = new TinkerWrench(); + item_Crest_Feathers = new Item() .setCreativeTab(tabName) .setMaxStackSize(1) @@ -278,8 +280,10 @@ public void preInit(FMLPreInitializationEvent e) GameRegistry.registerItem(tool_roundShield, "Round Shield"); GameRegistry.registerItem(tool_heaterShield, "Heater Shield"); + GameRegistry.registerItem(tool_wrench,"Tinker Wrench"); TConstructRegistry.addItemToDirectory("Round Shield", tool_roundShield); TConstructRegistry.addItemToDirectory("Heater Shield", tool_heaterShield); + TConstructRegistry.addItemToDirectory("Tinker Wrench", tool_wrench); GameRegistry.registerItem(item_thread = new Item_Thread(), "thread"); GameRegistry.registerItem(item_glowthread = new Item_Glowthread(), "glowthread"); @@ -380,6 +384,8 @@ public void init(FMLInitializationEvent e) TConstructRegistry.addToolRecipe(tool_heaterShield, TinkerTools.largePlate, TinkerTools.toughRod, TinkerTools.largePlate, TinkerTools.toughBinding); + TConstructRegistry.addToolRecipe(tool_wrench, TinkerTools.handGuard, TinkerTools.toolRod, TinkerTools.binding); + StencilBuilder.registerStencil(50, woodPattern, 0); // rivets StencilBuilder.registerStencil(51, woodPattern, 1); // spike StencilBuilder.registerStencil(52, woodPattern, 2); // armorplate diff --git a/src/main/java/gmail/Lance5057/armor/tools/Item_Cloth.java b/src/main/java/gmail/Lance5057/armor/tools/Item_Cloth.java new file mode 100644 index 0000000..d236ac7 --- /dev/null +++ b/src/main/java/gmail/Lance5057/armor/tools/Item_Cloth.java @@ -0,0 +1,52 @@ +package gmail.Lance5057.armor.tools; + +import gmail.Lance5057.TinkersDefense; + +import java.util.List; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class Item_Cloth extends Item +{ + public IIcon[] icons = new IIcon[16]; + public static final String[] colors = new String[] {"black", "red", "green", "brown", "blue", "purple", "cyan", "silver", "grey", "pink", "lime", "yellow", "lightBlue", "magenta", "orange", "white"}; + + public Item_Cloth() + { + super(); + this.setHasSubtypes(true); + this.setUnlocalizedName("Cloth"); + this.setCreativeTab(TinkersDefense.tabName); + } + + @Override + public void registerIcons(IIconRegister reg) { + for (int i = 0; i < 16; i ++) { + this.icons[i] = reg.registerIcon("tinkersdefense:" + colors[i] + "_cloth" ); + } + } + + @Override + public IIcon getIconFromDamage(int meta) { + if (meta > 15) + meta = 0; + + return this.icons[meta]; + } + + @Override + public void getSubItems(Item item, CreativeTabs tab, List list) { + for (int i = 0; i < 16; i ++) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + return colors[stack.getItemDamage()] + "_" + this.getUnlocalizedName(); + } +} diff --git a/src/main/java/gmail/Lance5057/armor/tools/Item_Glowthread.java b/src/main/java/gmail/Lance5057/armor/tools/Item_Glowthread.java new file mode 100644 index 0000000..7fbed32 --- /dev/null +++ b/src/main/java/gmail/Lance5057/armor/tools/Item_Glowthread.java @@ -0,0 +1,52 @@ +package gmail.Lance5057.armor.tools; + +import gmail.Lance5057.TinkersDefense; + +import java.util.List; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class Item_Glowthread extends Item +{ + public IIcon[] icons = new IIcon[16]; + public static final String[] colors = new String[] {"black", "red", "green", "brown", "blue", "purple", "cyan", "silver", "grey", "pink", "lime", "yellow", "lightBlue", "magenta", "orange", "white"}; + + public Item_Glowthread() + { + super(); + this.setHasSubtypes(true); + this.setUnlocalizedName("GlowThread"); + this.setCreativeTab(TinkersDefense.tabName); + } + + @Override + public void registerIcons(IIconRegister reg) { + for (int i = 0; i < 16; i ++) { + this.icons[i] = reg.registerIcon("tinkersdefense:" + colors[i] + "_glowthread" ); + } + } + + @Override + public IIcon getIconFromDamage(int meta) { + if (meta > 15) + meta = 0; + + return this.icons[meta]; + } + + @Override + public void getSubItems(Item item, CreativeTabs tab, List list) { + for (int i = 0; i < 16; i ++) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + return colors[stack.getItemDamage()] + "_" + this.getUnlocalizedName(); + } +} diff --git a/src/main/java/gmail/Lance5057/armor/tools/Item_Thread.java b/src/main/java/gmail/Lance5057/armor/tools/Item_Thread.java new file mode 100644 index 0000000..dda0d14 --- /dev/null +++ b/src/main/java/gmail/Lance5057/armor/tools/Item_Thread.java @@ -0,0 +1,52 @@ +package gmail.Lance5057.armor.tools; + +import gmail.Lance5057.TinkersDefense; + +import java.util.List; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class Item_Thread extends Item +{ + public IIcon[] icons = new IIcon[16]; + public static final String[] colors = new String[] {"black", "red", "green", "brown", "blue", "purple", "cyan", "silver", "grey", "pink", "lime", "yellow", "lightBlue", "magenta", "orange", "white"}; + + public Item_Thread() + { + super(); + this.setHasSubtypes(true); + this.setUnlocalizedName("Thread"); + this.setCreativeTab(TinkersDefense.tabName); + } + + @Override + public void registerIcons(IIconRegister reg) { + for (int i = 0; i < 16; i ++) { + this.icons[i] = reg.registerIcon("tinkersdefense:" + colors[i] + "_thread" ); + } + } + + @Override + public IIcon getIconFromDamage(int meta) { + if (meta > 15) + meta = 0; + + return this.icons[meta]; + } + + @Override + public void getSubItems(Item item, CreativeTabs tab, List list) { + for (int i = 0; i < 16; i ++) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + return colors[stack.getItemDamage()] + "_" + this.getUnlocalizedName(); + } +} diff --git a/src/main/java/gmail/Lance5057/items/HeaterShield.java b/src/main/java/gmail/Lance5057/items/HeaterShield.java deleted file mode 100644 index 99cbd77..0000000 --- a/src/main/java/gmail/Lance5057/items/HeaterShield.java +++ /dev/null @@ -1,249 +0,0 @@ -package gmail.Lance5057.items; - -import java.util.List; - -import mods.battlegear2.api.ISheathed; -import mods.battlegear2.api.shield.IArrowCatcher; -import mods.battlegear2.api.shield.IArrowDisplay; -import mods.battlegear2.api.shield.IShield; -import net.minecraft.block.material.Material; -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.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; -import net.minecraft.world.World; -import tconstruct.library.tools.AbilityHelper; -import tconstruct.library.tools.HarvestTool; -import tconstruct.tools.TinkerTools; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - - -public class HeaterShield extends Shield -{ - 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 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/items/Item_Cloth.java b/src/main/java/gmail/Lance5057/items/Item_Cloth.java deleted file mode 100644 index 945fc9a..0000000 --- a/src/main/java/gmail/Lance5057/items/Item_Cloth.java +++ /dev/null @@ -1,52 +0,0 @@ -package gmail.Lance5057.items; - -import gmail.Lance5057.TinkersDefense; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; - -public class Item_Cloth extends Item -{ - public IIcon[] icons = new IIcon[16]; - public static final String[] colors = new String[] {"black", "red", "green", "brown", "blue", "purple", "cyan", "silver", "grey", "pink", "lime", "yellow", "lightBlue", "magenta", "orange", "white"}; - - public Item_Cloth() - { - super(); - this.setHasSubtypes(true); - this.setUnlocalizedName("Cloth"); - this.setCreativeTab(TinkersDefense.tabName); - } - - @Override - public void registerIcons(IIconRegister reg) { - for (int i = 0; i < 16; i ++) { - this.icons[i] = reg.registerIcon("tinkersdefense:" + colors[i] + "_cloth" ); - } - } - - @Override - public IIcon getIconFromDamage(int meta) { - if (meta > 15) - meta = 0; - - return this.icons[meta]; - } - - @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { - for (int i = 0; i < 16; i ++) { - list.add(new ItemStack(item, 1, i)); - } - } - - @Override - public String getUnlocalizedName(ItemStack stack) { - return colors[stack.getItemDamage()] + "_" + this.getUnlocalizedName(); - } -} diff --git a/src/main/java/gmail/Lance5057/items/Item_Glowthread.java b/src/main/java/gmail/Lance5057/items/Item_Glowthread.java deleted file mode 100644 index 39c5ce4..0000000 --- a/src/main/java/gmail/Lance5057/items/Item_Glowthread.java +++ /dev/null @@ -1,52 +0,0 @@ -package gmail.Lance5057.items; - -import gmail.Lance5057.TinkersDefense; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; - -public class Item_Glowthread extends Item -{ - public IIcon[] icons = new IIcon[16]; - public static final String[] colors = new String[] {"black", "red", "green", "brown", "blue", "purple", "cyan", "silver", "grey", "pink", "lime", "yellow", "lightBlue", "magenta", "orange", "white"}; - - public Item_Glowthread() - { - super(); - this.setHasSubtypes(true); - this.setUnlocalizedName("GlowThread"); - this.setCreativeTab(TinkersDefense.tabName); - } - - @Override - public void registerIcons(IIconRegister reg) { - for (int i = 0; i < 16; i ++) { - this.icons[i] = reg.registerIcon("tinkersdefense:" + colors[i] + "_glowthread" ); - } - } - - @Override - public IIcon getIconFromDamage(int meta) { - if (meta > 15) - meta = 0; - - return this.icons[meta]; - } - - @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { - for (int i = 0; i < 16; i ++) { - list.add(new ItemStack(item, 1, i)); - } - } - - @Override - public String getUnlocalizedName(ItemStack stack) { - return colors[stack.getItemDamage()] + "_" + this.getUnlocalizedName(); - } -} diff --git a/src/main/java/gmail/Lance5057/items/Item_Thread.java b/src/main/java/gmail/Lance5057/items/Item_Thread.java deleted file mode 100644 index 9277974..0000000 --- a/src/main/java/gmail/Lance5057/items/Item_Thread.java +++ /dev/null @@ -1,52 +0,0 @@ -package gmail.Lance5057.items; - -import gmail.Lance5057.TinkersDefense; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; - -public class Item_Thread extends Item -{ - public IIcon[] icons = new IIcon[16]; - public static final String[] colors = new String[] {"black", "red", "green", "brown", "blue", "purple", "cyan", "silver", "grey", "pink", "lime", "yellow", "lightBlue", "magenta", "orange", "white"}; - - public Item_Thread() - { - super(); - this.setHasSubtypes(true); - this.setUnlocalizedName("Thread"); - this.setCreativeTab(TinkersDefense.tabName); - } - - @Override - public void registerIcons(IIconRegister reg) { - for (int i = 0; i < 16; i ++) { - this.icons[i] = reg.registerIcon("tinkersdefense:" + colors[i] + "_thread" ); - } - } - - @Override - public IIcon getIconFromDamage(int meta) { - if (meta > 15) - meta = 0; - - return this.icons[meta]; - } - - @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { - for (int i = 0; i < 16; i ++) { - list.add(new ItemStack(item, 1, i)); - } - } - - @Override - public String getUnlocalizedName(ItemStack stack) { - return colors[stack.getItemDamage()] + "_" + this.getUnlocalizedName(); - } -} diff --git a/src/main/java/gmail/Lance5057/items/RoundShield.java b/src/main/java/gmail/Lance5057/items/RoundShield.java deleted file mode 100644 index da59e6b..0000000 --- a/src/main/java/gmail/Lance5057/items/RoundShield.java +++ /dev/null @@ -1,244 +0,0 @@ -package gmail.Lance5057.items; - -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 Shield -{ - 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 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/items/Shield.java b/src/main/java/gmail/Lance5057/items/Shield.java deleted file mode 100644 index 85e6864..0000000 --- a/src/main/java/gmail/Lance5057/items/Shield.java +++ /dev/null @@ -1,214 +0,0 @@ -package gmail.Lance5057.items; - -import tconstruct.library.tools.ToolCore; -import cpw.mods.fml.relauncher.*; -import mods.battlegear2.api.IEnchantable; -import mods.battlegear2.api.ISheathed; -import mods.battlegear2.api.shield.IArrowCatcher; -import mods.battlegear2.api.shield.IArrowDisplay; -import mods.battlegear2.api.shield.IShield; -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.IProjectile; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.*; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class Shield extends ToolCore implements IShield, ISheathed, IArrowCatcher, IArrowDisplay -{ -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; -} -@Override -public int getArrowCount(ItemStack arg0) { - // TODO Auto-generated method stub - return 0; -} -@Override -public void setArrowCount(ItemStack arg0, int arg1) { - // TODO Auto-generated method stub - -} -@Override -public boolean catchArrow(ItemStack arg0, EntityPlayer arg1, IProjectile arg2) { - // TODO Auto-generated method stub - return false; -} -@Override -public boolean sheatheOnBack(ItemStack item) { - // TODO Auto-generated method stub - return false; -} -@Override -public void blockAnimation(EntityPlayer arg0, float arg1) { - // TODO Auto-generated method stub - -} -@Override -public boolean canBlock(ItemStack arg0, DamageSource arg1) { - // TODO Auto-generated method stub - return false; -} -@Override -public int getBashTimer(ItemStack arg0) { - // TODO Auto-generated method stub - return 0; -} -@Override -public float getBlockAngle(ItemStack arg0) { - // TODO Auto-generated method stub - return 0; -} -@Override -public float getDamageDecayRate(ItemStack arg0, float arg1) { - // TODO Auto-generated method stub - return 0; -} -@Override -public float getDamageReduction(ItemStack arg0, DamageSource arg1) { - // TODO Auto-generated method stub - return 0; -} -@Override -public float getDecayRate(ItemStack arg0) { - // TODO Auto-generated method stub - return 0; -} -@Override -public float getRecoveryRate(ItemStack arg0) { - // TODO Auto-generated method stub - return 0; -} -@Override -public Item getAccessoryItem() { - // TODO Auto-generated method stub - return null; -} -@Override -public String getDefaultFolder() { - // TODO Auto-generated method stub - return null; -} -@Override -public String getEffectSuffix() { - // TODO Auto-generated method stub - return null; -} -@Override -public Item getHeadItem() { - // TODO Auto-generated method stub - return null; -} -@Override -public String getIconSuffix(int arg0) { - // TODO Auto-generated method stub - return null; -} -} \ No newline at end of file diff --git a/src/main/java/gmail/Lance5057/items/tools/HeaterShield.java b/src/main/java/gmail/Lance5057/items/tools/HeaterShield.java new file mode 100644 index 0000000..9d6395e --- /dev/null +++ b/src/main/java/gmail/Lance5057/items/tools/HeaterShield.java @@ -0,0 +1,249 @@ +package gmail.Lance5057.items.tools; + +import java.util.List; + +import mods.battlegear2.api.ISheathed; +import mods.battlegear2.api.shield.IArrowCatcher; +import mods.battlegear2.api.shield.IArrowDisplay; +import mods.battlegear2.api.shield.IShield; +import net.minecraft.block.material.Material; +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.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import tconstruct.library.tools.AbilityHelper; +import tconstruct.library.tools.HarvestTool; +import tconstruct.tools.TinkerTools; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + + +public class HeaterShield extends Shield +{ + 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 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/items/tools/RoundShield.java b/src/main/java/gmail/Lance5057/items/tools/RoundShield.java new file mode 100644 index 0000000..17aec1c --- /dev/null +++ b/src/main/java/gmail/Lance5057/items/tools/RoundShield.java @@ -0,0 +1,244 @@ +package gmail.Lance5057.items.tools; + +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 Shield +{ + 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 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/items/tools/Shield.java b/src/main/java/gmail/Lance5057/items/tools/Shield.java new file mode 100644 index 0000000..479c28c --- /dev/null +++ b/src/main/java/gmail/Lance5057/items/tools/Shield.java @@ -0,0 +1,214 @@ +package gmail.Lance5057.items.tools; + +import tconstruct.library.tools.ToolCore; +import cpw.mods.fml.relauncher.*; +import mods.battlegear2.api.IEnchantable; +import mods.battlegear2.api.ISheathed; +import mods.battlegear2.api.shield.IArrowCatcher; +import mods.battlegear2.api.shield.IArrowDisplay; +import mods.battlegear2.api.shield.IShield; +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.IProjectile; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.*; +import net.minecraft.util.DamageSource; +import net.minecraft.world.World; + +public class Shield extends ToolCore implements IShield, ISheathed, IArrowCatcher, IArrowDisplay +{ +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; +} +@Override +public int getArrowCount(ItemStack arg0) { + // TODO Auto-generated method stub + return 0; +} +@Override +public void setArrowCount(ItemStack arg0, int arg1) { + // TODO Auto-generated method stub + +} +@Override +public boolean catchArrow(ItemStack arg0, EntityPlayer arg1, IProjectile arg2) { + // TODO Auto-generated method stub + return false; +} +@Override +public boolean sheatheOnBack(ItemStack item) { + // TODO Auto-generated method stub + return false; +} +@Override +public void blockAnimation(EntityPlayer arg0, float arg1) { + // TODO Auto-generated method stub + +} +@Override +public boolean canBlock(ItemStack arg0, DamageSource arg1) { + // TODO Auto-generated method stub + return false; +} +@Override +public int getBashTimer(ItemStack arg0) { + // TODO Auto-generated method stub + return 0; +} +@Override +public float getBlockAngle(ItemStack arg0) { + // TODO Auto-generated method stub + return 0; +} +@Override +public float getDamageDecayRate(ItemStack arg0, float arg1) { + // TODO Auto-generated method stub + return 0; +} +@Override +public float getDamageReduction(ItemStack arg0, DamageSource arg1) { + // TODO Auto-generated method stub + return 0; +} +@Override +public float getDecayRate(ItemStack arg0) { + // TODO Auto-generated method stub + return 0; +} +@Override +public float getRecoveryRate(ItemStack arg0) { + // TODO Auto-generated method stub + return 0; +} +@Override +public Item getAccessoryItem() { + // TODO Auto-generated method stub + return null; +} +@Override +public String getDefaultFolder() { + // TODO Auto-generated method stub + return null; +} +@Override +public String getEffectSuffix() { + // TODO Auto-generated method stub + return null; +} +@Override +public Item getHeadItem() { + // TODO Auto-generated method stub + return null; +} +@Override +public String getIconSuffix(int arg0) { + // TODO Auto-generated method stub + return null; +} +} \ No newline at end of file diff --git a/src/main/java/gmail/Lance5057/items/tools/TinkerWrench.java b/src/main/java/gmail/Lance5057/items/tools/TinkerWrench.java new file mode 100644 index 0000000..bf541a5 --- /dev/null +++ b/src/main/java/gmail/Lance5057/items/tools/TinkerWrench.java @@ -0,0 +1,118 @@ +package gmail.Lance5057.items.tools; + +import java.util.List; + +import buildcraft.api.tools.IToolWrench; +import mods.battlegear2.api.ISheathed; +import mods.battlegear2.api.shield.IArrowCatcher; +import mods.battlegear2.api.shield.IArrowDisplay; +import mods.battlegear2.api.shield.IShield; +import net.minecraft.block.material.Material; +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.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import tconstruct.library.tools.AbilityHelper; +import tconstruct.library.tools.HarvestTool; +import tconstruct.library.tools.Weapon; +import tconstruct.tools.TinkerTools; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + + +public class TinkerWrench extends Weapon implements IToolWrench +{ + int induceDamage = 0; + + public TinkerWrench() + { + super(0); + this.setUnlocalizedName("tinkerwrench"); + } + @Override + public Item getHeadItem () + { + return TinkerTools.handGuard; + } + @Override + public Item getHandleItem () + { + return TinkerTools.toolRod; + } + @Override + public Item getAccessoryItem () + { + return TinkerTools.binding; + } + @Override + public int durabilityTypeAccessory () + { + return 2; + } + @Override + public float getRepairCost () + { + return 1.0f; + } + @Override + public float getDurabilityModifier () + { + return 2.5f; + } + @Override + public float getDamageModifier () + { + return 0.4f; + } + @SideOnly(Side.CLIENT) + @Override + public int getPartAmount () + { + return 3; + } + @Override + public String getIconSuffix (int partType) + { + switch (partType) + { + case 0: + return "_wrench_head"; + case 1: + return "_wrench_head_broken"; + case 2: + return "_wrench_handle"; + case 3: + return "_wrench_binding"; + default: + return ""; + } + } + @Override + public String getEffectSuffix () + { + return "_wrench_effect"; + } + @Override + public String getDefaultFolder () + { + return "wrench"; + } + @Override + public boolean canWrench(EntityPlayer player, int x, int y, int z) + { + return true; + } + @Override + public void wrenchUsed(EntityPlayer player, int x, int y, int z) + { + player.swingItem(); + AbilityHelper.damageTool(player.getCurrentEquippedItem(), 1, player, false); + } +} \ No newline at end of file diff --git a/src/main/java/gmail/Lance5057/proxy/ClientProxy.java b/src/main/java/gmail/Lance5057/proxy/ClientProxy.java index 843ee1c..0c844dc 100644 --- a/src/main/java/gmail/Lance5057/proxy/ClientProxy.java +++ b/src/main/java/gmail/Lance5057/proxy/ClientProxy.java @@ -2,7 +2,7 @@ package gmail.Lance5057.proxy; import gmail.Lance5057.TinkersDefense; import gmail.Lance5057.items.ModelTinkerArmor; -import gmail.Lance5057.items.RoundShield; +import gmail.Lance5057.items.tools.RoundShield; import gmail.Lance5057.models.Renderer_ArmorAnvil; import gmail.Lance5057.models.Renderer_CrestMount; import gmail.Lance5057.models.Renderer_JewelersBench; @@ -25,6 +25,7 @@ public class ClientProxy extends CommonProxy FlexibleToolRenderer renderer = new FlexibleToolRenderer(); MinecraftForgeClient.registerItemRenderer(TinkersDefense.tool_roundShield, renderer); MinecraftForgeClient.registerItemRenderer(TinkersDefense.tool_heaterShield, renderer); + MinecraftForgeClient.registerItemRenderer(TinkersDefense.tool_wrench, renderer); ClientRegistry.bindTileEntitySpecialRenderer(TileEntity_CrestMount.class, new Renderer_CrestMount()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntity_ArmorAnvil.class, new Renderer_ArmorAnvil()); -- cgit v1.2.3