Android Research locale

This commit is contained in:
DBotThePony 2023-01-23 18:41:16 +07:00
parent 7dd709938f
commit b7a7a5e5d8
Signed by: DBot
GPG Key ID: DCC23B5715498507
4 changed files with 181 additions and 53 deletions

View File

@ -394,74 +394,171 @@ fun addResearchData(serializer: Consumer<AndroidResearchType>, 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%%")
}
}
}

View File

@ -215,7 +215,7 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, 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<Advancement>, 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
)

View File

@ -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)
}

View File

@ -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, "Усилитель Прыжка")