From b549ef8df23b8105040504bd50d8687505da083c Mon Sep 17 00:00:00 2001 From: Jenny Date: Wed, 2 Apr 2025 13:10:39 +0200 Subject: [PATCH] implement wand durability & repair amulet --- .../com/jenny/magic/items/AmuletRepair.java | 25 ++++++++++++++++++ .../java/com/jenny/magic/items/BaseWand.java | 5 ++-- .../java/com/jenny/magic/items/items.java | 3 ++- .../magic/textures/item/amulet_repair.png | Bin 0 -> 243 bytes .../magic/textures/item/dragon_heart.png | Bin 0 -> 97 bytes .../magic/textures/item/scroll_bonemeal.png | Bin 0 -> 154 bytes .../magic/textures/item/scroll_health.png | Bin 0 -> 167 bytes .../magic/textures/item/scroll_repel.png | Bin 0 -> 158 bytes .../item/scroll_teleport_biome_plains.png | Bin 0 -> 97 bytes .../magic/textures/item/wand_hurtful.png | Bin 97 -> 205 bytes .../magic/textures/item/wand_vacuum.png | Bin 0 -> 216 bytes 11 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/jenny/magic/items/AmuletRepair.java create mode 100644 src/main/resources/assets/magic/textures/item/amulet_repair.png create mode 100644 src/main/resources/assets/magic/textures/item/dragon_heart.png create mode 100644 src/main/resources/assets/magic/textures/item/scroll_bonemeal.png create mode 100644 src/main/resources/assets/magic/textures/item/scroll_health.png create mode 100644 src/main/resources/assets/magic/textures/item/scroll_repel.png create mode 100644 src/main/resources/assets/magic/textures/item/scroll_teleport_biome_plains.png create mode 100644 src/main/resources/assets/magic/textures/item/wand_vacuum.png diff --git a/src/main/java/com/jenny/magic/items/AmuletRepair.java b/src/main/java/com/jenny/magic/items/AmuletRepair.java new file mode 100644 index 0000000..0128d62 --- /dev/null +++ b/src/main/java/com/jenny/magic/items/AmuletRepair.java @@ -0,0 +1,25 @@ +package com.jenny.magic.items; + +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import org.jetbrains.annotations.NotNull; + +public class AmuletRepair extends BaseItem { + public AmuletRepair(@NotNull Properties pProperties) { + super(pProperties.stacksTo(1)); + } + + @Override + public void inventoryTick(@NotNull ItemStack pStack, @NotNull Level pLevel, @NotNull Entity pEntity, int pSlotId, boolean pIsSelected) { + if (!pLevel.isClientSide && pLevel.getRandom().nextInt(10) == 0 && pEntity instanceof Player pPlayer) { + int rand = pLevel.getRandom().nextInt(0, 9); + ItemStack itemStack = pPlayer.getInventory().items.get(rand); + System.out.println(itemStack.getItem().toString()); + if (itemStack.isDamaged()) { + itemStack.setDamageValue(itemStack.getDamageValue() - 1); + } + } + } +} diff --git a/src/main/java/com/jenny/magic/items/BaseWand.java b/src/main/java/com/jenny/magic/items/BaseWand.java index 5086fae..1ebbf1a 100644 --- a/src/main/java/com/jenny/magic/items/BaseWand.java +++ b/src/main/java/com/jenny/magic/items/BaseWand.java @@ -22,7 +22,9 @@ public abstract class BaseWand extends QualityItem { BaseWandProjectile projectile = newProjectile(pLevel); projectile.shootFromRotation(pPlayer, pPlayer.getXRot(), pPlayer.getYRot(), 0.0F, 2.0F); pLevel.addFreshEntity(projectile); - setDamage(itemstack, getDamage(itemstack) + damageItem(itemstack, 1, pPlayer, (player) -> onItemDestroyed(player))); + itemstack.hurtAndBreak(1, pPlayer, (player) -> { + player.broadcastBreakEvent(pPlayer.getUsedItemHand()); + }); return InteractionResultHolder.success(itemstack); } @@ -34,7 +36,6 @@ public abstract class BaseWand extends QualityItem { while (pRepairCandidate.getCount() >= 1 && pStack.isDamaged()) { pRepairCandidate.shrink(1); pStack.setDamageValue(pStack.getDamageValue() - 20); - System.out.println("test"); } return true; } else { diff --git a/src/main/java/com/jenny/magic/items/items.java b/src/main/java/com/jenny/magic/items/items.java index 198a98a..94fb701 100644 --- a/src/main/java/com/jenny/magic/items/items.java +++ b/src/main/java/com/jenny/magic/items/items.java @@ -13,7 +13,7 @@ import static com.jenny.magic.Magic.MODID; public class items { public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID); public static final RegistryObject WAND_HURTFUL = ITEMS.register("wand_hurtful", () -> new WandHurtful(new Item.Properties())); - public static final RegistryObject WAND_VAUUM = ITEMS.register("wand_vacuum", () -> new WandVacuum(new Item.Properties())); + public static final RegistryObject WAND_VAUUM = ITEMS.register("wand_vacuum", () -> new WandVacuum(new Item.Properties().stacksTo(1))); public static final RegistryObject SCROLL_TELEPORT = ITEMS.register("scroll_teleport", () -> new TeleportScrollPersistent(new Item.Properties().stacksTo(1))); public static final RegistryObject SCROLL_TELEPORT_BRITTLE = ITEMS.register("scroll_teleport_brittle", () -> new TeleportScrollConsumable(new Item.Properties().stacksTo(16))); public static final RegistryObject SCROLL_TELEPORT_RANDOM = ITEMS.register("scroll_teleport_random", () -> new TeleportScrollRandom(new Item.Properties().stacksTo(1))); @@ -21,6 +21,7 @@ public class items { public static final RegistryObject SCROLL_HEALTH = ITEMS.register("scroll_health", () -> new HealthScroll(new Item.Properties().stacksTo(16))); public static final RegistryObject SCROLL_REPEL = ITEMS.register("scroll_repel", () -> new RepelScroll(new Item.Properties().stacksTo(16))); public static final RegistryObject SCROLL_BONEMEAL = ITEMS.register("scroll_bonemeal", () -> new BonemealScroll(new Item.Properties().stacksTo(16))); + public static final RegistryObject AMULET_REPAIR = ITEMS.register("amulet_repair", () -> new AmuletRepair(new Item.Properties())); public static final RegistryObject DRAGON_HEART = ITEMS.register("dragon_heart", () -> new QualityItem(new Item.Properties())); public static void register(IEventBus bus) { diff --git a/src/main/resources/assets/magic/textures/item/amulet_repair.png b/src/main/resources/assets/magic/textures/item/amulet_repair.png new file mode 100644 index 0000000000000000000000000000000000000000..1b847d5289c758f5b815848c3e65e3dc294e151b GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|)_S@)hFJ6_ zCoE7kFxvDZKPBbk{G7AT#fs)wZJ+R1t z^iMphe>ZW0@63#Zs&{udd2B6m+gce7^$xC@+1;JZCN6%Rr>X71C7#L0(>a8F1b5Bf zU;BGnV{fmoZk%*Sp<!6dMxa7bAmrfhz38rxt#r-AB zA2OZTzHlBXe{X-`9IM4)hMQsO`+fF!)+I19{1Fp=+tTVh7id0%r>mdKI;Vst00Rd! A#Q*>R literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/magic/textures/item/scroll_health.png b/src/main/resources/assets/magic/textures/item/scroll_health.png new file mode 100644 index 0000000000000000000000000000000000000000..5fd0203c981e6c8b214a6ea77c7ef1bfd8cabdb6 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|5!6dMxa5FBk$qg{oQ)si)p+ID z#HU$5>S3Luw`0Sdi4z`6NJzX8?RbB$e!*Psf;PrYYtPlqteE`g026~&sOYPovy3hP PEo1O>^>bP0l+XkKEs#8o literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/magic/textures/item/scroll_repel.png b/src/main/resources/assets/magic/textures/item/scroll_repel.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbc243a42e72a44a12f112a6e6b997f2c20a673 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|B0OCjLo9le z6C^SYbohVz^YH2a#2n|_9&55@YLqhiF;B=!6dMxa7e+U%pBnJ;{VSd=Gb`o&#!E^Njx7+ zg#VuZ`Az@u{Qo>W6Z_+hCM6j*FQ571|GAQ{|D}rV{J;2=W7d;QwO{dZO_LuUXx+|Z zE?2vB-dUDdhvM0VyBhM$g2RoOnVFm0WXylg(qv??IO!^ySM_B(&`AuQu6{1-oD!M< DInGp% literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`1|*BN@u~nR#^NA%Cx&(BWL^R}(w;7kAsjQ4 tQzrcR|G(Z$nc3O?@c;ij|AYTAGq{}MD2__6(*Y`D@O1TaS?83{1OOa38mj;R diff --git a/src/main/resources/assets/magic/textures/item/wand_vacuum.png b/src/main/resources/assets/magic/textures/item/wand_vacuum.png new file mode 100644 index 0000000000000000000000000000000000000000..07d24a6fed6618474c82c2617546d5b7a49a0bf0 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|CV9FzhFJ6_ zCrC_kh+u-(;%&`hWiYa-RBs_fji9-szku(k*Fo*5!Zsveo~uPk8*VU(fx5iofy2|DS~B z@UZLcN!{`Bh4$ARwHHjYZueYfE!jMC*DR1(CQo*pyzaxvz%c8%N9{buw@E