From 9d7d33fea35f84dfac8754467ab2fff25b449119 Mon Sep 17 00:00:00 2001 From: Bernhard Bonigl Date: Thu, 30 Oct 2014 13:14:43 +0100 Subject: [PATCH] Javelins now can be used properly as melee and ranged weapons --- .../items/javelin/_javelin_head_broken.png | Bin 0 -> 221 bytes .../tconstruct/weaponry/TinkerWeaponry.java | 2 + .../weaponry/WeaponryActiveToolMod.java | 35 ++++++++++++++++++ .../tconstruct/weaponry/weapons/Javelin.java | 9 ++++- 4 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 resources/assets/tinker/textures/items/javelin/_javelin_head_broken.png create mode 100644 src/main/java/tconstruct/weaponry/WeaponryActiveToolMod.java diff --git a/resources/assets/tinker/textures/items/javelin/_javelin_head_broken.png b/resources/assets/tinker/textures/items/javelin/_javelin_head_broken.png new file mode 100644 index 0000000000000000000000000000000000000000..116f7485b11e9dd495d113b085fc9c7ebac9a22a GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QK$!8;-MT+OLG}_)Usv{fTyoszy2qvefXt2cba4!^IQ{m# zq2K`n9+rc}7M-nu9gP!gn1zjmX182Q3v!L+(r=jkU#)X_$AU*p1?6{S8_GWfGbFs9 zyZ1XwP|!4{WS)j?*AAWW;=Wb9ZRXQClRGj(JhlGY_x<0&xY17jj?4U5NuWgxp00i_ I>zopr0Fi1-1poj5 literal 0 HcmV?d00001 diff --git a/src/main/java/tconstruct/weaponry/TinkerWeaponry.java b/src/main/java/tconstruct/weaponry/TinkerWeaponry.java index ebd34087..974d5c3e 100644 --- a/src/main/java/tconstruct/weaponry/TinkerWeaponry.java +++ b/src/main/java/tconstruct/weaponry/TinkerWeaponry.java @@ -106,6 +106,8 @@ public class TinkerWeaponry { ItemStack redstoneBlock = new ItemStack(Blocks.redstone_block); ModifyBuilder.registerModifier(new ModWindup(2, new ItemStack[] { redstoneItem, redstoneBlock }, new int[] { 1, 9 })); ModifyBuilder.registerModifier(new ModAmmoRestock()); + + TConstructRegistry.registerActiveToolMod(new WeaponryActiveToolMod()); } @Handler diff --git a/src/main/java/tconstruct/weaponry/WeaponryActiveToolMod.java b/src/main/java/tconstruct/weaponry/WeaponryActiveToolMod.java new file mode 100644 index 00000000..90d72532 --- /dev/null +++ b/src/main/java/tconstruct/weaponry/WeaponryActiveToolMod.java @@ -0,0 +1,35 @@ +package tconstruct.weaponry; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import tconstruct.library.ActiveToolMod; +import tconstruct.library.weaponry.IAmmo; + +public class WeaponryActiveToolMod extends ActiveToolMod { + @Override + public boolean damageTool(ItemStack stack, int damage, EntityLivingBase entity) { + if(stack.getItem() == TinkerWeaponry.javelin && stack.hasTagCompound()) { + NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool"); + IAmmo ammo =(IAmmo)stack.getItem(); + if(tags.getInteger("Damage") == 0) + { + int rem = ammo.consumeAmmo(1, stack); + if(rem > 0) + return true; + } + else if(ammo.getAmmoCount(stack) > 0) + { + int d = tags.getInteger("Damage") + damage; + int max = tags.getInteger("TotalDurability"); + if(d > max) + { + tags.setInteger("Damage", 0); + return true; + } + } + } + + return false; + } +} diff --git a/src/main/java/tconstruct/weaponry/weapons/Javelin.java b/src/main/java/tconstruct/weaponry/weapons/Javelin.java index 448e596f..92e8de56 100644 --- a/src/main/java/tconstruct/weaponry/weapons/Javelin.java +++ b/src/main/java/tconstruct/weaponry/weapons/Javelin.java @@ -123,7 +123,7 @@ public class Javelin extends AmmoWeapon { case 0: return "_javelin_head"; case 1: - return ""; // no broken, since it runs out of ammo + return "_javelin_head_broken"; // no broken, since it runs out of ammo case 2: return "_javelin_handle"; case 3: @@ -145,7 +145,12 @@ public class Javelin extends AmmoWeapon { @Override public float getAmmoModifier() { - return 0.02f; + return 0.2f; + } + + @Override + public float getDurabilityModifier() { + return 0.1f; } @Override