From aa5d81dbe80e783eb4bff3813cd24a777aedfaaa Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Mon, 26 Aug 2019 20:00:59 +0100 Subject: [PATCH] Fix the nano saber might needs its numbers tweaked. Closes #1816 --- .../items/tool/industrial/ItemNanosaber.java | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/src/main/java/techreborn/items/tool/industrial/ItemNanosaber.java b/src/main/java/techreborn/items/tool/industrial/ItemNanosaber.java index 232fdd236..694788e0e 100644 --- a/src/main/java/techreborn/items/tool/industrial/ItemNanosaber.java +++ b/src/main/java/techreborn/items/tool/industrial/ItemNanosaber.java @@ -24,9 +24,14 @@ package techreborn.items.tool.industrial; +import com.google.common.collect.Multimap; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.item.TooltipContext; +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.entity.attribute.EntityAttributeModifier; +import net.minecraft.entity.attribute.EntityAttributes; +import reborncore.api.items.ItemStackModifiers; import reborncore.common.util.StringUtils; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; @@ -53,7 +58,7 @@ import techreborn.utils.MessageIDs; import javax.annotation.Nullable; import java.util.List; -public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDurabilityExtensions { +public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDurabilityExtensions, ItemStackModifiers { public static final int maxCharge = TechRebornConfig.nanoSaberCharge; public int transferLimit = 1_000; public int cost = 250; @@ -94,23 +99,16 @@ public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDur return false; } - //TODO needs a stack aware version added in - // Item -// @Override -// public Multimap getAttributeModifiers(EquipmentSlot slot) { -// Multimap multimap = HashMultimap.create(); -// int modifier = 0; -// if (ItemUtils.isActive(stack)) { -// modifier = 9; -// } -// if (slot == EquipmentSlot.MAINHAND) { -// multimap.put(EntityAttributes.ATTACK_DAMAGE.getId(), -// new EntityAttributeModifier(MODIFIER_DAMAGE, "Weapon modifier", (double) modifier, 0)); -// multimap.put(EntityAttributes.ATTACK_SPEED.getId(), -// new EntityAttributeModifier(MODIFIER_SWING_SPEED, "Weapon modifier", -2.4000000953674316D, 0)); -// } -// return multimap; -// } + @Override + public void getAttributeModifiers(EquipmentSlot slot, ItemStack stack, Multimap attributes) { + attributes.removeAll(EntityAttributes.ATTACK_DAMAGE.getId()); + attributes.removeAll(EntityAttributes.ATTACK_SPEED.getId()); + + if (slot== EquipmentSlot.MAINHAND && ItemUtils.isActive(stack)) { + attributes.put(EntityAttributes.ATTACK_DAMAGE.getId(), new EntityAttributeModifier(ATTACK_DAMAGE_MODIFIER_UUID, "Weapon modifier", 12, EntityAttributeModifier.Operation.ADDITION)); + attributes.put(EntityAttributes.ATTACK_SPEED.getId(), new EntityAttributeModifier(ATTACK_SPEED_MODIFIER_UUID, "Weapon modifier", 3, EntityAttributeModifier.Operation.ADDITION)); + } + } @Override public TypedActionResult use(final World world, final PlayerEntity player, final Hand hand) {