From b7a7a5e5d856c0eea9dab9896f3476b72c1f12c3 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Mon, 23 Jan 2023 18:41:16 +0700 Subject: [PATCH] Android Research locale --- .../mc/otm/datagen/ResearchData.kt | 195 +++++++++++++----- .../advancements/AndroidAdvancementsData.kt | 6 +- .../datagen/lang/MatteryLanguageProvider.kt | 31 +++ .../mc/otm/datagen/lang/Russian.kt | 2 +- 4 files changed, 181 insertions(+), 53 deletions(-) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/ResearchData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/ResearchData.kt index 0623cfc76..b800419d7 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/ResearchData.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/ResearchData.kt @@ -394,74 +394,171 @@ fun addResearchData(serializer: Consumer, lang: MatteryLang serializer.accept(JUMP_BOOST_1) serializer.accept(JUMP_BOOST_2) - with(lang.english) { - misc("fall_dampeners.description", "Reduces fall damage by %s%%") + with(lang) { + misc("fall_dampeners.description", "Reduces fall damage by %s%%") { + russian("Уменьшает урон от падения на %s%%") + } - add(limbList[0], "Limb Overclocking %s") - add(limbList[0], "description", "Boosts unit's mobility by %s%% and attack speed by %s%%") + add(limbList[0], "Limb Overclocking %s") { + russian("Разгон Конечностей %s") + } - add(AIR_BAGS, "Air Bags") - add(NANOBOTS, "Nanobots") - add(AIR_BAGS, "description", "Allows unit to swim in water") - add(NANOBOTS, "description", "Various useful nanobots for doing various tasks") + add(limbList[0], "description", "Boosts mobility by %s%% and attack speed by %s%%") { + russian("Увеличивает мобильность на %s%% и скорость атак на %s%%") + } - add(regenList[0], "Regeneration %s") - add(regenList[0], "description", "Nanobots get ability to repair unit's internal systems on the move") - add(regenList[0], "description_improve", "Improves regeneration speed") + add(AIR_BAGS, "Air Bags") { + russian("Воздушные Мешки") + } + add(NANOBOTS, "Nanobots") { + russian("Наноботы") + } + add(AIR_BAGS, "description", "Allows to swim in water") { + russian("Позволяет плавать в воде") + } + add(NANOBOTS, "description", "Various useful nanobots for doing various tasks") { + russian("Различные наноботы для различных задач") + } - add(NANOBOTS_ARMOR, "Nanobots Armor") - add(NANOBOTS_ARMOR, "description", "Allows nanobots to align themselves in cell shape, reducing incoming damage by a %% by absorbing impacts") + add(regenList[0], "Regeneration %s") { + russian("Регенерация %s") + } + add(regenList[0], "description", "Nanobots get ability to repair internal Android' systems on the move") { + russian("Наноботы получают возможность чинить внутренние системы Андроида на ходу") + } + add(regenList[0], "description_improve", "Improves health regeneration speed") { + russian("Улучшает скорость регенерации здоровья") + } - add(armorSpeedList[0], "Nanobots Armor Build Speed %s") - add(armorSpeedList[0], "description", "Reduces time required for nanobots to form protection layer") + add(NANOBOTS_ARMOR, "Nanobots Armor") { + russian("Броня из Наноботов") + } + add(NANOBOTS_ARMOR, "description", "Allows nanobots to align themselves in cell shape, reducing incoming damage by a %% by absorbing impacts") { + russian("Позволяет наноботам выстраиваться в клеточную структуру, уменьшая внешний урон на определённый проект путём поглощения ударов") + } - add(armorStrengthList[0], "Nanobots Armor Strength %s") - add(armorStrengthList[0], "description", "Increases impact absorption strength of nanobots") + add(armorSpeedList[0], "Nanobots Armor Build Speed %s") { + russian("Скорость Построения Слоя Брони Наноботов %s") + } + add(armorSpeedList[0], "description", "Reduces time required for nanobots to form protection layer") { + russian("Уменьшает время необходимое наноботам для формирования защитного слоя") + } - add(EXTENDED_REACH, "Extended Reach") - add(EXTENDED_REACH, "description", "Increases block interaction distance") + add(armorStrengthList[0], "Nanobots Armor Strength %s") { + russian("Сила Слоя Брони Наноботов %s") + } + add(armorStrengthList[0], "description", "Increases impact absorption strength of nanobots") { + russian("Увеличивает поглощающею силу брони наноботов") + } - add(IMPROVED_LIMBS, "Improved Limbs") - add(IMPROVED_LIMBS, "description", "Allows limbs to be upgraded") + add(EXTENDED_REACH, "Extended Reach") { + russian("Удлинённые Манипуляторы") + } + add(EXTENDED_REACH, "description", "Increases block interaction distance") { + russian("Увеличивает радиус взаимодействия с блоками") + } - add(STEP_ASSIST, "Step Assist") - add(STEP_ASSIST, "description", "Allows unit to step up whole blocks") + add(IMPROVED_LIMBS, "Improved Limbs") { + russian("Улучшенные Конечности") + } + add(IMPROVED_LIMBS, "description", "Allows limbs to be upgraded") { + russian("Позволяет улучшать конечности") + } - add(ITEM_MAGNET, "Item Magnet") - add(ITEM_MAGNET, "description0", "Pulls nearby items to unit while active") - add(ITEM_MAGNET, "description1", "Drains energy for each item stack it pulls") + add(STEP_ASSIST, "Step Assist") { + russian("Помощь Подъёма") + } + add(STEP_ASSIST, "description", "Allows unit to step up whole blocks") { + russian("Позволяет переступать полные блоки") + } - add(FALL_DAMPENERS_1, "Fall Dampeners") - add(FALL_DAMPENERS_1, "description", "Installs basic equipment in unit's limbs to negate some fall damage") + add(ITEM_MAGNET, "Item Magnet") { + russian("Предметный Магнит") + } + add(ITEM_MAGNET, "description0", "Pulls nearby items while active") { + russian("Притягивает ближайшие предметы пока активен") + } + add(ITEM_MAGNET, "description1", "Drains energy for each item stack it pulls") { + russian("Потребляет энергию за каждую стопку которую притягивает магнит") + } - add(FALL_DAMPENERS_2, "Fall Dampeners 2") - add(FALL_DAMPENERS_2, "description", "Installs micro displacing and dampening equipment in unit's limbs to negate great deal of fall damage") + add(FALL_DAMPENERS_1, "Fall Dampeners") { + russian("Поглотители Инерции") + } + add(FALL_DAMPENERS_1, "description", "Installs basic equipment in limbs to negate some fall damage") { + russian("Обустраивает конечности примитивными деталями для небольшого смягчения падения") + } - add(FALL_DAMPENERS_3, "Fall Dampeners 3") - add(FALL_DAMPENERS_3, "description0", "Installs autonomous calculation matrices and hardening to crucial parts") - add(FALL_DAMPENERS_3, "description1", "of unit's limbs to land on to negate most of fall damage") + add(FALL_DAMPENERS_2, "Fall Dampeners 2") { + russian("Поглотители Инерции 2") + } + add(FALL_DAMPENERS_2, "description", "Installs micro displacing and dampening equipment in limbs to negate great deal of fall damage") { + russian("Оборудует конечности микро смещающимися и смягчающим оборудованием, которое поглощает значительный урон от падения") + } - add(SHOCKWAVE, "Shockwave Pulsator") - add(SHOCKWAVE, "description0", "Releases a shockwave around unit, damaging everything in small radius, as unit quickly land on ground") - add(SHOCKWAVE, "description1", "It does not, however, help with ground impact damage!") + add(FALL_DAMPENERS_3, "Fall Dampeners 3") { + russian("Поглотители Инерции 3") + } + add(FALL_DAMPENERS_3, "description0", "Installs autonomous fall damage avoidance calculation matrices and hardening to crucial parts") { + russian("Устанавливает автономные матрицы калькуляции избегания урона от падения, а так же усиливает защиту важных деталей") + } + add(FALL_DAMPENERS_3, "description1", "of limbs to land on to negate most of fall damage") { + russian("от урона от падения для почти полного поглощения урона от падения") + } - add(PHANTOM_ATTRACTOR, "Builtin Phantom Attractor") - add(PHANTOM_ATTRACTOR, "description", "Allows unit to attract phantoms while active under same conditions as non-androids") + add(SHOCKWAVE, "Shockwave Pulsator") { + russian("Генератор Ударных Волн") + } + add(SHOCKWAVE, "description0", "Releases a shockwave, damaging everything in small radius, as you quickly land on ground") { + russian("Вызывает ударную волну при стремительном падении на землю, нанося урон всему, что вас окружает") + } + add(SHOCKWAVE, "description1", "It does not, however, help with ground impact damage!") { + russian("Используйте с осторожностью, так как данная технология сама по себе не поглащает урон от падения!") + } - add(JUMP_BOOST_1, "Jump Boost") - add(JUMP_BOOST_1, "description0", "Allows unit to perform higher jump") - add(JUMP_BOOST_1, "description1", "Can be activated by crouching and jumping at the same time") + add(PHANTOM_ATTRACTOR, "Builtin Phantom Attractor") { + russian("Встроенный Приманщик Фантомов") + } + add(PHANTOM_ATTRACTOR, "description", "Allows to attract phantoms while active under same conditions as non-Androids") { + russian("Позволяет привлекать фантомов под теми же условиями, как и не Андроиды") + } - add(JUMP_BOOST_2, "Jump Boost 2") - add(JUMP_BOOST_2, "description", "Allows unit to perform extra higher jump") + add(JUMP_BOOST_1, "Jump Boost") { + russian("Усилитель Прыжка") + } + add(JUMP_BOOST_1, "description0", "Allows to perform higher jump") { + russian("Позволяет совершить высокий прыжок") + } + add(JUMP_BOOST_1, "description1", "Can be activated by crouching and jumping at the same time") { + russian("Для прыжка удерживайте кнопку приседания и нажмите кнопку прыжка") + } - add(ENDER_TELEPORTER, "Ender Teleporter") - add(ENDER_TELEPORTER, "description", "Allows unit to perform instant, short distance teleports without damage to internal systems") + add(JUMP_BOOST_2, "Jump Boost 2") { + russian("Усилитель Прыжка 2") + } + add(JUMP_BOOST_2, "description", "Allows to perform extra higher jump") { + russian("Позволяет совершить ещё более высокий прыжок") + } - add(NIGHT_VISION, "Night Vision") - add(NIGHT_VISION, "description", "Allows unit to clearly see in the dark") + add(ENDER_TELEPORTER, "Ender Teleporter") { + russian("Телепортатор Края") + } + add(ENDER_TELEPORTER, "description", "Allows to perform instant, short distance teleports without damage to internal systems") { + russian("Позволяет совершать мгновенную телепортацию на короткую дистанцию без нанесения урона внутренним системам") + } - add(attackBoostList[0], "Attack Boost %s") - add(attackBoostList[0], "description", "Increases total melee attack strength by %s%%") + add(NIGHT_VISION, "Night Vision") { + russian("Ночное Зрение") + } + add(NIGHT_VISION, "description", "Allows to clearly see in the dark") { + russian("Позволяет видеть в темноте") + } + + add(attackBoostList[0], "Attack Boost %s") { + russian("Усиление Атаки %s") + } + add(attackBoostList[0], "description", "Increases total melee attack strength by %s%%") { + russian("Увеличивает урон в ближнем бою на %s%%") + } } } diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AndroidAdvancementsData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AndroidAdvancementsData.kt index c5250156c..9d53300a1 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AndroidAdvancementsData.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AndroidAdvancementsData.kt @@ -215,7 +215,7 @@ fun addAndroidAdvancements(serializer: Consumer, existingFileHelper russian("Вторая Пара Глаз") }, description = translation.add("night_vision.desc", "Research Night Vision as Android, to see in the dark") { - russian("Исследуйте Ночное Зрение за Андроида, дабы видеть во тьме") + russian("Исследуйте Ночное Зрение за Андроида, дабы видеть во темноте") }, ) .addCriterion("night_vision", AndroidResearchTrigger.Instance(modLocation(MNames.NIGHT_VISION))) @@ -275,8 +275,8 @@ fun addAndroidAdvancements(serializer: Consumer, existingFileHelper title = translation.add("fall_dampeners_save", "Lucky Landing") { russian("Удачное Приземление") }, - description = translation.add("fall_dampeners_save.desc", "Survive fall that would have otherwise be fatal without Fall Dampeners research") { - russian("Выживите после падения, которое было бы фатальным без исследования Смягчителей Падения") + description = translation.add("fall_dampeners_save.desc", "Survive fall that would have otherwise be fatal without Fall Dampeners") { + russian("Выживите после падения, которое было бы фатальным без Поглотителей Инерции") }, frameType = FrameType.GOAL ) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/MatteryLanguageProvider.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/MatteryLanguageProvider.kt index 673e1ee12..bd7aa1ec9 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/MatteryLanguageProvider.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/MatteryLanguageProvider.kt @@ -18,6 +18,7 @@ import net.minecraft.world.level.block.Block import net.minecraftforge.common.data.LanguageProvider import ru.dbotthepony.mc.otm.OverdriveThatMatters import ru.dbotthepony.mc.otm.android.AndroidFeatureType +import ru.dbotthepony.mc.otm.android.AndroidResearch import ru.dbotthepony.mc.otm.android.AndroidResearchType import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.registry.objects.ColoredDecorativeBlock @@ -430,5 +431,35 @@ class MatteryLanguageProvider(private val gen: DataGenerator) { val english by lazy { Builder("en_us") } val russian by lazy { Builder("ru_ru") } + inner class Single(val key: String) { + fun english(value: String) = english.add(key, value) + fun russian(value: String) = russian.add(key, value) + } + + inline fun add(key: String, configurator: Single.() -> Unit) = Single(key).also(configurator) + fun add(key: AndroidResearchType, configurator: Single.() -> Unit) = Single(researchString(key)).also(configurator) + + inline fun add(key: String, english: String, configurator: Single.() -> Unit = {}) = add(key) { english(english); configurator.invoke(this) } + fun add(key: AndroidResearchType, english: String, configurator: Single.() -> Unit = {}) = add(key) { english(english); configurator.invoke(this) } + fun add(key: AndroidResearchType, suffix: String, english: String, configurator: Single.() -> Unit = {}) = add(researchString(key) + ".$suffix") { english(english); configurator.invoke(this) } + + inline fun death(key: String, configurator: Single.() -> Unit) = Single("death.attack.$key").also(configurator) + inline fun death(key: String, english: String, configurator: Single.() -> Unit = {}) = death(key) { english(english); configurator.invoke(this) } + + inline fun research(key: String, configurator: Single.() -> Unit) = Single("android_research.overdrive_that_matters.$key").also(configurator) + inline fun research(key: String, english: String, configurator: Single.() -> Unit = {}) = research(key) { english(english); configurator.invoke(this) } + inline fun research(key: String, suffix: String, english: String, configurator: Single.() -> Unit = {}) = research("$key.$suffix") { english(english); configurator.invoke(this) } + + inline fun misc(key: String, configurator: Single.() -> Unit) = Single("otm.$key").also(configurator) + inline fun misc(key: String, english: String, configurator: Single.() -> Unit = {}) = misc(key) { english(english); configurator.invoke(this) } + + inline fun gui(key: String, configurator: Single.() -> Unit) = Single("otm.gui.$key").also(configurator) + inline fun gui(key: String, english: String, configurator: Single.() -> Unit = {}) = gui(key) { english(english); configurator.invoke(this) } + + inline fun sound(key: String, configurator: Single.() -> Unit) = Single("otm.sound.$key").also(configurator) + inline fun sound(key: String, english: String, configurator: Single.() -> Unit = {}) = sound(key) { english(english); configurator.invoke(this) } + inline fun sound(key: SoundEvent, configurator: Single.() -> Unit) = Single("otm.sound.${key.location.path}").also(configurator) + inline fun sound(key: SoundEvent, english: String, configurator: Single.() -> Unit = {}) = sound(key) { english(english); configurator.invoke(this) } + fun getProvider(language: String): LanguageProvider = slaves.computeIfAbsent(language, ::Slave) } diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt index a4ab753ea..bec55be61 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt @@ -583,7 +583,7 @@ private fun androidFeatures(provider: MatteryLanguageProvider) { add(AndroidFeatures.SHOCKWAVE, "Генератор Ударных Волн") add(AndroidFeatures.NIGHT_VISION, "Ночное Зрение") add(AndroidFeatures.NANOBOTS_ARMOR, "Броня из Наноботов") - add(AndroidFeatures.ITEM_MAGNET, "Магнит Предметов") + add(AndroidFeatures.ITEM_MAGNET, "Предметный Магнит") add(AndroidFeatures.STEP_ASSIST, "Помощник Подъёма") add(AndroidFeatures.PHANTOM_ATTRACTOR, "Приманщик Фантомов") add(AndroidFeatures.JUMP_BOOST, "Усилитель Прыжка")