diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/ProjectileEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/ProjectileEntity.java index 14b095e5f..bdd8c7442 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/ProjectileEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/ProjectileEntity.java @@ -482,6 +482,10 @@ public class ProjectileEntity extends Projectile implements IEntityWithComplexSp entity = part.getParent(); } + if (entity instanceof LivingEntity living) { + living.level().playSound(null, living.getOnPos(), ModSounds.MELEE_HIT.get(), SoundSource.PLAYERS, 1, (float) ((2 * org.joml.Math.random() - 1) * 0.1f + 1.0f)); + } + if (beast && entity instanceof LivingEntity living) { Beast.beastKill(this.shooter, living); return; diff --git a/src/main/java/com/atsuishio/superbwarfare/init/ModItems.java b/src/main/java/com/atsuishio/superbwarfare/init/ModItems.java index 22267a389..f5d077b60 100644 --- a/src/main/java/com/atsuishio/superbwarfare/init/ModItems.java +++ b/src/main/java/com/atsuishio/superbwarfare/init/ModItems.java @@ -147,10 +147,7 @@ public class ModItems { .durability(1200) )); public static final DeferredHolder HAMMER = ITEMS.register("hammer", Hammer::new); - public static final DeferredHolder T_BATON = ITEMS.register("t_baton", () -> new SwordItem(ModItemTier.STEEL, new Item.Properties() - .attributes(SwordItem.createAttributes(ModItemTier.STEEL, 3, -2)) - .durability(1115) - )); + public static final DeferredHolder T_BATON = ITEMS.register("t_baton", TBaton::new); public static final DeferredHolder ELECTRIC_BATON = ITEMS.register("electric_baton", ElectricBaton::new); public static final DeferredHolder CROWBAR = ITEMS.register("crowbar", Crowbar::new); public static final DeferredHolder DEFUSER = ITEMS.register("defuser", Defuser::new); diff --git a/src/main/java/com/atsuishio/superbwarfare/item/Hammer.java b/src/main/java/com/atsuishio/superbwarfare/item/Hammer.java index e236a7c00..9f1e9f9e8 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/Hammer.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/Hammer.java @@ -1,6 +1,9 @@ package com.atsuishio.superbwarfare.item; import com.atsuishio.superbwarfare.init.ModItems; +import com.atsuishio.superbwarfare.init.ModSounds; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.SwordItem; @@ -10,6 +13,8 @@ import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.event.entity.player.PlayerEvent; import org.jetbrains.annotations.NotNull; +import javax.annotation.ParametersAreNonnullByDefault; + @EventBusSubscriber(bus = EventBusSubscriber.Bus.GAME) public class Hammer extends SwordItem { @@ -40,6 +45,13 @@ public class Hammer extends SwordItem { return true; } + @Override + @ParametersAreNonnullByDefault + public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) { + attacker.level().playSound(null, target.getOnPos(), ModSounds.MELEE_HIT.get(), SoundSource.PLAYERS, 1, (float) ((2 * org.joml.Math.random() - 1) * 0.1f + 1.0f)); + return super.hurtEnemy(stack, target, attacker); + } + @SubscribeEvent public static void onItemCrafted(PlayerEvent.ItemCraftedEvent event) { var item = event.getCrafting(); diff --git a/src/main/java/com/atsuishio/superbwarfare/item/TBaton.java b/src/main/java/com/atsuishio/superbwarfare/item/TBaton.java new file mode 100644 index 000000000..1c4359a17 --- /dev/null +++ b/src/main/java/com/atsuishio/superbwarfare/item/TBaton.java @@ -0,0 +1,27 @@ +package com.atsuishio.superbwarfare.item; + +import com.atsuishio.superbwarfare.init.ModSounds; +import com.atsuishio.superbwarfare.tiers.ModItemTier; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.SwordItem; + +import javax.annotation.ParametersAreNonnullByDefault; + +public class TBaton extends SwordItem { + public TBaton() { + super(ModItemTier.STEEL, new Properties() + .durability(1115) + .attributes(SwordItem.createAttributes(ModItemTier.STEEL, 3, -2)) + ); + } + + @Override + @ParametersAreNonnullByDefault + public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) { + attacker.level().playSound(null, target.getOnPos(), ModSounds.MELEE_HIT.get(), SoundSource.PLAYERS, 1, (float) ((2 * org.joml.Math.random() - 1) * 0.1f + 1)); + return super.hurtEnemy(stack, target, attacker); + } + +}