diff --git a/src/main/java/com/skdevstudios/util_rings/init/ItemsInit.java b/src/main/java/com/skdevstudios/util_rings/init/ItemsInit.java index 470182c..248c3f2 100644 --- a/src/main/java/com/skdevstudios/util_rings/init/ItemsInit.java +++ b/src/main/java/com/skdevstudios/util_rings/init/ItemsInit.java @@ -3,6 +3,7 @@ package com.skdevstudios.util_rings.init; import com.skdevstudios.util_rings.UtilRings; import com.skdevstudios.util_rings.items.GrowthRing; import com.skdevstudios.util_rings.items.IronRing; +import com.skdevstudios.util_rings.items.JewelersHammer; import com.skdevstudios.util_rings.items.MagnetRing; import com.skdevstudios.util_rings.items.VolcanicGlassRing; @@ -21,7 +22,7 @@ public class ItemsInit { public static final RegistryObject IRON_RING_TOP = ITEMS.register("iron_ring_top", () -> new Item(new Item.Properties().stacksTo(1))); public static final RegistryObject IRON_RING_BOTTOM = ITEMS.register("iron_ring_bottom", () -> new Item(new Item.Properties().stacksTo(1))); public static final RegistryObject IRON_RING_RIGHT = ITEMS.register("iron_ring_right", () -> new Item(new Item.Properties().stacksTo(1))); - public static final RegistryObject JEWELERS_HAMMER = ITEMS.register("jewelers_hammer", () -> new Item(new Item.Properties().stacksTo(1))); + public static final RegistryObject JEWELERS_HAMMER = ITEMS.register("jewelers_hammer", () -> new JewelersHammer()); public static final RegistryObject RAW_LEAD = ITEMS.register("raw_lead", () -> new Item(new Item.Properties().stacksTo(64))); public static final RegistryObject LEAD_DUST = ITEMS.register("lead_dust", () -> new Item(new Item.Properties().stacksTo(64))); public static final RegistryObject LEAD_NUGGET = ITEMS.register("lead_nugget", () -> new Item(new Item.Properties().stacksTo(64))); diff --git a/src/main/java/com/skdevstudios/util_rings/items/JewelersHammer.java b/src/main/java/com/skdevstudios/util_rings/items/JewelersHammer.java new file mode 100644 index 0000000..ceb1675 --- /dev/null +++ b/src/main/java/com/skdevstudios/util_rings/items/JewelersHammer.java @@ -0,0 +1,50 @@ +package com.skdevstudios.util_rings.items; + +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.core.BlockPos; + +public class JewelersHammer extends Item { + + public JewelersHammer() { + super(new Item.Properties().stacksTo(1).defaultDurability(5)); + } + + @Override + public void onCraftedBy(ItemStack pStack, Level pLevel, Player pPlayer) { + super.onCraftedBy(pStack, pLevel, pPlayer); + + } + + @Override + public InteractionResult useOn(UseOnContext context) { + Level world = context.getLevel(); + BlockPos pos = context.getClickedPos().relative(context.getClickedFace()); + BlockState targetState = world.getBlockState(pos); + + if (targetState.isAir() && !world.isClientSide()) { + world.playSound( + null, + pos, + SoundEvents.ANVIL_HIT, + SoundSource.PLAYERS, + 1.0F, + 1.0F + ); + + // Decrease the item's durability by 1 + ItemStack itemStack = context.getItemInHand(); + itemStack.hurtAndBreak(1, context.getPlayer(), playerEntity -> playerEntity.broadcastBreakEvent(context.getHand())); + + return InteractionResult.SUCCESS; + } + return InteractionResult.FAIL; + } +}