From 0855c61943049243fbabd63cd0b7fbed1c8b53cb Mon Sep 17 00:00:00 2001 From: Nicholas Ignoffo Date: Fri, 13 May 2016 17:05:40 -0700 Subject: [PATCH] Fix bound tool attributes (#741) --- .../java/WayofTime/bloodmagic/item/ItemBoundAxe.java | 4 ++-- .../WayofTime/bloodmagic/item/ItemBoundPickaxe.java | 4 ++-- .../java/WayofTime/bloodmagic/item/ItemBoundTool.java | 11 ++++++++++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundAxe.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundAxe.java index 0b410cfe..6e1889e9 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundAxe.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundAxe.java @@ -118,12 +118,12 @@ public class ItemBoundAxe extends ItemBoundTool implements IMeshProvider } @Override - public Multimap getItemAttributeModifiers(EntityEquipmentSlot equipmentSlot) + public Multimap getAttributeModifiers(EntityEquipmentSlot equipmentSlot, ItemStack stack) { Multimap multimap = super.getItemAttributeModifiers(equipmentSlot); if (equipmentSlot == EntityEquipmentSlot.MAINHAND) { - multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getAttributeUnlocalizedName(), new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", 7, 0)); + multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getAttributeUnlocalizedName(), new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", getActivated(stack) ? 7 : 2, 0)); multimap.put(SharedMonsterAttributes.ATTACK_SPEED.getAttributeUnlocalizedName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Tool modifier", -2.5, 0)); } return multimap; diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundPickaxe.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundPickaxe.java index 016fd0c4..08e0a070 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundPickaxe.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundPickaxe.java @@ -135,12 +135,12 @@ public class ItemBoundPickaxe extends ItemBoundTool implements IMeshProvider } @Override - public Multimap getItemAttributeModifiers(EntityEquipmentSlot equipmentSlot) + public Multimap getAttributeModifiers(EntityEquipmentSlot equipmentSlot, ItemStack stack) { Multimap multimap = super.getItemAttributeModifiers(equipmentSlot); if (equipmentSlot == EntityEquipmentSlot.MAINHAND) { - multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getAttributeUnlocalizedName(), new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", 5, 0)); + multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getAttributeUnlocalizedName(), new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", getActivated(stack) ? 5 : 2, 0)); multimap.put(SharedMonsterAttributes.ATTACK_SPEED.getAttributeUnlocalizedName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Tool modifier", -2.5, 0)); } return multimap; diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundTool.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundTool.java index 678cc373..f908aff0 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundTool.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundTool.java @@ -8,13 +8,17 @@ import java.util.Set; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.util.helper.PlayerHelper; import com.google.common.base.Strings; +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.Multimap; import lombok.Getter; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemTool; @@ -68,7 +72,7 @@ public class ItemBoundTool extends ItemTool implements IBindable, IActivatable @Override public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { - return oldStack.getItem() != newStack.getItem(); + return slotChanged; } @Override @@ -202,6 +206,11 @@ public class ItemBoundTool extends ItemTool implements IBindable, IActivatable return ImmutableSet.of(name); } + public Multimap getItemAttributeModifiers(EntityEquipmentSlot equipmentSlot) + { + return ArrayListMultimap.create(); // No-op + } + @Override public boolean showDurabilityBar(ItemStack stack) {