From 561fe80f57f4eca08891f3ebd08a47a810e6cd95 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Thu, 8 Aug 2024 05:32:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9perk=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=96=B9=E6=B3=95=EF=BC=8C=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E6=B3=A8=E5=86=8CperkItem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/mcreator/superbwarfare/init/ModItems.java | 6 ++++-- .../net/mcreator/superbwarfare/item/PerkItem.java | 2 +- .../net/mcreator/superbwarfare/perk/PerkHelper.java | 12 ++++++++++-- .../mcreator/superbwarfare/tools/TooltipTool.java | 6 +++--- .../resources/assets/superbwarfare/lang/en_us.json | 4 +++- .../resources/assets/superbwarfare/lang/zh_cn.json | 4 +++- 6 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModItems.java b/src/main/java/net/mcreator/superbwarfare/init/ModItems.java index 865dad630..c0bf088b8 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModItems.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModItems.java @@ -191,14 +191,16 @@ public class ModItems { */ public static final DeferredRegister PERKS = DeferredRegister.create(ForgeRegistries.ITEMS, ModUtils.MODID); - public static final RegistryObject KILL_CLIP = PERKS.register("kill_clip", () -> new PerkItem(ModPerks.KILL_CLIP)); - + public static void registerPerkItems() { + ModPerks.PERKS.getEntries().forEach(registryObject -> PERKS.register(registryObject.getId().getPath(), () -> new PerkItem(registryObject))); + } public static void register(IEventBus bus) { ITEMS.register(bus); GUNS.register(bus); AMMO.register(bus); BLOCKS.register(bus); + registerPerkItems(); PERKS.register(bus); } } diff --git a/src/main/java/net/mcreator/superbwarfare/item/PerkItem.java b/src/main/java/net/mcreator/superbwarfare/item/PerkItem.java index 585dce876..3b791b243 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/PerkItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/PerkItem.java @@ -38,7 +38,7 @@ public class PerkItem extends Item { case DAMAGE -> ChatFormatting.RED; }; - tooltips.add(Component.translatable("perk.superbwarfare." + this.getPerk().descriptionId + ".desc").withStyle(ChatFormatting.GRAY)); + tooltips.add(Component.translatable("des.superbwarfare." + this.getPerk().descriptionId).withStyle(ChatFormatting.GRAY)); tooltips.add(Component.literal("")); tooltips.add(Component.translatable("perk.superbwarfare.slot").withStyle(ChatFormatting.GOLD) .append(Component.translatable("perk.superbwarfare.slot_" + this.getPerk().type.getName()).withStyle(chatFormatting))); diff --git a/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java b/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java index 2a191a2c0..75349835e 100644 --- a/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java +++ b/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java @@ -65,9 +65,17 @@ public class PerkHelper { } public static void setPerk(ItemStack stack, Perk perk, int level) { - CompoundTag perkTag = new CompoundTag(); - perkTag.put(perk.type.getName(), makePerk(getPerkId(perk), level)); + var tag = stack.getTag(); + if (tag == null) { + tag = new CompoundTag(); + } + var perkTag = tag.getCompound(TAG_PERK); + if (perkTag.isEmpty()) { + perkTag = new CompoundTag(); + } + + perkTag.put(perk.type.getName(), makePerk(getPerkId(perk), level)); stack.addTagElement(TAG_PERK, perkTag); } diff --git a/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java b/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java index 63a376333..b8ae5635c 100644 --- a/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java +++ b/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java @@ -101,7 +101,7 @@ public class TooltipTool { .append(Component.literal("").withStyle(ChatFormatting.RESET)) .append(Component.translatable("item.superbwarfare." + id).withStyle(ChatFormatting.WHITE)) .append(Component.literal(" Lvl. " + ammoTag.getInt("level")).withStyle(ChatFormatting.WHITE))); - addHideText(tooltip, Component.translatable("perk.superbwarfare." + id + ".desc").withStyle(ChatFormatting.GRAY)); + addHideText(tooltip, Component.translatable("des.superbwarfare." + id).withStyle(ChatFormatting.GRAY)); } if (!functionalTag.isEmpty()) { @@ -111,7 +111,7 @@ public class TooltipTool { .append(Component.literal("").withStyle(ChatFormatting.RESET)) .append(Component.translatable("item.superbwarfare." + id).withStyle(ChatFormatting.WHITE)) .append(Component.literal(" Lvl. " + functionalTag.getInt("level")).withStyle(ChatFormatting.WHITE))); - addHideText(tooltip, Component.translatable("perk.superbwarfare." + id + ".desc").withStyle(ChatFormatting.GRAY)); + addHideText(tooltip, Component.translatable("des.superbwarfare." + id).withStyle(ChatFormatting.GRAY)); } if (!damageTag.isEmpty()) { @@ -121,7 +121,7 @@ public class TooltipTool { .append(Component.literal("").withStyle(ChatFormatting.RESET)) .append(Component.translatable("item.superbwarfare." + id).withStyle(ChatFormatting.WHITE)) .append(Component.literal(" Lvl. " + damageTag.getInt("level")).withStyle(ChatFormatting.WHITE))); - addHideText(tooltip, Component.translatable("perk.superbwarfare." + id + ".desc").withStyle(ChatFormatting.GRAY)); + addHideText(tooltip, Component.translatable("des.superbwarfare." + id).withStyle(ChatFormatting.GRAY)); } } diff --git a/src/main/resources/assets/superbwarfare/lang/en_us.json b/src/main/resources/assets/superbwarfare/lang/en_us.json index 834bd503c..095c70903 100644 --- a/src/main/resources/assets/superbwarfare/lang/en_us.json +++ b/src/main/resources/assets/superbwarfare/lang/en_us.json @@ -176,13 +176,15 @@ "item.superbwarfare.scheelite": "Raw Galena", "item.superbwarfare.kill_clip": "Kill Clip", + "des.superbwarfare.kill_clip": "Increases the damage of weapon after dealing a final blow", + "item.superbwarfare.heal_clip": "Heal Clip", + "des.superbwarfare.heal_clip": "Reloading after dealing a final blow will heal you and your nearby allies", "perk.superbwarfare.tips": "[Perks]", "perk.superbwarfare.slot": "Type: ", "perk.superbwarfare.slot_Ammo": "子弹模组", "perk.superbwarfare.slot_Functional": "功能模组", "perk.superbwarfare.slot_Damage": "伤害模组", - "perk.superbwarfare.kill_clip.desc": "Increases the damage of weapon after dealing a final blow", "death.attack.gunfire": "%1$s was shoot by %2$s", "death.attack.gunfire.entity": "%1$s was shoot by %2$s", diff --git a/src/main/resources/assets/superbwarfare/lang/zh_cn.json b/src/main/resources/assets/superbwarfare/lang/zh_cn.json index 9c494b756..cfe180f93 100644 --- a/src/main/resources/assets/superbwarfare/lang/zh_cn.json +++ b/src/main/resources/assets/superbwarfare/lang/zh_cn.json @@ -176,13 +176,15 @@ "item.superbwarfare.scheelite": "白钨矿", "item.superbwarfare.kill_clip": "杀戮弹匣", + "des.superbwarfare.kill_clip": "完成击杀后填装可提升武器伤害", + "item.superbwarfare.heal_clip": "治疗弹匣", + "des.superbwarfare.heal_clip": "最后一击后短时间内填装,可治疗自身和附近队友", "perk.superbwarfare.tips": "[武器模组]", "perk.superbwarfare.slot": "类型: ", "perk.superbwarfare.slot_Ammo": "子弹模组", "perk.superbwarfare.slot_Functional": "功能模组", "perk.superbwarfare.slot_Damage": "伤害模组", - "perk.superbwarfare.kill_clip.desc": "完成击杀后填装可提升武器伤害", "death.attack.gunfire": "%1$s被%2$s射爆了", "death.attack.gunfire.entity": "%1$s被%2$s射爆了",