From 610e10c9ad31ca2e74ebba14f79adcb6b2595fd6 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Mon, 23 Jan 2023 14:44:24 +0700 Subject: [PATCH] Russian locale for main advancements --- .../datagen/advancements/AdvancementData.kt | 248 +++++++++++++----- .../datagen/lang/MatteryLanguageProvider.kt | 28 +- .../mc/otm/datagen/lang/Russian.kt | 34 +-- 3 files changed, 229 insertions(+), 81 deletions(-) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AdvancementData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AdvancementData.kt index cfbbeefee..f47aeba45 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AdvancementData.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AdvancementData.kt @@ -19,14 +19,16 @@ import ru.dbotthepony.mc.otm.triggers.BlackHoleTrigger import java.util.function.Consumer fun addAdvancements(serializer: Consumer, existingFileHelper: ExistingFileHelper, lang: MatteryLanguageProvider) { - val translation = lang.english.Prepended("otm.advancements.regular") + val translation = lang.MultiBuilder("otm.advancements.regular") val root = AdvancementBuilder() .requirements(RequirementsStrategy.OR) .display( itemStack = ItemStack(MItems.TRITANIUM_INGOT), - title = TranslatableComponent(translation.add("root", "Overdrive That Matters")), - description = TranslatableComponent(translation.add("root.desc", "Its all about things that matter")), + title = translation.add("root", "Overdrive That Matters"), + description = translation.add("root.desc", "Its all about things that matter") { + russian("Мод про все штуки которые материальны") + }, showToast = false, announceChat = false, background = modLocation("textures/block/decorative/tritanium_block_gray.png") @@ -40,8 +42,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(root) .display( itemStack = ItemStack(MItems.BATTERY_CRUDE), - title = TranslatableComponent(translation.add("crude_battery", "Potato Power!")), - description = TranslatableComponent(translation.add("crude_battery.desc", "Put together a Crude Battery. Better hope for getter better power source soon")), + title = translation.add("crude_battery", "Potato Power!") { + russian("Сила Картофеля!") + }, + description = translation.add("crude_battery.desc", "Put together a Crude Battery. Better hope for getter better power source soon") { + russian("Создайте Простой Аккумулятор. Надо бы поторопиться с созданием более продвинутого аккумулятора") + }, ) .addCriterion("has_item", criterion(MItems.BATTERY_CRUDE)) .save(serializer, modLocation("regular/crude_battery"), existingFileHelper) @@ -50,8 +56,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(crude) .display( itemStack = ItemStack(MItems.BATTERY_NORMAL), - title = TranslatableComponent(translation.add("normal_battery", "Power Storage")), - description = TranslatableComponent(translation.add("normal_battery.desc", "Put together an Ordinary Battery")), + title = translation.add("normal_battery", "Power Storage") { + russian("Хранилище Энергии") + }, + description = translation.add("normal_battery.desc", "Put together a Battery") { + russian("Создайте Аккумулятор") + }, ) .addCriterion("has_item", criterion(MItems.BATTERY_NORMAL)) .save(serializer, modLocation("regular/normal_battery"), existingFileHelper) @@ -60,8 +70,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(normal) .display( itemStack = ItemStack(MItems.BATTERY_DENSE), - title = TranslatableComponent(translation.add("dense_battery", "Extra Space Battery")), - description = TranslatableComponent(translation.add("dense_battery.desc", "Put together a Dense Battery. Better not to expose it to fires!")), + title = translation.add("dense_battery", "Extra Space Battery") { + russian("Больше Места для Энергии") + }, + description = translation.add("dense_battery.desc", "Put together a Dense Battery. Better not to expose it to fires!") { + russian("Создайте Плотный Аккумулятор. Держите подальше от огня!") + }, ) .addCriterion("has_item", criterion(MItems.BATTERY_DENSE)) .save(serializer, modLocation("regular/dense_battery"), existingFileHelper) @@ -70,8 +84,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(normal) .display( itemStack = ItemStack(MItems.BATTERY_CAPACITOR), - title = TranslatableComponent(translation.add("capacitor_battery", "Supercapacitor")), - description = TranslatableComponent(translation.add("capacitor_battery.desc", "Put together a Capacitor Battery. Surely, you gonna need them somewhere...")), + title = translation.add("capacitor_battery", "Supercapacitor") { + russian("Сверхконденсатор") + }, + description = translation.add("capacitor_battery.desc", "Put together a Capacitor Battery. Surely, you gonna need them somewhere...") { + russian("Создайте Аккумулятор-Конденсатор. Очень вероятно, что вы найдете ему применение...") + }, ) .addCriterion("has_item", criterion(MItems.BATTERY_CAPACITOR)) .save(serializer, modLocation("regular/capacitor_battery"), existingFileHelper) @@ -80,8 +98,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(capacitor) .display( itemStack = ItemStack(MItems.ENERGY_SWORD), - title = TranslatableComponent(translation.add("energy_sword", "Self Sharpening Blade")), - description = TranslatableComponent(translation.add("energy_sword.desc", "Wield a High-Frequency Blade, a melee weapon intended to slice Creepers into creep-cakes. Rational folks won't attempt to slice their Android fellows...")), + title = translation.add("energy_sword", "Self Sharpening Blade") { + russian("Клинок с Самозаточкой") + }, + description = translation.add("energy_sword.desc", "Wield a High-Frequency Blade, a melee weapon intended to slice Creepers into creep-cakes") { + russian("Получите Высокочастотный Клинок, оружие ближнего боя предназначенное для нарезания Криперов на крипо-тортики") + }, frameType = FrameType.GOAL ) .addCriterion("has_item", criterion(MItems.ENERGY_SWORD)) @@ -91,8 +113,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(normal) .display( itemStack = ItemStack(MItems.QUANTUM_BATTERY), - title = TranslatableComponent(translation.add("quantum_battery", "Power, in Superposition")), - description = TranslatableComponent(translation.add("quantum_battery.desc", "Put together a Quantum Battery, powered by Ender technologies")), + title = translation.add("quantum_battery", "Power, in Superposition") { + russian("Энергия, в Суперпозиции") + }, + description = translation.add("quantum_battery.desc", "Put together a Quantum Battery, powered by Ender technologies") { + russian("Создайте Квантовый Аккумулятор, пропитаную технологиями Края") + }, frameType = FrameType.GOAL ) .rewards(AdvancementRewards.Builder.experience(50)) @@ -105,8 +131,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(root) .display( itemStack = ItemStack(MItems.ZPM_BATTERY), - title = TranslatableComponent(translation.add("zpm_battery", "Pocket Universe, as Power Source")), - description = TranslatableComponent(translation.add("zpm_battery.desc", "Find Zero Point Module, something from different universe of ours, created using technologies lost in time in all possible multiverses")), + title = translation.add("zpm_battery", "Pocket Universe, as Power Source") { + russian("Карманная Вселенная, как Источник Питания") + }, + description = translation.add("zpm_battery.desc", "Find Zero Point Module, something from different multiverse of ours, created using technologies lost in time in all possible multiverses") { + russian("Найдите Модуль Нулевой Точки, вещь из другой мультивселенной, созданная с использованием технологий, потерянных во времени во всех возможных мультивслеленных") + }, frameType = FrameType.CHALLENGE, hidden = true ) @@ -118,8 +148,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(root) .display( itemStack = ItemStack(MItems.BLACK_HOLE), - title = TranslatableComponent(translation.add("black_hole_pull", "Something Massive and Something Close")), - description = TranslatableComponent(translation.add("black_hole_pull.desc", "Experience Singularity's gravitational force, better not to get closer")), + title = translation.add("black_hole_pull", "Something Massive and Something Close") { + russian("Что то Массивное и Близкое") + }, + description = translation.add("black_hole_pull.desc", "Experience Singularity's gravitational force, better not to get closer") { + russian("Испытайте на себе гравитационную силу Сингулярности, лучше не подходить ближе") + }, hidden = true ) .addCriterion("pulled_by_black_hole", BlackHoleTrigger.Instance) @@ -129,8 +163,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(blackhole) .display( itemStack = ItemStack(MItems.BLACK_HOLE_SCANNER), - title = TranslatableComponent(translation.add("black_hole_scanner", "Determining the Mass")), - description = TranslatableComponent(translation.add("black_hole_scanner.desc", "Craft the Singularity Scanner, to determine mass of Singularity from safe distance")), + title = translation.add("black_hole_scanner", "Determining the Mass") { + russian("Определяем Массу") + }, + description = translation.add("black_hole_scanner.desc", "Craft the Singularity Scanner, to determine mass of... Singularities, from safe distance") { + russian("Создайте Сканер Сингулярностей, для определения массы... Сингулярностей на безопасном расстоянии") + }, ) .addCriterion("has_item", criterion(MItems.BLACK_HOLE_SCANNER)) .save(serializer, modLocation("regular/black_hole_scanner"), existingFileHelper) @@ -139,8 +177,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(blackhole) .display( itemStack = ItemStack(MItems.GRAVITATION_STABILIZER), - title = TranslatableComponent(translation.add("stabilizer", "Reducing the Impact")), - description = TranslatableComponent(translation.add("stabilizer.desc", "Put together a device that defy physical laws and also defy gravity of Singularities. Better hope it does not cause any side effects")), + title = translation.add("stabilizer", "Reducing the Impact") { + russian("Уменьшаем Воздействие") + }, + description = translation.add("stabilizer.desc", "Put together a device that defy physical laws and also defy gravity of Singularities. Better hope it does not cause any side effects") { + russian("Создайте устройство, которое смеётся перед законами физики, а так же смеётся перед силами гравитации Сингулярностей. Надо надеется, что это не принесёт никаких последствий") + }, ) .addCriterion("has_item", criterion(MItems.GRAVITATION_STABILIZER)) .save(serializer, modLocation("regular/stabilizer"), existingFileHelper) @@ -149,8 +191,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(blackhole) .display( itemStack = ItemStack(MItems.PORTABLE_GRAVITATION_STABILIZER), - title = TranslatableComponent(translation.add("portable_stabilizer", "Local Gravity Field")), - description = TranslatableComponent(translation.add("portable_stabilizer.desc", "Protect yourself from gravitational effect of Singularity using Portable Gravitation Stabilizer")), + title = translation.add("portable_stabilizer", "Local Gravity Field") { + russian("Локальное Поле Гравитации") + }, + description = translation.add("portable_stabilizer.desc", "Protect yourself from gravitational effect of Singularity using Portable Space-Time Equalizer") { + russian("Защитите себя от гравитационных эффектов Сингулярностей используя Портативный") + }, ) .addCriterion("has_item", criterion(MItems.PORTABLE_GRAVITATION_STABILIZER)) .save(serializer, modLocation("regular/portable_stabilizer"), existingFileHelper) @@ -160,8 +206,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .requirements(RequirementsStrategy.OR) .display( itemStack = ItemStack(MItems.TRITANIUM_ORE_CLUMP), - title = TranslatableComponent(translation.add("ore", "Blue Metal Discovery")), - description = TranslatableComponent(translation.add("ore.desc", "Mine some Tritanium")), + title = translation.add("ore", "Blue Metal Discovery") { + russian("Открытие Синего Металла") + }, + description = translation.add("ore.desc", "Mine some Tritanium") { + russian("Добудьте немного Тритана") + }, ) .addCriterion("has_tritanium_ore", criterion(MItemTags.TRITANIUM_ORES)) .addCriterion("has_tritanium_ore_clump", criterion(MItemTags.TRITANIUM_ORE_CLUMPS)) @@ -171,8 +221,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(ore) .display( itemStack = ItemStack(MItems.TRITANIUM_INGOT), - title = TranslatableComponent(translation.add("ingot", "Acquire Harder-ware")), - description = TranslatableComponent(translation.add("ingot.desc", "Smelt a Tritanium ingot")), + title = translation.add("ingot", "Acquire Harder-ware") { + russian("Куй сильнее...") + }, + description = translation.add("ingot.desc", "Smelt a Tritanium ingot") { + russian("Выплавьте Тритановый слиток") + }, ) .addCriterion("has_tritanium_ingot", criterion(MItemTags.TRITANIUM_INGOTS)) .save(serializer, modLocation("regular/ingot"), existingFileHelper) @@ -181,8 +235,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(ingot) .display( itemStack = ItemStack(MItems.TRITANIUM_PICKAXE), - title = TranslatableComponent(translation.add("pickaxe", "A Tool for Patient Miners")), - description = TranslatableComponent(translation.add("pickaxe.desc", "Craft a Tritanium Pickaxe")), + title = translation.add("pickaxe", "A Tool for Patient Miners") { + russian("Инструмент для Неспешных Шахтёров") + }, + description = translation.add("pickaxe.desc", "Craft a Tritanium Pickaxe") { + russian("Создайте Тритановую Кирку") + }, ) .addCriterion("has_tritanium_pickaxe", criterion(MItems.TRITANIUM_PICKAXE)) .save(serializer, modLocation("regular/pickaxe"), existingFileHelper) @@ -191,8 +249,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(ingot) .display( itemStack = ItemStack(MItems.TRITANIUM_HOE), - title = TranslatableComponent(translation.add("hoe", "A Tool for Farmers")), - description = TranslatableComponent(translation.add("hoe.desc", "Tritanium is a very good choice for making a sturdy Hoe")), + title = translation.add("hoe", "A Tool for Farmers") { + russian("Инструмент для Фермеров") + }, + description = translation.add("hoe.desc", "Tritanium is a very good choice for making a sturdy Hoe") { + russian("Тритан - очень хороший выбор для создания прочной Мотыги") + }, hidden = true ) .addCriterion("hoe", criterion(MItems.TRITANIUM_HOE)) @@ -202,8 +264,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(ingot) .display( itemStack = ItemStack(MItems.TRITANIUM_PLATE), - title = TranslatableComponent(translation.add("plate", "Hard Plating")), - description = TranslatableComponent(translation.add("plate.desc", "Roll down some Tritanium using a Plate Press")) + title = translation.add("plate", "Hard Plating") { + russian("Прочные Пластины") + }, + description = translation.add("plate.desc", "Roll down some Tritanium using a Plate Press") { + russian("Раскатайте немного Тритана используя Пресс Пластин") + } ) .addCriterion("has_item", criterion(MItemTags.TRITANIUM_PLATES)) .save(serializer, modLocation("regular/plate"), existingFileHelper) @@ -212,8 +278,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(plate) .display( itemStack = ItemStack(MItems.TRITANIUM_CHESTPLATE), - title = TranslatableComponent(translation.add("armor", "Composite Armor")), - description = TranslatableComponent(translation.add("armor.desc", "Bend some Tritanium plates into simple yet sturdy armor")) + title = translation.add("armor", "Composite Armor") { + russian("Композитная Броня") + }, + description = translation.add("armor.desc", "Bend some Tritanium Plates into simple yet sturdy armor") { + russian("Согните немного Тритановых Пластин в простую, но прочную, броню") + } ) .requirements(RequirementsStrategy.OR) .addCriterion("has_item0", criterion(MItems.TRITANIUM_HELMET)) @@ -226,8 +296,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(plate) .display( itemStack = ItemStack(MRegistry.INDUSTRIAL_GLASS.item), - title = TranslatableComponent(translation.add("industrial_glass", "Extra Hard Glass")), - description = TranslatableComponent(translation.add("industrial_glass.desc", "Manual says it should be bulletproof.")) + title = translation.add("industrial_glass", "Extra Hard Glass") { + russian("Дополнительно Прочное Стекло") + }, + description = translation.add("industrial_glass.desc", "Manual says it should be bulletproof.") { + russian("В инструкции указано что оно должно быть пуленепробиваемо.") + } ) .requirements(RequirementsStrategy.OR) .also { advancement -> @@ -239,8 +313,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(glass) .display( itemStack = ItemStack(MRegistry.INDUSTRIAL_GLASS.getItem(DyeColor.GREEN)), - title = TranslatableComponent(translation.add("industrial_glass2", "Glass-tacular Artist")), - description = TranslatableComponent(translation.add("industrial_glass2.desc", "Paint Industrial Glass all possible colors")), + title = translation.add("industrial_glass2", "Glass-Tacular Artist") { + russian("Стекло-Чаровательный Артист") + }, + description = translation.add("industrial_glass2.desc", "Paint Industrial Glass all possible colors") { + russian("Покрасьте Промышленное Стекло во все возможные цвета") + }, frameType = FrameType.GOAL ) .requirements(RequirementsStrategy.AND) @@ -253,8 +331,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(plate) .display( itemStack = ItemStack(MRegistry.CARGO_CRATES.item), - title = TranslatableComponent(translation.add("cargo_crate", "Sturdy Item Stash")), - description = TranslatableComponent(translation.add("cargo_crate.desc", "Cargo Crates, like Double Chest, but Single.")) + title = translation.add("cargo_crate", "Sturdy Item Stash") { + russian("Прочное Хранилище Предметов") + }, + description = translation.add("cargo_crate.desc", "Cargo Crates, like Double Chest, but Single") { + russian("Грузовые Ящики, будто Двойные Сундуки, но Одинарные.") + } ) .requirements(RequirementsStrategy.OR) .also { advancement -> @@ -266,8 +348,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(cargoCrate) .display( itemStack = ItemStack(MItems.CARGO_CRATE_MINECARTS[null]!!), - title = TranslatableComponent(translation.add("cargo_crate_minecart", "Crate On a Rail")), - description = TranslatableComponent(translation.add("cargo_crate_minecart.desc", "Drop a Cargo Crate onto Minecart and see how it goes")) + title = translation.add("cargo_crate_minecart", "Crate On a Rail") { + russian("Ящик на Рельсах") + }, + description = translation.add("cargo_crate_minecart.desc", "Drop a Cargo Crate onto Minecart and see how it goes") { + russian("Сбросьте Грузовой Ящик в Вагонетку и посмотрите что получится") + } ) .requirements(RequirementsStrategy.OR) .also { advancement -> @@ -279,8 +365,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(cargoCrateInMinecart) .display( itemStack = ItemStack(MItems.CARGO_CRATE_MINECARTS[DyeColor.GREEN]!!), - title = TranslatableComponent(translation.add("cargo_crate_minecart2", "A Motley Train")), - description = TranslatableComponent(translation.add("cargo_crate_minecart2.desc", "Have all color variants of Minecarts with Cargo Crates")), + title = translation.add("cargo_crate_minecart2", "A Motley Train") { + russian("Пёстрый Поезд") + }, + description = translation.add("cargo_crate_minecart2.desc", "Have all color variants of Minecarts with Cargo Crates") { + russian("Создайте все варианты покрасок Вагонеток с Грузовыми Ящиками") + }, frameType = FrameType.GOAL ) .requirements(RequirementsStrategy.AND) @@ -293,8 +383,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(cargoCrate) .display( itemStack = ItemStack(MRegistry.CARGO_CRATES.item), - title = TranslatableComponent(translation.add("cargo_crate2", "Colorful Warehouse")), - description = TranslatableComponent(translation.add("cargo_crate2.desc", "Craft all color variants of Cargo Crates")), + title = translation.add("cargo_crate2", "Colorful Warehouse") { + russian("Разноцветный Склад") + }, + description = translation.add("cargo_crate2.desc", "Craft all color variants of Cargo Crates") { + russian("Покрасьте Грузовые Ящики во все возможные цвета") + }, frameType = FrameType.GOAL ) .requirements(RequirementsStrategy.AND) @@ -307,8 +401,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(plate) .display( itemStack = ItemStack(MRegistry.TRITANIUM_BLOCK.item), - title = TranslatableComponent(translation.add("tritanium_block", "Cold, Impregnable Wall")), - description = TranslatableComponent(translation.add("tritanium_block.desc", "Coat stones in Tritanium Plates, a cheap yet incredibly sturdy material")) + title = translation.add("tritanium_block", "Cold, Impregnable Wall") { + russian("Холодная, Неприступная Стена") + }, + description = translation.add("tritanium_block.desc", "Coat stones in Tritanium, a cheap yet incredibly sturdy material") { + russian("Покройте булыжник в Тритане, дешёвый, но невероятно прочный материал") + } ) .requirements(RequirementsStrategy.OR) .also { advancement -> @@ -325,8 +423,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(tritaniumBlock) .display( itemStack = ItemStack(MItems.TRITANIUM_STRIPED_BLOCK), - title = TranslatableComponent(translation.add("striped_tritanium_block", "Old Fashion Color Touch")), - description = TranslatableComponent(translation.add("striped_tritanium_block.desc", "Pale Blue coat with Yellow stripe, I bet you know whose design is this")) + title = translation.add("striped_tritanium_block", "Old Fashion Color Touch") { + russian("Старомодная Цветовая Отделка") + }, + description = translation.add("striped_tritanium_block.desc", "Pale Blue coat with Yellow stripe, I bet you know whose design is this") { + russian("Бледно Синяя покраска с Жёлтой полоской, я готов поспорить вы знаете чей это дизайн") + } ) .requirements(RequirementsStrategy.OR) .addCriterion("has_item", criterion(MItems.TRITANIUM_STRIPED_BLOCK)) @@ -339,8 +441,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(tritaniumBlock) .display( itemStack = ItemStack(MRegistry.TRITANIUM_BLOCK.getItem(DyeColor.GREEN)), - title = TranslatableComponent(translation.add("tritanium_block2", "Colorful Fortress")), - description = TranslatableComponent(translation.add("tritanium_block2.desc", "Put some paint over Tritanium Block to make it look fabulous")) + title = translation.add("tritanium_block2", "Colorful Fortress") { + russian("Разноцветная Крепость") + }, + description = translation.add("tritanium_block2.desc", "Put some paint over Tritanium Block to make it look fabulous") { + russian("Покрасьте Тритановый Блок для придания ему сказочных оттенков") + } ) .requirements(RequirementsStrategy.OR) .also { advancement -> @@ -357,8 +463,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(colorTritaniumBlock) .display( itemStack = ItemStack(MRegistry.TRITANIUM_BLOCK.getItem(DyeColor.BLACK)), - title = TranslatableComponent(translation.add("tritanium_block3", "Paint Me A Castle")), - description = TranslatableComponent(translation.add("tritanium_block3.desc", "Craft all color variants of Tritanium Blocks")), + title = translation.add("tritanium_block3", "Paint Me A Castle") { + russian("Разукрась Мне Замок") + }, + description = translation.add("tritanium_block3.desc", "Craft all color variants of Tritanium Blocks") { + russian("Создайте все варианты покрасок Тритановых Блоков") + }, frameType = FrameType.GOAL ) .rewards(AdvancementRewards.Builder.loot(modLocation("tritanium_block3")).addExperience(100)) @@ -372,8 +482,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(colorfulTritaniumBlock) .display( itemStack = ItemStack(MRegistry.TRITANIUM_STRIPED_BLOCK.getItem(DyeColor.BLACK, DyeColor.WHITE)), - title = TranslatableComponent(translation.add("tritanium_block4", "All The Colors")), - description = TranslatableComponent(translation.add("tritanium_block4.desc", "Craft ALL color variants of Tritanium Blocks including striped ones")), + title = translation.add("tritanium_block4", "All The Colors") { + russian("Все Цвета Всё Сюда") + }, + description = translation.add("tritanium_block4.desc", "Craft ALL color variants of Tritanium Blocks including striped ones") { + russian("Создайте АБСОЛЮТНО ВСЕ варианты покрасок Тритановых Блоков, включая с полосками") + }, frameType = FrameType.CHALLENGE ) .rewards(AdvancementRewards.Builder.loot(modLocation("tritanium_block4")).addExperience(400)) @@ -389,8 +503,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(root) .display( itemStack = ItemStack(MItems.PILL_ANDROID), - title = TranslatableComponent(translation.add("pill", "Side Colored Mystery")), - description = TranslatableComponent(translation.add("pill.desc", "Find some of those mysterious pills. Consult with Cleric before trying to ingest them.")), + title = translation.add("pill", "Side Colored Mystery") { + russian("Мистика с Цветными Краями") + }, + description = translation.add("pill.desc", "Find some of those mysterious pills. Consult with Cleric before trying to ingest them.") { + russian("Найдите одну из этих ваших мистических пилюль. Проконсультируйтесь с Клериком перед употреблением.") + }, ) .requirements(RequirementsStrategy.OR) .addCriterion("pill1", criterion(MItems.PILL_ANDROID)) @@ -403,8 +521,12 @@ fun addAdvancements(serializer: Consumer, existingFileHelper: Exist .parent(pill) .display( itemStack = ItemStack(MItems.PILL_HEAL), - title = TranslatableComponent(translation.add("all_pills", "Take Your Meds")), - description = TranslatableComponent(translation.add("all_pills.desc", "Find all possible pill types")), + title = translation.add("all_pills", "Take Your Meds") { + russian("Пей Таблетки") + }, + description = translation.add("all_pills.desc", "Find all possible pill types") { + russian("Найдите все возможные варианты пилюль") + }, frameType = FrameType.CHALLENGE, hidden = true ) 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 f4f28c71d..673e1ee12 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 @@ -4,6 +4,7 @@ import com.google.common.collect.ImmutableList import com.google.common.collect.ImmutableMap import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap import net.minecraft.data.DataGenerator +import net.minecraft.network.chat.Component import net.minecraft.network.chat.MutableComponent import net.minecraft.network.chat.contents.TranslatableContents import net.minecraft.sounds.SoundEvent @@ -18,6 +19,7 @@ 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.AndroidResearchType +import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.registry.objects.ColoredDecorativeBlock private fun researchString(key: AndroidResearchType): String { @@ -47,6 +49,30 @@ class MatteryLanguageProvider(private val gen: DataGenerator) { } } + inner class MultiBuilder(path: String) { + val path = "$path." + + constructor(vararg path: String) : this(path.joinToString(".")) + constructor(path: Collection) : this(path.joinToString(".")) + + inner class Path(path: String) { + val fullPath = this@MultiBuilder.path + path + fun english(value: String) = english.add(fullPath, value) + fun russian(value: String) = russian.add(fullPath, value) + } + + inline fun add(key: String, configurator: Path.() -> Unit): Component { + return TranslatableComponent(Path(key).also(configurator).fullPath) + } + + inline fun add(key: String, english: String, configurator: Path.() -> Unit = {}): Component { + return add(key) { + english(english) + configurator.invoke(this) + } + } + } + @Suppress("unused") inner class Builder(language: String) { val slave: LanguageProvider by lazy { slaves.computeIfAbsent(language, ::Slave) } @@ -382,7 +408,7 @@ class MatteryLanguageProvider(private val gen: DataGenerator) { "Black", ) - val russianColors = Colors("en_us", + val russianColors = Colors("ru_ru", "Белый", "Оранжевый", "Маджентовый", 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 ea4b0e97c..2d1ee7ae1 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 @@ -32,8 +32,8 @@ private fun decoratives(provider: MatteryLanguageProvider) { add(MRegistry.DECORATIVE_CRATE, "%s Блок Контейнера") } - with (provider.english) { - for ((color, name) in provider.englishColors.dyeClassMapped) { + with (provider.russian) { + for ((color, name) in provider.russianColors.dyeClassMapped) { add(MItems.CARGO_CRATE_MINECARTS[color]!!, "Вагонетка с $name Грузовым Ящиком") add(MEntityTypes.CARGO_CRATE_MINECARTS[color]!!, "Вагонетка с $name Грузовым Ящиком") @@ -57,7 +57,7 @@ private fun decoratives(provider: MatteryLanguageProvider) { add(MRegistry.TRITANIUM_PRESSURE_PLATE.block, "description1", HIGH_BLAST_RESISTANCE) } - with(provider.english) { + with(provider.russian) { add(MItems.CARGO_CRATE_MINECARTS[null]!!, "Вагонетка с Грузовым Ящиком") add(MEntityTypes.CARGO_CRATE_MINECARTS[null]!!, "Вагонетка с Грузовым Ящиком") @@ -78,8 +78,8 @@ private fun decoratives(provider: MatteryLanguageProvider) { for ((block, colors) in MRegistry.TRITANIUM_STRIPED_BLOCK.blocksWithColor) { val (base, stripe) = colors - val baseName = provider.englishColors.dyeClassMapped[base]!! - val stripeName = provider.englishColors.dyeClassMapped[stripe]!! + val baseName = provider.russianColors.dyeClassMapped[base]!! + val stripeName = provider.russianColors.dyeClassMapped[stripe]!! add(block, "$baseName-Окрашенный $stripeName-Ополосаченный Тритановый Блок") } @@ -87,8 +87,8 @@ private fun decoratives(provider: MatteryLanguageProvider) { for ((block, colors) in MRegistry.TRITANIUM_STRIPED_STAIRS.blocksWithColor) { val (base, stripe) = colors - val baseName = provider.englishColors.dyeClassMapped[base]!! - val stripeName = provider.englishColors.dyeClassMapped[stripe]!! + val baseName = provider.russianColors.dyeClassMapped[base]!! + val stripeName = provider.russianColors.dyeClassMapped[stripe]!! add(block, "$baseName-Окрашенные $stripeName-Ополосаченные Тритановые Ступеньки") } @@ -96,8 +96,8 @@ private fun decoratives(provider: MatteryLanguageProvider) { for ((block, colors) in MRegistry.TRITANIUM_STRIPED_SLAB.blocksWithColor) { val (base, stripe) = colors - val baseName = provider.englishColors.dyeClassMapped[base]!! - val stripeName = provider.englishColors.dyeClassMapped[stripe]!! + val baseName = provider.russianColors.dyeClassMapped[base]!! + val stripeName = provider.russianColors.dyeClassMapped[stripe]!! add(block, "$baseName-Окрашенная $stripeName-Ополосаченная Тритановая Плита") } @@ -105,8 +105,8 @@ private fun decoratives(provider: MatteryLanguageProvider) { for ((block, colors) in MRegistry.TRITANIUM_STRIPED_WALL.blocksWithColor) { val (base, stripe) = colors - val baseName = provider.englishColors.dyeClassMapped[base]!! - val stripeName = provider.englishColors.dyeClassMapped[stripe]!! + val baseName = provider.russianColors.dyeClassMapped[base]!! + val stripeName = provider.russianColors.dyeClassMapped[stripe]!! add(block, "$baseName-Окрашенная $stripeName-Ополосаченная Тритановая Ограда") } @@ -124,7 +124,7 @@ private fun sounds(provider: MatteryLanguageProvider) { } private fun misc(provider: MatteryLanguageProvider) { - with(provider.english) { + with(provider.russian) { gui("ticks", "Тиков") gui("power_cost_per_use", "Энергии на операцию: %s") @@ -466,7 +466,7 @@ private fun items(provider: MatteryLanguageProvider) { add(MItems.BATTERY_BASIC, "Простой Аккумулятор") add(MItems.BATTERY_NORMAL, "Аккумулятор") add(MItems.BATTERY_DENSE, "Плотный Аккумулятор") - add(MItems.BATTERY_CAPACITOR, "Аккумулятор-Накопитель") + add(MItems.BATTERY_CAPACITOR, "Аккумулятор-Конденсатор") add(MItems.BATTERY_CREATIVE, "Творческий Аккумулятор") add(MItems.QUANTUM_BATTERY, "Квантовый Аккумулятор") @@ -521,10 +521,10 @@ private fun items(provider: MatteryLanguageProvider) { add(MItems.MATTER_DUST, "desc2", "Закиньте в Материальный Переработчик для переработки обратно в чистую материю!") add(MItems.MATTER_DUST, "desc3", "Не нюхать, не кидать на других и не сыпать на пончики") - add(MItems.PILL_ANDROID, "Таблетка Андроида") - add(MItems.PILL_HUMANE, "Таблетка Человечности") - add(MItems.PILL_OBLIVION, "Таблетка Сброса Андроида до Заводских Настроек") - add(MItems.PILL_HEAL, "Медицинская Таблетка") + add(MItems.PILL_ANDROID, "Пилюля Андроида") + add(MItems.PILL_HUMANE, "Пилюля Человечности") + add(MItems.PILL_OBLIVION, "Пилюля Сброса Андроида до Заводских Настроек") + add(MItems.PILL_HEAL, "Медицинская Пилюля") add(MItems.MATTER_CAPACITOR_PARTS, "Части Накопителя Материи") add(MItems.MATTER_CAPACITOR_BASIC, "Простой Накопитель Материи")