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射爆了",