From b2af030470469aade5f4dc57878ca30d5ee77bd6 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Tue, 7 May 2024 14:27:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=80=9A=E7=94=A8=E6=9E=AA?= =?UTF-8?q?=E6=A2=B0=E6=8F=8F=E8=BF=B0=E5=B7=A5=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mcreator/target/item/gun/Trachelium.java | 3 ++ .../target/procedures/GunsTipsProcedure.java | 27 ---------- .../procedures/WeaponLevelProcedure.java | 2 +- .../mcreator/target/tools/ItemNBTTool.java | 16 ++++-- .../mcreator/target/tools/TooltipTool.java | 50 +++++++++++++++++++ .../resources/assets/target/lang/en_us.json | 3 ++ .../resources/assets/target/lang/zh_cn.json | 3 ++ 7 files changed, 72 insertions(+), 32 deletions(-) create mode 100644 src/main/java/net/mcreator/target/tools/TooltipTool.java diff --git a/src/main/java/net/mcreator/target/item/gun/Trachelium.java b/src/main/java/net/mcreator/target/item/gun/Trachelium.java index 7a2c8fe87..f420eeba7 100644 --- a/src/main/java/net/mcreator/target/item/gun/Trachelium.java +++ b/src/main/java/net/mcreator/target/item/gun/Trachelium.java @@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod; import net.mcreator.target.client.renderer.item.TracheliumItemRenderer; import net.mcreator.target.procedures.ReloadingProcedure; import net.mcreator.target.tools.RarityTool; +import net.mcreator.target.tools.TooltipTool; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; @@ -154,5 +155,7 @@ public class Trachelium extends GunItem implements GeoItem { public void appendHoverText(ItemStack stack, @Nullable Level level, List list, TooltipFlag flag) { list.add(Component.translatable("des.target.trachelium_1").withStyle(ChatFormatting.GRAY).withStyle(ChatFormatting.ITALIC)); list.add(Component.translatable("des.target.trachelium_2").withStyle(ChatFormatting.GRAY)); + + TooltipTool.addGunTips(list, stack); } } diff --git a/src/main/java/net/mcreator/target/procedures/GunsTipsProcedure.java b/src/main/java/net/mcreator/target/procedures/GunsTipsProcedure.java index b1cf76310..427531675 100644 --- a/src/main/java/net/mcreator/target/procedures/GunsTipsProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/GunsTipsProcedure.java @@ -30,33 +30,6 @@ public class GunsTipsProcedure { private static void execute(@Nullable Event event, ItemStack itemstack, List tooltip) { if (tooltip == null) return; - String firemode = ""; - ItemStack usehand = ItemStack.EMPTY; - if (itemstack.is(ItemTags.create(new ResourceLocation("target:gun")))) { - if (itemstack.getItem() == TargetModItems.BOCEK.get()) { - tooltip.add(Component.literal(("\u00A7l\u00A77Damage:(" + new java.text.DecimalFormat("##.##").format(2.4 * itemstack.getOrCreateTag().getDouble("damageadd")) + ")*10/" - + new java.text.DecimalFormat("##.##").format(24 * itemstack.getOrCreateTag().getDouble("damageadd"))))); - } else { - tooltip.add(Component.literal(("\u00A7l\u00A77Damage:" - + new java.text.DecimalFormat("##.##").format((itemstack.getOrCreateTag().getDouble("damage") + itemstack.getOrCreateTag().getDouble("adddamage")) * itemstack.getOrCreateTag().getDouble("damageadd"))))); - } - if (itemstack.getOrCreateTag().getDouble("level") < 4) { - tooltip.add(Component.literal(("\u00A7f\u00A7lLevel:" + new java.text.DecimalFormat("##").format(itemstack.getOrCreateTag().getDouble("level")) + " " - + new java.text.DecimalFormat("##.##").format(100 * (itemstack.getOrCreateTag().getDouble("damagenow") / itemstack.getOrCreateTag().getDouble("damageneed"))) + "%"))); - } else if (4 <= itemstack.getOrCreateTag().getDouble("level") && itemstack.getOrCreateTag().getDouble("level") < 6) { - tooltip.add(Component.literal(("\u00A7b\u00A7lLevel:" + new java.text.DecimalFormat("##").format(itemstack.getOrCreateTag().getDouble("level")) + " " - + new java.text.DecimalFormat("##.##").format(100 * (itemstack.getOrCreateTag().getDouble("damagenow") / itemstack.getOrCreateTag().getDouble("damageneed"))) + "%"))); - } else if (6 <= itemstack.getOrCreateTag().getDouble("level") && itemstack.getOrCreateTag().getDouble("level") < 8) { - tooltip.add(Component.literal(("\u00A7d\u00A7lLevel:" + new java.text.DecimalFormat("##").format(itemstack.getOrCreateTag().getDouble("level")) + " " - + new java.text.DecimalFormat("##.##").format(100 * (itemstack.getOrCreateTag().getDouble("damagenow") / itemstack.getOrCreateTag().getDouble("damageneed"))) + "%"))); - } else if (8 <= itemstack.getOrCreateTag().getDouble("level") && itemstack.getOrCreateTag().getDouble("level") < 10) { - tooltip.add(Component.literal(("\u00A76\u00A7lLevel:" + new java.text.DecimalFormat("##").format(itemstack.getOrCreateTag().getDouble("level")) + " " - + new java.text.DecimalFormat("##.##").format(100 * (itemstack.getOrCreateTag().getDouble("damagenow") / itemstack.getOrCreateTag().getDouble("damageneed"))) + "%"))); - } else if (10 <= itemstack.getOrCreateTag().getDouble("level")) { - tooltip.add(Component.literal(("\u00A7c\u00A7lLevel:" + new java.text.DecimalFormat("##").format(itemstack.getOrCreateTag().getDouble("level")) + " " - + new java.text.DecimalFormat("##.##").format(100 * (itemstack.getOrCreateTag().getDouble("damagenow") / itemstack.getOrCreateTag().getDouble("damageneed"))) + "%"))); - } - } if (itemstack.getItem() == TargetModItems.CREATIVE_AMMO_BOX.get()) { tooltip.add(Component.literal("Creative Ammo * 2147483647")); } diff --git a/src/main/java/net/mcreator/target/procedures/WeaponLevelProcedure.java b/src/main/java/net/mcreator/target/procedures/WeaponLevelProcedure.java index ee8aef7d3..708666ac4 100644 --- a/src/main/java/net/mcreator/target/procedures/WeaponLevelProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/WeaponLevelProcedure.java @@ -28,7 +28,7 @@ public class WeaponLevelProcedure { private static void execute(@Nullable Event event, Entity entity) { if (entity == null) return; - ItemStack stack = ItemStack.EMPTY; + ItemStack stack; stack = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY); if (stack.is(ItemTags.create(new ResourceLocation("target:gun")))) { if (stack.getOrCreateTag().getDouble("level") == 0) { diff --git a/src/main/java/net/mcreator/target/tools/ItemNBTTool.java b/src/main/java/net/mcreator/target/tools/ItemNBTTool.java index 55f0992fe..9bc8809a3 100644 --- a/src/main/java/net/mcreator/target/tools/ItemNBTTool.java +++ b/src/main/java/net/mcreator/target/tools/ItemNBTTool.java @@ -4,14 +4,14 @@ import net.minecraft.world.item.ItemStack; //from Botania public final class ItemNBTTool { - public static void setBoolean(ItemStack stack, String tag, boolean b) { - stack.getOrCreateTag().putBoolean(tag, b); - } - public static boolean verifyExistence(ItemStack stack, String tag) { return !stack.isEmpty() && stack.getOrCreateTag().contains(tag); } + public static void setBoolean(ItemStack stack, String tag, boolean b) { + stack.getOrCreateTag().putBoolean(tag, b); + } + public static boolean getBoolean(ItemStack stack, String tag, boolean defaultExpected) { return verifyExistence(stack, tag) ? stack.getOrCreateTag().getBoolean(tag) : defaultExpected; } @@ -39,4 +39,12 @@ public final class ItemNBTTool { public static long getLong(ItemStack stack, String tag, long num) { return verifyExistence(stack, tag) ? stack.getOrCreateTag().getLong(tag) : num; } + + public static void setDouble(ItemStack stack, String tag, double num) { + stack.getOrCreateTag().putDouble(tag, num); + } + + public static double getDouble(ItemStack stack, String tag, double num) { + return verifyExistence(stack, tag) ? stack.getOrCreateTag().getDouble(tag) : num; + } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/target/tools/TooltipTool.java b/src/main/java/net/mcreator/target/tools/TooltipTool.java new file mode 100644 index 000000000..6784e9450 --- /dev/null +++ b/src/main/java/net/mcreator/target/tools/TooltipTool.java @@ -0,0 +1,50 @@ +package net.mcreator.target.tools; + +import net.minecraft.ChatFormatting; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; + +import java.text.DecimalFormat; +import java.util.List; + +public class TooltipTool { + + public static void addHideText(List tooltip, Component text) { + if (Screen.hasShiftDown()) { + tooltip.add(text); + } + } + + public static void addGunTips(List tooltip, ItemStack stack) { + tooltip.add(Component.literal("")); + + double damage = (ItemNBTTool.getDouble(stack, "damage", 0) + + ItemNBTTool.getDouble(stack, "adddamage", 0)) + * ItemNBTTool.getDouble(stack, "damageadd", 1); + + tooltip.add(Component.translatable("des.target.tips.damage").withStyle(ChatFormatting.WHITE) + .append(Component.literal("").withStyle(ChatFormatting.RESET)) + .append(Component.literal(new DecimalFormat("##.#").format(damage)).withStyle(ChatFormatting.GREEN))); + + int level = (int) ItemNBTTool.getDouble(stack, "level", 0); + double rate = ItemNBTTool.getDouble(stack, "damagenow", 0) / ItemNBTTool.getDouble(stack, "damageneed", 1); + + ChatFormatting formatting; + if (level < 4) { + formatting = ChatFormatting.GRAY; + } else if (level < 6) { + formatting = ChatFormatting.AQUA; + } else if (level < 8) { + formatting = ChatFormatting.LIGHT_PURPLE; + } else if (level < 10) { + formatting = ChatFormatting.GOLD; + } else { + formatting = ChatFormatting.RED; + } + + tooltip.add(Component.translatable("des.target.tips.level").withStyle(ChatFormatting.WHITE) + .append(Component.literal("").withStyle(ChatFormatting.RESET)) + .append(Component.literal(level + " " + new DecimalFormat("##.##").format(rate) + "%")).withStyle(formatting).withStyle(ChatFormatting.BOLD)); + } +} diff --git a/src/main/resources/assets/target/lang/en_us.json b/src/main/resources/assets/target/lang/en_us.json index f9bd4e8e3..3fef3465e 100644 --- a/src/main/resources/assets/target/lang/en_us.json +++ b/src/main/resources/assets/target/lang/en_us.json @@ -30,6 +30,9 @@ "item.target.svd": "SVD", "item.target.kraber": "KRABER", + "des.target.tips.damage": "Damage: ", + "des.target.tips.level": "Level: ", + "item.target.vector_blueprint": "VECTOR Blueprint", "item.target.m_60_blueprint": "M60 Blueprint", "item.target.hk_416_blueprint": "Hk-416 Blueprint", diff --git a/src/main/resources/assets/target/lang/zh_cn.json b/src/main/resources/assets/target/lang/zh_cn.json index 2425ca4c4..5ceb220a9 100644 --- a/src/main/resources/assets/target/lang/zh_cn.json +++ b/src/main/resources/assets/target/lang/zh_cn.json @@ -30,6 +30,9 @@ "item.target.svd": "SVD狙击步枪", "item.target.kraber": "克莱贝尔狙击步枪", + "des.target.tips.damage": "伤害: ", + "des.target.tips.level": "等级: ", + "item.target.vector_blueprint": "短剑冲锋枪蓝图", "item.target.m_60_blueprint": "M60通用机枪蓝图", "item.target.hk_416_blueprint": "Hk-416突击步枪蓝图",