diff --git a/common/src/main/java/vice/sol_valheim/ModConfig.java b/common/src/main/java/vice/sol_valheim/ModConfig.java index c54bd9a..9eb2c94 100644 --- a/common/src/main/java/vice/sol_valheim/ModConfig.java +++ b/common/src/main/java/vice/sol_valheim/ModConfig.java @@ -109,7 +109,7 @@ public static final class Common implements ConfigData { public float speedBoost = 0.20f; @ConfigEntry.Gui.Tooltip() @Comment("Number of hearts to start with") - public int startingHealth = 3; + public int startingHealth = 5; @ConfigEntry.Gui.Tooltip() @Comment("Number of food slots (range 2-5, default 3)") public int maxSlots = 3; diff --git a/common/src/main/java/vice/sol_valheim/SOLValheim.java b/common/src/main/java/vice/sol_valheim/SOLValheim.java index 0684ac9..d839482 100644 --- a/common/src/main/java/vice/sol_valheim/SOLValheim.java +++ b/common/src/main/java/vice/sol_valheim/SOLValheim.java @@ -2,6 +2,7 @@ import dev.architectury.registry.registries.DeferredRegister; import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.MutableComponent; #if PRE_CURRENT_MC_1_19_2 import dev.architectury.registry.registries.Registries; @@ -89,7 +90,7 @@ public static void addTooltip(ItemStack item, TooltipFlag flag, List { var food = item.getItem(); if (food == Items.ROTTEN_FLESH) { - list.add(Component.literal("☠ Empties Your Stomach!").withStyle(ChatFormatting.GREEN)); + list.add(Component.translatable("tooltip.sol_valheim.empty_stomach").withStyle(ChatFormatting.GREEN)); return; } @@ -98,24 +99,29 @@ public static void addTooltip(ItemStack item, TooltipFlag flag, List return; var hearts = config.getHearts() % 2 == 0 ? config.getHearts() / 2 : String.format("%.1f", (float) config.getHearts() / 2f); - list.add(Component.literal("❤ " + hearts + " Heart" + (config.getHearts() / 2f > 1 ? "s" : "")).withStyle(ChatFormatting.RED)); - list.add(Component.literal("☀ " + String.format("%.1f", config.getHealthRegen()) + " Regen").withStyle(ChatFormatting.DARK_RED)); + String heartKey = config.getHearts() / 2f <= 1 ? "tooltip.sol_valheim.hearts" : "tooltip.sol_valheim.hearts_plural"; + list.add(Component.translatable(heartKey, hearts).withStyle(ChatFormatting.RED)); + + list.add(Component.translatable("tooltip.sol_valheim.regen", String.format("%.1f", config.getHealthRegen())) + .withStyle(ChatFormatting.DARK_RED)); var minutes = (float) config.getTime() / (20 * 60); - - list.add(Component.literal("⌚ " + String.format("%.0f", minutes) + " Minute" + (minutes > 1 ? "s" : "")).withStyle(ChatFormatting.GOLD)); + String durationKey = minutes <= 1 ? "tooltip.sol_valheim.duration" : "tooltip.sol_valheim.duration_plural"; + list.add(Component.translatable(durationKey, String.format("%.0f", minutes)) + .withStyle(ChatFormatting.GOLD)); for (var effect : config.extraEffects) { var eff = effect.getEffect(); if (eff == null) continue; - list.add(Component.literal("★ " + eff.getDisplayName().getString() + (effect.amplifier > 1 ? " " + effect.amplifier : "")).withStyle(ChatFormatting.GREEN)); + MutableComponent effectText = Component.translatable("tooltip.sol_valheim.effect", + eff.getDisplayName().getString() + (effect.amplifier > 1 ? " " + effect.amplifier : "")); + list.add(effectText.withStyle(ChatFormatting.GREEN)); } if (item.getUseAnimation() == UseAnim.DRINK) { - list.add(Component.literal("❄ Refreshing!").withStyle(ChatFormatting.AQUA)); - + list.add(Component.translatable("tooltip.sol_valheim.refreshing").withStyle(ChatFormatting.AQUA)); } } } diff --git a/common/src/main/java/vice/sol_valheim/mixin/PlayerEntityMixin.java b/common/src/main/java/vice/sol_valheim/mixin/PlayerEntityMixin.java index 201bf12..29b27c0 100644 --- a/common/src/main/java/vice/sol_valheim/mixin/PlayerEntityMixin.java +++ b/common/src/main/java/vice/sol_valheim/mixin/PlayerEntityMixin.java @@ -98,7 +98,9 @@ private void onTick(CallbackInfo info) { sol_valheim$trackData(); } - float maxhp = Math.min(40, (SOLValheim.Config.common.startingHealth * 2) + sol_valheim$food_data.getTotalFoodNutrition()); + // 在这里修改最大血量,按照游戏里的设定,最大的食物是10心,20点,能容纳三个就是60点,还有饮料最大3心6点,加上原版的3心6点,就是66点,我们限制在60点 + //默认是SOLValheim.Config.common.startingHealth 我先硬编码到5心 + float maxhp = Math.min(80, (5 * 2) + sol_valheim$food_data.getTotalFoodNutrition()); Player player = (Player) (LivingEntity) this; player.getFoodData().setSaturation(0); diff --git a/common/src/main/resources/assets/sol_valheim/lang/en_us.json b/common/src/main/resources/assets/sol_valheim/lang/en_us.json new file mode 100644 index 0000000..386ec97 --- /dev/null +++ b/common/src/main/resources/assets/sol_valheim/lang/en_us.json @@ -0,0 +1,10 @@ +{ + "tooltip.sol_valheim.refreshing": "❄ Refreshing!", + "tooltip.sol_valheim.empty_stomach": "☠ Empties Your Stomach!", + "tooltip.sol_valheim.hearts": "❤ %s Heart", + "tooltip.sol_valheim.hearts_plural": "❤ %s Hearts", + "tooltip.sol_valheim.regen": "☀ %s Regen", + "tooltip.sol_valheim.duration": "⌚ %s Minute", + "tooltip.sol_valheim.duration_plural": "⌚ %s Minutes", + "tooltip.sol_valheim.effect": "★ %s" +} \ No newline at end of file diff --git a/common/src/main/resources/assets/sol_valheim/lang/zh_cn.json b/common/src/main/resources/assets/sol_valheim/lang/zh_cn.json new file mode 100644 index 0000000..c189454 --- /dev/null +++ b/common/src/main/resources/assets/sol_valheim/lang/zh_cn.json @@ -0,0 +1,10 @@ +{ + "tooltip.sol_valheim.refreshing": "❄ 清爽提神!", + "tooltip.sol_valheim.empty_stomach": "☠ 喷射一把!", + "tooltip.sol_valheim.hearts": "❤ %s 颗心", + "tooltip.sol_valheim.hearts_plural": "❤ %s 颗心", + "tooltip.sol_valheim.regen": "☀ %s 生命恢复", + "tooltip.sol_valheim.duration": "⌚ %s 分钟", + "tooltip.sol_valheim.duration_plural": "⌚ %s 分钟", + "tooltip.sol_valheim.effect": "★ %s" +} \ No newline at end of file