From 2f4658013ce38b3641ddd4ece9ccda15b4112bde Mon Sep 17 00:00:00 2001 From: RingLo_ <63995099+lonelyicer@users.noreply.github.com> Date: Wed, 25 Mar 2026 05:58:29 +0800 Subject: [PATCH] refactor: lang provider --- .../resources/assets/mia/lang/en_us.json | 21 +- .../item/artifact_modifiers_material.json | 10 +- .../mia/datagen/MiaBiomeTagsProvider.java | 4 +- .../altnoir/mia/datagen/MiaLangProvider.java | 202 ++++-------------- .../altnoir/mia/init/MiaPaintingVariants.java | 6 + .../com/altnoir/mia/util/FilesHelper.java | 30 +++ .../altnoir/mia/worldgen/biome/MiaBiomes.java | 44 ++-- .../assets/mia/lang/default/interface.json | 75 +++++++ .../assets/mia/lang/default/ponder.json | 3 + .../assets/mia/lang/default/tooltip.json | 26 +++ 10 files changed, 228 insertions(+), 193 deletions(-) create mode 100644 src/main/java/com/altnoir/mia/util/FilesHelper.java create mode 100644 src/main/resources/assets/mia/lang/default/interface.json create mode 100644 src/main/resources/assets/mia/lang/default/ponder.json create mode 100644 src/main/resources/assets/mia/lang/default/tooltip.json diff --git a/src/generated/resources/assets/mia/lang/en_us.json b/src/generated/resources/assets/mia/lang/en_us.json index eeb86fb0..1faa5d82 100644 --- a/src/generated/resources/assets/mia/lang/en_us.json +++ b/src/generated/resources/assets/mia/lang/en_us.json @@ -1,13 +1,20 @@ { - "attribute.name.generic.critical_hit": "Critical Hit", - "attribute.name.generic.critical_hit_damage": "Critical Hit Damage", + "attribute.name.generic.critical_hit": "Critical Hit Chance", + "attribute.name.generic.critical_hit_damage": "Critical Hit Damage", + "biome.mia.great_fault/great_fault": "Great Fault", + "biome.mia.great_fault/the_great_fault": "The Great Fault", "biome.mia.the_abyss/abyss_dripstone_caves": "Abyss Dripstone Caves", "biome.mia.the_abyss/abyss_lush_caves": "Abyss Lush Caves", "biome.mia.the_abyss/abyss_plains": "Abyss Plains", + "biome.mia.the_abyss/dense_skyfog_forest": "Dense Skyfog Forest", + "biome.mia.the_abyss/fossilized_forest": "Fossilized Forest", + "biome.mia.the_abyss/inverted_forest": "Inverted Forest", "biome.mia.the_abyss/prasiolite_caves": "Prasiolite Caves", + "biome.mia.the_abyss/rich_fossilized_forest": "Rich Fossilized Forest", "biome.mia.the_abyss/skyfog_forest": "Skyfog Forest", "biome.mia.the_abyss/temptation_forest": "Temptation Forest", "biome.mia.the_abyss/the_abyss": "The Abyss", + "biome.mia.the_abyss/under_fossilized_forest": "Under Fossilized Forest", "block.mia.abyss_andesite": "Abyss Andesite", "block.mia.abyss_andesite_bricks": "Abyss Andesite Bricks", "block.mia.abyss_andesite_bricks_slab": "Abyss Andesite Bricks Slab", @@ -169,7 +176,7 @@ "block.mia.verdant_trapdoor": "Verdant Trapdoor", "container.mia.artifact.smithing.title": "Artifact Smithing Table", "curios.identifier.whistle": "Whistle", - "curios.modifiers.whistle": "Red Whistle Attributes", + "curios.modifiers.whistle": "Whistle Attributes", "emi.category.mia.lamp_tube": "Laser Catalysis", "gui.mia.disconnect": "Quit?", "item.mia.artifact_haste": "Artifact Haste", @@ -210,7 +217,7 @@ "key.mia.skill_dial": "Skill Dial", "mia.configuration.abyss_radius": "Abyss Radius Value", "mia.configuration.abyss_radius.tooltip": "Setting The Abyss Radius", - "mia.configuration.auto_hook": "auto hook", + "mia.configuration.auto_hook": "Auto Hook", "mia.configuration.auto_hook.tooltip": "Whether to enable auto hook", "mia.configuration.cave_explorer_beacon": "Cave Explorer Beacon", "mia.configuration.cave_explorer_beacon.tooltip": "Cave Explorer Beacon Configuration", @@ -265,8 +272,8 @@ "skill.mia.combo_skills": "Combo Skills", "skill.mia.cooldown": "Cooldown...", "skill.mia.cooldown_time": "Cooldown T-", - "skill.mia.minute": ":", - "skill.mia.second": " ", + "skill.mia.minute": "m", + "skill.mia.second": "s", "skill.mia.unskill": "Unskill", "stat.mia.interact_with_artifact_smithing_table": "Interactions with Artifact Smithing Table", "subtitle.mia.abyss_portal_ambient": "Abyss Portal: Ambient", @@ -287,8 +294,8 @@ "tooltip.mia.artifact_bundle.capacity": "Artifact Capacity: %s", "tooltip.mia.attribute_modifier": "%s %s", "tooltip.mia.description.abyss_compass": "It will point the way toward the abyss.", + "tooltip.mia.description.red_whistle": "Red Whistles are novice cave raiders allowed only in the Abyss’s first layer.", "tooltip.mia.hold_shift": "Hold [%s] to show details", - "tooltip.mia.item.red_whistle": "Red Whistles are novice cave raiders allowed only in the Abyss’s first layer.", "tooltip.mia.modifiers.artifact_material": "When Applying Artifact: ", "tooltip.mia.skill.cooldown_value": "Cooldown: %s", "tooltip.mia.whistle.capacity": "Capacity: %s", diff --git a/src/generated/resources/data/mia/tags/item/artifact_modifiers_material.json b/src/generated/resources/data/mia/tags/item/artifact_modifiers_material.json index 3abe5937..97f3713e 100644 --- a/src/generated/resources/data/mia/tags/item/artifact_modifiers_material.json +++ b/src/generated/resources/data/mia/tags/item/artifact_modifiers_material.json @@ -1,12 +1,12 @@ { "values": [ + "minecraft:lapis_lazuli", + "mia:prasiolite_shard", + "minecraft:copper_ingot", + "minecraft:emerald", "minecraft:iron_ingot", "minecraft:diamond", - "mia:prasiolite_shard", "minecraft:gold_ingot", - "minecraft:lapis_lazuli", - "minecraft:netherite_ingot", - "minecraft:emerald", - "minecraft:copper_ingot" + "minecraft:netherite_ingot" ] } \ No newline at end of file diff --git a/src/main/java/com/altnoir/mia/datagen/MiaBiomeTagsProvider.java b/src/main/java/com/altnoir/mia/datagen/MiaBiomeTagsProvider.java index fb063552..db870d36 100644 --- a/src/main/java/com/altnoir/mia/datagen/MiaBiomeTagsProvider.java +++ b/src/main/java/com/altnoir/mia/datagen/MiaBiomeTagsProvider.java @@ -9,6 +9,7 @@ import net.minecraft.tags.BiomeTags; import net.minecraft.world.level.biome.Biomes; import net.neoforged.neoforge.common.data.ExistingFileHelper; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.concurrent.CompletableFuture; @@ -18,8 +19,9 @@ public MiaBiomeTagsProvider(PackOutput output, CompletableFuture { + add("biome.mia." + biome.location().getPath(), formatName(biome)); + }); + + MiaPaintingVariants.PAINTING_VARIANTS.forEach(paintingVariant -> { + add("painting.mia." + paintingVariant.location().getPath() + ".title", formatName(paintingVariant.location().getPath())); + add("painting.mia." + paintingVariant.location().getPath() + ".author", "Memento In Abyss"); + }); MiaItems.ITEMS.getEntries().stream() .map(DeferredHolder::get) .filter(item -> !(item instanceof BlockItem)) - .forEach(item -> { - add(item, formatName(BuiltInRegistries.ITEM.getKey(item).getPath())); - }); + .forEach(item -> add(item, formatName(BuiltInRegistries.ITEM.getKey(item).getPath()))); MiaBlocks.BLOCKS.getEntries().stream() .map(DeferredHolder::get) - .forEach(block -> { - add(block, formatName(BuiltInRegistries.BLOCK.getKey(block).getPath())); - }); + .forEach(block -> add(block, formatName(BuiltInRegistries.BLOCK.getKey(block).getPath()))); MiaPotions.POTIONS.getEntries().forEach(holder -> { String name = holder.getId().getPath(); @@ -118,73 +54,6 @@ protected void addTranslations() { String name = holder.getId().getPath(); add("stat.mia.interact_with_" + name, "Interactions with " + formatName(name)); }); - // Painting Variant - addPainting(MiaPaintingVariants.ABYSS_MAP); - addPainting(MiaPaintingVariants.THE_ABYSS); - addPainting(MiaPaintingVariants.THE_ABYSS_2); - addPainting(MiaPaintingVariants.FOSSIL_TREE); - addPainting(MiaPaintingVariants.FORTITUDE_FLOWER); - - // Sounds start - add(MiaSoundsProvider.ABYSS_PORTAL_AMBIENT, "Abyss Portal: Ambient"); - add(MiaSoundsProvider.ABYSS_PORTAL_TRAVEL, "Abyss Portal: Travel"); - // Sounds end - - //Config start - add("mia.configuration.title", "Memento In Abyss Configuration"); - - // 通用配置 - add("mia.configuration.abyss_radius", "Abyss Radius Value"); - add("mia.configuration.abyss_radius.tooltip", "Setting The Abyss Radius"); - - // 服务端配置 - add("mia.configuration.curse", "Enable Curse"); - add("mia.configuration.curse.tooltip", "Whether to enable the Curse"); - add("mia.configuration.curse_god", "Curse the Creative and Spectator"); - add("mia.configuration.curse_god.tooltip", "Whether to Curse the Creative and Spectator"); - - add("mia.configuration.cave_explorer_beacon", "Cave Explorer Beacon"); - add("mia.configuration.cave_explorer_beacon.tooltip", "Cave Explorer Beacon Configuration"); - add("mia.configuration.cave_explorer_beacon_horizontal", "Horizontal Range"); - add("mia.configuration.cave_explorer_beacon_horizontal.tooltip", "Setting The Cave Explorer Beacon Horizontal Range"); - add("mia.configuration.cave_explorer_beacon_vertical", "Vertical Range"); - add("mia.configuration.cave_explorer_beacon_vertical.tooltip", "Setting The Cave Explorer Beacon Vertical Range"); - add("mia.configuration.cave_explorer_beacon_max_vertical", "Max Vertical Range"); - add("mia.configuration.cave_explorer_beacon_max_vertical.tooltip", "Setting The Cave Explorer Beacon Max Vertical"); - - // 客户端配置 - add("mia.configuration.curse_icon_position", "Curse Icon Position"); - add("mia.configuration.curse_icon_position.tooltip", "Switch Curse Icon Position"); - add("mia.configuration.curse_icon_position.middle", "Middle"); - add("mia.configuration.curse_icon_position.right", "Right"); - add("mia.configuration.curse_icon_position.hidden", "Hidden"); - add("mia.configuration.disconnect_button_state", "Disconnect Button State"); - add("mia.configuration.disconnect_button_state.tooltip", "Adjust the Disconnect Button"); - add("mia.configuration.disconnect_button_state.default", "Default"); - add("mia.configuration.disconnect_button_state.disabled", "Disabled"); - add("mia.configuration.disconnect_button_state.hidden", "Hidden"); - - add("mia.configuration.hook", "Hook"); - add("mia.configuration.hook.tooltip", "Hook Configuration"); - - add("mia.configuration.hook_max_distance", "Max Hook Distance"); - add("mia.configuration.hook_max_distance.tooltip", "Maximum hook distance in blocks"); - add("mia.configuration.hook_stop_distance", "Hook Pull Stop Distance"); - add("mia.configuration.hook_stop_distance.tooltip", "Distance at which the hook stops pulling the player"); - add("mia.configuration.hook_shoot_velocity", "Hook Shoot Velocity"); - add("mia.configuration.hook_shoot_velocity.tooltip", "Hook shoot velocity"); - add("mia.configuration.hook_pull_velocity", "Hook Pull Velocity"); - add("mia.configuration.hook_pull_velocity.tooltip", "Base pull velocity"); - add("mia.configuration.hook_retract_velocity", "Hook Retract Velocity"); - add("mia.configuration.hook_retract_velocity.tooltip", "Hook retract velocity"); - add("mia.configuration.hook_retract_distance", "Hook Retract Distance"); - add("mia.configuration.hook_retract_distance.tooltip", "Distance at which the hook automatically retracts"); - add("mia.configuration.hook_jump_boost", "Jump Boost Multiplier"); - add("mia.configuration.hook_jump_boost.tooltip", "Jump boost multiplier when using hook"); - - add("mia.configuration.auto_hook", "auto hook"); - add("mia.configuration.auto_hook.tooltip", "Whether to enable auto hook"); - //Config end // Tags start add("tag.item.curios.whistle", "Whistle"); @@ -192,23 +61,6 @@ protected void addTranslations() { add("tag.item.mia.stripped_fossilized_logs", "Stripped Fossilized Logs"); add("tag.item.mia.skyfog_logs", "Skyfog Logs"); // Tags end - - add("pack.mia.music_pack.name", "Memento In Abyss: Music Pack"); - - //Compat start - add("curios.identifier.whistle", "Whistle"); - add("curios.modifiers.whistle", "Red Whistle Attributes"); - add("emi.category.mia.lamp_tube", "Laser Catalysis"); - //Compat end - } - - private void addPainting(ResourceKey key) { - add("painting.mia." + key.location().getPath() + ".title", formatName(key.location().getPath())); - add("painting.mia." + key.location().getPath() + ".author", "Memento In Abyss"); - } - - private void addBiome(ResourceKey biome, String name) { - add("biome.mia." + biome.location().getPath(), name); } private void addPotions(String key) { @@ -221,6 +73,30 @@ private void addPotions(String key) { add(key3, "Lingering Potion of " + formatName(key)); } + private void addDefault(String fileName) { + var path = "assets/mia/lang/default/" + fileName + ".json"; + var jsonElement = FilesHelper.loadJsonResource(path); + if (jsonElement == null) { + throw new IllegalStateException(String.format("Could not find default lang file: %s", path)); + } + var jsonObject = jsonElement.getAsJsonObject(); + for (var entry : jsonObject.entrySet()) { + var key = entry.getKey(); + var value = entry.getValue().getAsString(); + add(key, value); + } + } + + private String formatName(ResourceKey key) { + var path = key.location().getPath(); + + int index = path.lastIndexOf('/'); + if (index != -1) { + path = path.substring(index + 1); + } + return formatName(path); + } + private String formatName(String name) { return Arrays.stream(name.split("_")) .filter(word -> !word.isEmpty()) diff --git a/src/main/java/com/altnoir/mia/init/MiaPaintingVariants.java b/src/main/java/com/altnoir/mia/init/MiaPaintingVariants.java index a51c2010..6909fa7d 100644 --- a/src/main/java/com/altnoir/mia/init/MiaPaintingVariants.java +++ b/src/main/java/com/altnoir/mia/init/MiaPaintingVariants.java @@ -6,7 +6,12 @@ import net.minecraft.resources.ResourceKey; import net.minecraft.world.entity.decoration.PaintingVariant; +import java.util.ArrayList; +import java.util.List; + public class MiaPaintingVariants { + public static final List> PAINTING_VARIANTS = new ArrayList<>(); + public static final ResourceKey ABYSS_MAP = create("abyss_map"); public static final ResourceKey THE_ABYSS = create("the_abyss"); public static final ResourceKey THE_ABYSS_2 = create("the_abyss2"); @@ -22,6 +27,7 @@ public static void bootstrap(BootstrapContext context) { } private static void register(BootstrapContext context, ResourceKey key, int width, int height) { + PAINTING_VARIANTS.add(key); context.register(key, new PaintingVariant(width, height, key.location())); } diff --git a/src/main/java/com/altnoir/mia/util/FilesHelper.java b/src/main/java/com/altnoir/mia/util/FilesHelper.java new file mode 100644 index 00000000..d74bde97 --- /dev/null +++ b/src/main/java/com/altnoir/mia/util/FilesHelper.java @@ -0,0 +1,30 @@ +package com.altnoir.mia.util; + +import com.google.gson.JsonElement; +import com.google.gson.internal.Streams; +import com.google.gson.stream.JsonReader; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; + +public class FilesHelper { + private static JsonElement loadJson(InputStream inputStream) { + try { + JsonReader reader = new JsonReader(new BufferedReader(new InputStreamReader(inputStream))); + reader.setLenient(true); + JsonElement element = Streams.parse(reader); + reader.close(); + inputStream.close(); + return element; + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + public static JsonElement loadJsonResource(String filepath) { + return loadJson(ClassLoader.getSystemResourceAsStream(filepath)); + } +} diff --git a/src/main/java/com/altnoir/mia/worldgen/biome/MiaBiomes.java b/src/main/java/com/altnoir/mia/worldgen/biome/MiaBiomes.java index 038b695e..9474ef40 100644 --- a/src/main/java/com/altnoir/mia/worldgen/biome/MiaBiomes.java +++ b/src/main/java/com/altnoir/mia/worldgen/biome/MiaBiomes.java @@ -8,7 +8,12 @@ import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.biome.Biome; +import java.util.ArrayList; +import java.util.List; + public class MiaBiomes { + public static final List> BIOMES = new ArrayList<>(); + // Layer 1 public static final ResourceKey THE_ABYSS = abyssEdgeKey("the_abyss"); public static final ResourceKey SKYFOG_FOREST = abyssEdgeKey("skyfog_forest"); @@ -29,33 +34,38 @@ public class MiaBiomes { public static void boostrap(BootstrapContext context) { // Layer 1 - context.register(THE_ABYSS, TheAbyssBiomes.theAbyss(context)); - context.register(SKYFOG_FOREST, TheAbyssBiomes.skyfogForest(context)); - context.register(DENSE_SKYFOG_FOREST, TheAbyssBiomes.denseSkyfogForest(context)); - context.register(FOSSILIZED_FOREST, TheAbyssBiomes.fossilizedForest(context)); - context.register(RICH_FOSSILIZED_FOREST, TheAbyssBiomes.richFossilizedForest(context)); - context.register(UNDER_FOSSILIZED_FOREST, TheAbyssBiomes.UnderfossilizedForest(context)); - context.register(ABYSS_PLAINS, TheAbyssBiomes.abyssPlains(context)); - context.register(PRASIOLITE_CAVES, TheAbyssBiomes.prasioliteCaves(context)); - context.register(ABYSS_LUSH_CAVES, TheAbyssBiomes.abyssLushCaves(context)); - context.register(ABYSS_DRIPSTONE_CAVES, TheAbyssBiomes.abyssDripstoneCaves(context)); + register(THE_ABYSS, TheAbyssBiomes.theAbyss(context), context); + register(SKYFOG_FOREST, TheAbyssBiomes.skyfogForest(context), context); + register(DENSE_SKYFOG_FOREST, TheAbyssBiomes.denseSkyfogForest(context), context); + register(FOSSILIZED_FOREST, TheAbyssBiomes.fossilizedForest(context), context); + register(RICH_FOSSILIZED_FOREST, TheAbyssBiomes.richFossilizedForest(context), context); + register(UNDER_FOSSILIZED_FOREST, TheAbyssBiomes.UnderfossilizedForest(context), context); + register(ABYSS_PLAINS, TheAbyssBiomes.abyssPlains(context), context); + register(PRASIOLITE_CAVES, TheAbyssBiomes.prasioliteCaves(context), context); + register(ABYSS_LUSH_CAVES, TheAbyssBiomes.abyssLushCaves(context), context); + register(ABYSS_DRIPSTONE_CAVES, TheAbyssBiomes.abyssDripstoneCaves(context), context); // Layer 2 - context.register(TEMPTATION_FOREST, TheAbyssBiomes.temptationForest(context)); - context.register(INVERTED_FOREST, TheAbyssBiomes.invertedForest(context)); + register(TEMPTATION_FOREST, TheAbyssBiomes.temptationForest(context), context); + register(INVERTED_FOREST, TheAbyssBiomes.invertedForest(context), context); // Layer 3 - context.register(THE_GREAT_FAULT, GreatFaultBiomes.theGreatFault(context)); - context.register(GREAT_FAULT, GreatFaultBiomes.greatFault(context)); + register(THE_GREAT_FAULT, GreatFaultBiomes.theGreatFault(context), context); + register(GREAT_FAULT, GreatFaultBiomes.greatFault(context), context); + } + + private static void register(ResourceKey key, Biome biome, BootstrapContext context) { + BIOMES.add(key); + context.register(key, biome); } - private static ResourceKey register(String path) { + private static ResourceKey getResourceKey(String path) { return ResourceKey.create(Registries.BIOME, MiaUtil.miaId(path)); } private static ResourceKey abyssEdgeKey(String path) { - return register("the_abyss/" + path); + return getResourceKey("the_abyss/" + path); } private static ResourceKey greatFaultKey(String path) { - return register("great_fault/" + path); + return getResourceKey("great_fault/" + path); } } diff --git a/src/main/resources/assets/mia/lang/default/interface.json b/src/main/resources/assets/mia/lang/default/interface.json new file mode 100644 index 00000000..ff9ca6ee --- /dev/null +++ b/src/main/resources/assets/mia/lang/default/interface.json @@ -0,0 +1,75 @@ +{ + "pack.mia.music_pack.name": "Memento In Abyss: Music Pack", + + "itemgroup.mia": "Memento In Abyss", + "itemgroup.mia_artifact": "Memento In Abyss: Artifact", + + "gui.mia.disconnect": "Quit?", + + "subtitle.mia.abyss_portal_ambient": "Abyss Portal: Ambient", + "subtitle.mia.abyss_portal_travel": "Abyss Portal: Travel", + + "mia.configuration.title": "Memento In Abyss Configuration", + "mia.configuration.abyss_radius": "Abyss Radius Value", + "mia.configuration.abyss_radius.tooltip": "Setting The Abyss Radius", + "mia.configuration.curse": "Enable Curse", + "mia.configuration.curse.tooltip": "Whether to enable the Curse", + "mia.configuration.curse_god": "Curse the Creative and Spectator", + "mia.configuration.curse_god.tooltip": "Whether to Curse the Creative and Spectator", + "mia.configuration.cave_explorer_beacon": "Cave Explorer Beacon", + "mia.configuration.cave_explorer_beacon.tooltip": "Cave Explorer Beacon Configuration", + "mia.configuration.cave_explorer_beacon_horizontal": "Horizontal Range", + "mia.configuration.cave_explorer_beacon_horizontal.tooltip": "Setting The Cave Explorer Beacon Horizontal Range", + "mia.configuration.cave_explorer_beacon_vertical": "Vertical Range", + "mia.configuration.cave_explorer_beacon_vertical.tooltip": "Setting The Cave Explorer Beacon Vertical Range", + "mia.configuration.cave_explorer_beacon_max_vertical": "Max Vertical Range", + "mia.configuration.cave_explorer_beacon_max_vertical.tooltip": "Setting The Cave Explorer Beacon Max Vertical", + "mia.configuration.curse_icon_position": "Curse Icon Position", + "mia.configuration.curse_icon_position.tooltip": "Switch Curse Icon Position", + "mia.configuration.curse_icon_position.middle": "Middle", + "mia.configuration.curse_icon_position.right": "Right", + "mia.configuration.curse_icon_position.hidden": "Hidden", + "mia.configuration.disconnect_button_state": "Disconnect Button State", + "mia.configuration.disconnect_button_state.tooltip": "Adjust the Disconnect Button", + "mia.configuration.disconnect_button_state.default": "Default", + "mia.configuration.disconnect_button_state.disabled": "Disabled", + "mia.configuration.disconnect_button_state.hidden": "Hidden", + "mia.configuration.hook": "Hook", + "mia.configuration.hook.tooltip": "Hook Configuration", + "mia.configuration.hook_max_distance": "Max Hook Distance", + "mia.configuration.hook_max_distance.tooltip": "Maximum hook distance in blocks", + "mia.configuration.hook_stop_distance": "Hook Pull Stop Distance", + "mia.configuration.hook_stop_distance.tooltip": "Distance at which the hook stops pulling the player", + "mia.configuration.hook_shoot_velocity": "Hook Shoot Velocity", + "mia.configuration.hook_shoot_velocity.tooltip": "Hook shoot velocity", + "mia.configuration.hook_pull_velocity": "Hook Pull Velocity", + "mia.configuration.hook_pull_velocity.tooltip": "Base pull velocity", + "mia.configuration.hook_retract_velocity": "Hook Retract Velocity", + "mia.configuration.hook_retract_velocity.tooltip": "Hook retract velocity", + "mia.configuration.hook_retract_distance": "Hook Retract Distance", + "mia.configuration.hook_retract_distance.tooltip": "Distance at which the hook automatically retracts", + "mia.configuration.hook_jump_boost": "Jump Boost Multiplier", + "mia.configuration.hook_jump_boost.tooltip": "Jump boost multiplier when using hook", + "mia.configuration.auto_hook": "Auto Hook", + "mia.configuration.auto_hook.tooltip": "Whether to enable auto hook", + + "key.categories.mia": "Memento In Abyss", + "key.mia.skill_dial": "Skill Dial", + + "skill.mia.unskill": "Unskill", + "skill.mia.combo_skills": "Combo Skills", + "skill.mia.cooldown": "Cooldown...", + "skill.mia.cooldown_time": "Cooldown T-", + "skill.mia.minute": "m", + "skill.mia.second": "s", + + "attribute.name.generic.critical_hit": "Critical Hit Chance", + "attribute.name.generic.critical_hit_damage": "Critical Hit Damage", + + "container.mia.artifact.smithing.title": "Artifact Smithing Table", + + "curios.identifier.whistle": "Whistle", + "curios.modifiers.whistle": "Whistle Attributes", + + "emi.category.mia.lamp_tube": "Laser Catalysis" +} \ No newline at end of file diff --git a/src/main/resources/assets/mia/lang/default/ponder.json b/src/main/resources/assets/mia/lang/default/ponder.json new file mode 100644 index 00000000..0e0dcd23 --- /dev/null +++ b/src/main/resources/assets/mia/lang/default/ponder.json @@ -0,0 +1,3 @@ +{ + +} \ No newline at end of file diff --git a/src/main/resources/assets/mia/lang/default/tooltip.json b/src/main/resources/assets/mia/lang/default/tooltip.json new file mode 100644 index 00000000..012c6037 --- /dev/null +++ b/src/main/resources/assets/mia/lang/default/tooltip.json @@ -0,0 +1,26 @@ +{ + "tooltip.mia.hold_shift": "Hold [%s] to show details", + + "tooltip.mia.attribute_modifier": "%s %s", + "tooltip.mia.modifiers.artifact_material": "When Applying Artifact: ", + + "tooltip.mia.whistle.level": "Whistle Level: %s", + "tooltip.mia.whistle.capacity": "Capacity: %s", + + "tooltip.mia.skill.cooldown_value": "Cooldown: %s", + "tooltip.mia.artifact.weight": "Weight: %s", + "tooltip.mia.artifact.grade.s": "S", + "tooltip.mia.artifact.grade.a": "A", + "tooltip.mia.artifact.grade.b": "B", + "tooltip.mia.artifact.grade.c": "C", + "tooltip.mia.artifact.grade.d": "D", + "tooltip.mia.artifact.grade.unknown": "Unknown", + + "tooltip.mia.artifact.level": "Echo: %s/%s", + "tooltip.mia.artifact.max": "Echo: MAX", + + "tooltip.mia.artifact_bundle.capacity": "Artifact Capacity: %s", + + "tooltip.mia.description.red_whistle": "Red Whistles are novice cave raiders allowed only in the Abyss’s first layer.", + "tooltip.mia.description.abyss_compass": "It will point the way toward the abyss." +} \ No newline at end of file