More advancement russian locale, english locale adjustments

This commit is contained in:
DBotThePony 2023-01-23 17:52:06 +07:00
parent 1d0ab8170a
commit 7dd709938f
Signed by: DBot
GPG Key ID: DCC23B5715498507
3 changed files with 201 additions and 65 deletions

View File

@ -38,13 +38,17 @@ import ru.dbotthepony.mc.otm.triggers.ShockwaveTrigger
import java.util.function.Consumer import java.util.function.Consumer
fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper: ExistingFileHelper, lang: MatteryLanguageProvider) { fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper: ExistingFileHelper, lang: MatteryLanguageProvider) {
val translation = lang.english.Prepended("otm.advancements.android") val translation = lang.MultiBuilder("otm.advancements.android")
val root = AdvancementBuilder() val root = AdvancementBuilder()
.display( .display(
itemStack = ItemStack(MItems.PILL_ANDROID), itemStack = ItemStack(MItems.PILL_ANDROID),
title = TranslatableComponent(translation.add("root", "Androids and Humans")), title = translation.add("root", "Androids and Humans") {
description = TranslatableComponent(translation.add("root.desc", "Can you make out who is cruel machine and who can love?")), russian("Андроиды и Люди")
},
description = translation.add("root.desc", "Can you make out who is cruel machine and who care about others?") {
russian("Сможете ли вы отличить бездушную машину от того, кому другие не безразличны?")
},
showToast = false, showToast = false,
announceChat = false, announceChat = false,
background = modLocation("textures/block/decorative/metal_beam_top.png") background = modLocation("textures/block/decorative/metal_beam_top.png")
@ -56,8 +60,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(root) .parent(root)
.display( .display(
itemStack = ItemStack(MItems.ZPM_BATTERY), itemStack = ItemStack(MItems.ZPM_BATTERY),
title = TranslatableComponent(translation.add("zpm", "Fully Autonomous")), title = translation.add("zpm", "Fully Autonomous") {
description = TranslatableComponent(translation.add("zpm.desc", "Use Zero Point Module as internal battery power source. Only time is your enemy now")), russian("Полностью Автономный")
},
description = translation.add("zpm.desc", "Use Zero Point Module as internal battery power source. Only time is your enemy now") {
russian("Используйте Модуль Нулевой Точки как внутренний источник питания. Теперь только время будет вашим злейшим врагом")
},
hidden = true, hidden = true,
frameType = FrameType.CHALLENGE frameType = FrameType.CHALLENGE
) )
@ -68,8 +76,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(root) .parent(root)
.display( .display(
itemStack = ItemStack(MItems.QUANTUM_BATTERY), itemStack = ItemStack(MItems.QUANTUM_BATTERY),
title = TranslatableComponent(translation.add("quantum_battery", "Wireless Charged")), title = translation.add("quantum_battery", "Wireless Charged") {
description = TranslatableComponent(translation.add("quantum_battery.desc", "Use Quantum Battery as internal battery power source, might as well have Fission Reactor charge other side of the link")), russian("Беспроводная Зарядка")
},
description = translation.add("quantum_battery.desc", "Use Quantum Battery as internal battery power source, might as well have Fission Reactor charge other side of the link") {
russian("Используйте Квантовый Аккумулятор как внутренний источник питания, можно даже подключить другой конец к Реактору Распада")
},
hidden = true, hidden = true,
frameType = FrameType.GOAL frameType = FrameType.GOAL
) )
@ -82,8 +94,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(root) .parent(root)
.display( .display(
itemStack = ItemStack(MItems.PILL_ANDROID), itemStack = ItemStack(MItems.PILL_ANDROID),
title = TranslatableComponent(translation.add("normal", "Last Sweet Dreams")), title = translation.add("normal", "Last Sweet Dreams") {
description = TranslatableComponent(translation.add("normal.desc", "Become an Android in your dreams, a soulless machine... Or is it?")), russian("Последние Сновидения")
},
description = translation.add("normal.desc", "Become an Android in your dreams, a soulless machine... Or is it?") {
russian("Превратитесь в Андроида во сне, в бездушную машину... Или нет?")
},
hidden = true, hidden = true,
) )
.addCriterion("became_android", BecomeAndroidSleepTrigger.Instance) .addCriterion("became_android", BecomeAndroidSleepTrigger.Instance)
@ -93,8 +109,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(root) .parent(root)
.display( .display(
itemStack = ItemStack(MItems.PILL_ANDROID), itemStack = ItemStack(MItems.PILL_ANDROID),
title = TranslatableComponent(translation.add("death", "The Old Way")), title = translation.add("death", "The Old Way") {
description = TranslatableComponent(translation.add("death.desc", "Become an Android in event of death, veteran's favorite")), russian("Изготовленный по Старинке")
},
description = translation.add("death.desc", "In event of death, become an Android; Veteran's favorite") {
russian("Будучи умерев, станьте Андроидом; Ветераны оценят")
},
hidden = true, hidden = true,
) )
.addCriterion("became_android", BecomeAndroidDeathTrigger.Instance) .addCriterion("became_android", BecomeAndroidDeathTrigger.Instance)
@ -104,8 +124,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(root) .parent(root)
.display( .display(
itemStack = ItemStack(MItems.PILL_HUMANE), itemStack = ItemStack(MItems.PILL_HUMANE),
title = TranslatableComponent(translation.add("unandroid", "Feel Humane Again")), title = translation.add("unandroid", "Feel Humane Again") {
description = TranslatableComponent(translation.add("unandroid.desc", "Become fleshy after being a machine, yet something is still missing that you had before...")), russian("Вкусить Человечность Вновь")
},
description = translation.add("unandroid.desc", "Become fleshy after being a machine, yet something is still missing that you had before...") {
russian("Вновь обретите плоть после своей жизни как набор гаек и болтов, но вот чего-то всё равно не хватает, что было при вас с самого начала...")
},
hidden = true, hidden = true,
frameType = FrameType.GOAL frameType = FrameType.GOAL
) )
@ -116,8 +140,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(root) .parent(root)
.display( .display(
itemStack = ItemStack(Items.PHANTOM_MEMBRANE), itemStack = ItemStack(Items.PHANTOM_MEMBRANE),
title = TranslatableComponent(translation.add("phantom_spawn_denied", "Insomnia Immune")), title = translation.add("phantom_spawn_denied", "Insomnia Immune") {
description = TranslatableComponent(translation.add("phantom_spawn_denied.desc", "Have Phantoms not come after you because you are not someone who needs to sleep")), russian("Пере-Бессоница")
},
description = translation.add("phantom_spawn_denied.desc", "Have Phantoms not come after you because you are not someone who needs to sleep") {
russian("Не привлеките внимание Фантомов, так как вы не тот, кому надо спать")
},
hidden = true hidden = true
) )
.addCriterion("phantom_spawn_denied", PhantomSpawnDeniedTrigger.Instance) .addCriterion("phantom_spawn_denied", PhantomSpawnDeniedTrigger.Instance)
@ -127,8 +155,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(phantoms) .parent(phantoms)
.display( .display(
itemStack = ItemStack(MItems.PHANTOM_ATTRACTOR), itemStack = ItemStack(MItems.PHANTOM_ATTRACTOR),
title = TranslatableComponent(translation.add("phantom_attractor", "Eversleeping Decoy")), title = translation.add("phantom_attractor", "Eversleeping Decoy") {
description = TranslatableComponent(translation.add("phantom_attractor.desc", "Put together a Phantom Attractor, to be able to fight Phantoms as Android again")), russian("Вечноспящий Декой")
},
description = translation.add("phantom_attractor.desc", "Put together a Phantom Attractor, to be able to fight Phantoms as Android again") {
russian("Создайте Приманщик Фантомов, для привлечения Фантомов вновь, будучи Андроидом")
},
) )
.addCriterion("has_item", criterion(MItems.PHANTOM_ATTRACTOR)) .addCriterion("has_item", criterion(MItems.PHANTOM_ATTRACTOR))
.save(serializer, modLocation("regular/phantom_attractor"), existingFileHelper) .save(serializer, modLocation("regular/phantom_attractor"), existingFileHelper)
@ -137,8 +169,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(attractor) .parent(attractor)
.display( .display(
itemStack = ItemStack(MItems.PHANTOM_ATTRACTOR), itemStack = ItemStack(MItems.PHANTOM_ATTRACTOR),
title = TranslatableComponent(translation.add("phantom_attractor_research", "Deception of Phantoms")), title = translation.add("phantom_attractor_research", "Deception of Phantoms") {
description = TranslatableComponent(translation.add("phantom_attractor_research.desc", "Research into how to attract Phantoms the same way as the ones who need to sleep")), russian("Обман Фантомов")
},
description = translation.add("phantom_attractor_research.desc", "Research into how to attract Phantoms the same way as the ones who need to sleep") {
russian("Исследуйте привлечение Фантомов, чтоб привлекать их так же, как те, кому нужно спать")
},
) )
.addCriterion("researched", AndroidResearchTrigger.Instance(modLocation(MNames.PHANTOM_ATTRACTOR))) .addCriterion("researched", AndroidResearchTrigger.Instance(modLocation(MNames.PHANTOM_ATTRACTOR)))
.save(serializer, modLocation("regular/phantom_attractor_research"), existingFileHelper) .save(serializer, modLocation("regular/phantom_attractor_research"), existingFileHelper)
@ -147,8 +183,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(root) .parent(root)
.display( .display(
itemStack = ItemStack(MItems.ANDROID_STATION), itemStack = ItemStack(MItems.ANDROID_STATION),
title = TranslatableComponent(translation.add("research_anything", "New Trick")), title = translation.add("research_anything", "New Trick") {
description = TranslatableComponent(translation.add("research_anything.desc", "Research anything as Android")), russian("Новый Фокус")
},
description = translation.add("research_anything.desc", "Research anything as Android") {
russian("Исследуйте что либо за Андроида")
},
) )
.addCriterion("research_anything", AndroidResearchTrigger.Instance(null)) .addCriterion("research_anything", AndroidResearchTrigger.Instance(null))
.save(serializer, modLocation("android/research_anything"), existingFileHelper) .save(serializer, modLocation("android/research_anything"), existingFileHelper)
@ -157,8 +197,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(researchAnything) .parent(researchAnything)
.display( .display(
itemStack = ItemStack(Items.WATER_BUCKET), itemStack = ItemStack(Items.WATER_BUCKET),
title = TranslatableComponent(translation.add("air_bags", "Patching Up Wooden Vessel")), title = translation.add("air_bags", "Patching Up Wooden Vessel") {
description = TranslatableComponent(translation.add("air_bags.desc", "Research Air Bags as Android, to float in water")), russian("В Бочку - Затычку")
},
description = translation.add("air_bags.desc", "Research Air Bags as Android, to float in water") {
russian("Исследуйте Воздушные Мешки, дабы быть вновь поплавком в воде")
},
) )
.addCriterion("air_bags", AndroidResearchTrigger.Instance(modLocation(MNames.AIR_BAGS))) .addCriterion("air_bags", AndroidResearchTrigger.Instance(modLocation(MNames.AIR_BAGS)))
.save(serializer, modLocation("android/research_air_bags"), existingFileHelper) .save(serializer, modLocation("android/research_air_bags"), existingFileHelper)
@ -167,8 +211,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(researchAnything) .parent(researchAnything)
.display( .display(
itemStack = ItemStack(Items.ENDER_EYE), itemStack = ItemStack(Items.ENDER_EYE),
title = TranslatableComponent(translation.add("night_vision", "Second Pair of Eyes")), title = translation.add("night_vision", "Second Pair of Eyes") {
description = TranslatableComponent(translation.add("night_vision.desc", "Research Night Vision as Android, to see in the dark")), russian("Вторая Пара Глаз")
},
description = translation.add("night_vision.desc", "Research Night Vision as Android, to see in the dark") {
russian("Исследуйте Ночное Зрение за Андроида, дабы видеть во тьме")
},
) )
.addCriterion("night_vision", AndroidResearchTrigger.Instance(modLocation(MNames.NIGHT_VISION))) .addCriterion("night_vision", AndroidResearchTrigger.Instance(modLocation(MNames.NIGHT_VISION)))
.save(serializer, modLocation("android/research_night_vision"), existingFileHelper) .save(serializer, modLocation("android/research_night_vision"), existingFileHelper)
@ -177,8 +225,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(researchAnything) .parent(researchAnything)
.display( .display(
itemStack = ItemStack(MItems.MATTER_TRANSFORM_MATRIX), itemStack = ItemStack(MItems.MATTER_TRANSFORM_MATRIX),
title = TranslatableComponent(translation.add("nanobots", "Nanomachines, Son!")), title = translation.add("nanobots", "Nanomachines, Son!") {
description = TranslatableComponent(translation.add("nanobots.desc", "Research Nanobots as Android, to unlock potent research that come after it")), russian("Наномашины, Дитя!")
},
description = translation.add("nanobots.desc", "Research Nanobots as Android, to unlock potent research that come after it") {
russian("Исследуйте Наномашины за Андроида, для разблокировки очень больших возможностей")
},
hidden = true hidden = true
) )
.addCriterion("nanobots", AndroidResearchTrigger.Instance(modLocation(MNames.NANOBOTS))) .addCriterion("nanobots", AndroidResearchTrigger.Instance(modLocation(MNames.NANOBOTS)))
@ -188,8 +240,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(nanobots) .parent(nanobots)
.display( .display(
itemStack = ItemStack(Items.SHIELD), itemStack = ItemStack(Items.SHIELD),
title = TranslatableComponent(translation.add("nanobots_armor_deflect", "Like a Concrete Wall")), title = translation.add("nanobots_armor_deflect", "Like a Concrete Wall") {
description = TranslatableComponent(translation.add("nanobots_armor_deflect.desc", "Have Nanobots absorb more than 5 hears of damage while you are left still functioning")), russian("Как за Каменной Стеной")
},
description = translation.add("nanobots_armor_deflect.desc", "Have Nanobots absorb more than 5 hears of damage while you are left still functioning") {
russian("Дайте Наноботам поглотить 5 сердец урона, не отключившись насовсем")
},
hidden = true, hidden = true,
frameType = FrameType.GOAL frameType = FrameType.GOAL
) )
@ -200,8 +256,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(shielding) .parent(shielding)
.display( .display(
itemStack = ItemStack(Items.SHIELD), itemStack = ItemStack(Items.SHIELD),
title = TranslatableComponent(translation.add("nanobots_armor_deflect2", "Unstoppable Force vs Immovable Object")), title = translation.add("nanobots_armor_deflect2", "Unstoppable Force vs Immovable Object") {
description = TranslatableComponent(translation.add("nanobots_armor_deflect2.desc", "Have Nanobots absorb more than 10 hears of damage while you are left still functioning")), russian("Неостановимая Сила против Недвижимого Объекта")
},
description = translation.add("nanobots_armor_deflect2.desc", "Have Nanobots absorb more than 10 hears of damage while you are left still functioning") {
russian("Дайте Наноботам поглотить 10 сердец урона, не отключившись насовсем")
},
hidden = true, hidden = true,
frameType = FrameType.CHALLENGE frameType = FrameType.CHALLENGE
) )
@ -212,8 +272,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(researchAnything) .parent(researchAnything)
.display( .display(
itemStack = ItemStack(Items.FEATHER), itemStack = ItemStack(Items.FEATHER),
title = TranslatableComponent(translation.add("fall_dampeners_save", "Lucky Landing")), title = translation.add("fall_dampeners_save", "Lucky Landing") {
description = TranslatableComponent(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 research") {
russian("Выживите после падения, которое было бы фатальным без исследования Смягчителей Падения")
},
frameType = FrameType.GOAL frameType = FrameType.GOAL
) )
.addCriterion("saved", FallDampenersSaveTrigger.Instance) .addCriterion("saved", FallDampenersSaveTrigger.Instance)
@ -223,8 +287,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(researchAnything) .parent(researchAnything)
.display( .display(
itemStack = ItemStack(Items.SKELETON_SKULL), itemStack = ItemStack(Items.SKELETON_SKULL),
title = TranslatableComponent(translation.add("ender_teleport_fall_death", "Navigation Error")), title = translation.add("ender_teleport_fall_death", "Navigation Error") {
description = TranslatableComponent(translation.add("ender_teleport_fall_death.desc", "Fall to your death moments after Teleporting")), russian("Ошибка Навигации")
},
description = translation.add("ender_teleport_fall_death.desc", "Fall to your demise moments after Teleporting as Android") {
russian("Разбейтесь насмерть через мгновения после телепортации за Андроида")
},
frameType = FrameType.GOAL, frameType = FrameType.GOAL,
hidden = true hidden = true
) )
@ -235,8 +303,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(nanobots) .parent(nanobots)
.display( .display(
itemStack = ItemStack(Items.GOLDEN_APPLE), itemStack = ItemStack(Items.GOLDEN_APPLE),
title = TranslatableComponent(translation.add("regen", "Field Repair Done Easy")), title = translation.add("regen", "Field Repair Done Easy") {
description = TranslatableComponent(translation.add("regen.desc", "Research Nanobots Regeneration as Android")), russian("Починка на Ходу - Легко")
},
description = translation.add("regen.desc", "Research Nanobots Regeneration as Android") {
russian("Исследуйте Регенерацию Наноботов за Андроида")
},
) )
.addCriterion("regen0", AndroidResearchTrigger.Instance(modLocation(MNames.NANOBOTS_REGENERATION_1))) .addCriterion("regen0", AndroidResearchTrigger.Instance(modLocation(MNames.NANOBOTS_REGENERATION_1)))
.save(serializer, modLocation("android/regen"), existingFileHelper) .save(serializer, modLocation("android/regen"), existingFileHelper)
@ -245,8 +317,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(regen) .parent(regen)
.display( .display(
itemStack = ItemStack(Items.ENCHANTED_GOLDEN_APPLE), itemStack = ItemStack(Items.ENCHANTED_GOLDEN_APPLE),
title = TranslatableComponent(translation.add("regen_all", "Field Repair Done Effortless")), title = translation.add("regen_all", "Field Repair Done Effortless") {
description = TranslatableComponent(translation.add("regen_all.desc", "Max out Nanobots Regeneration research")), russian("Починка на Ходу - Без Усилий")
},
description = translation.add("regen_all.desc", "Max out Nanobots Regeneration research") {
russian("Полностью исследуйте Регенерацию Наноботов за Андроида")
},
frameType = FrameType.GOAL, frameType = FrameType.GOAL,
) )
.addCriterion("regen0", AndroidResearchTrigger.Instance(modLocation(MNames.NANOBOTS_REGENERATION_1))) .addCriterion("regen0", AndroidResearchTrigger.Instance(modLocation(MNames.NANOBOTS_REGENERATION_1)))
@ -259,8 +335,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(researchAnything) .parent(researchAnything)
.display( .display(
itemStack = ItemStack(MItems.ANDROID_STATION), itemStack = ItemStack(MItems.ANDROID_STATION),
title = TranslatableComponent(translation.add("research_all", "Mecha-agnomination")), title = translation.add("research_all", "Mecha-Agnomination") {
description = TranslatableComponent(translation.add("research_all.desc", "Research everything (that don't block any other research)")), russian("Меха-Зумие")
},
description = translation.add("research_all.desc", "Research everything as Android (that don't block or get blocked by any other research)") {
russian("Исследуйте все технологии за Андроида (которые не блокируют и не блокируются другими технологиями)")
},
frameType = FrameType.CHALLENGE frameType = FrameType.CHALLENGE
) )
.rewards(AdvancementRewards.Builder.experience(400).addLootTable(modLocation("research_all_android"))) .rewards(AdvancementRewards.Builder.experience(400).addLootTable(modLocation("research_all_android")))
@ -277,8 +357,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(researchAnything) .parent(researchAnything)
.display( .display(
itemStack = ItemStack(Items.PISTON), itemStack = ItemStack(Items.PISTON),
title = TranslatableComponent(translation.add("shockwave", "Supersonic Landing")), title = translation.add("shockwave", "Supersonic Landing") {
description = TranslatableComponent(translation.add("shockwave.desc", "Perform a Shockwave upon landing")), russian("Сверхзвуковое Приземление")
},
description = translation.add("shockwave.desc", "Make a Shockwave upon landing") {
russian("Вызовите Ударную Волну при приземлении")
},
) )
.addCriterion("shockwave", ShockwaveTrigger.Instance) .addCriterion("shockwave", ShockwaveTrigger.Instance)
.save(serializer, modLocation("android/shockwave"), existingFileHelper) .save(serializer, modLocation("android/shockwave"), existingFileHelper)
@ -287,8 +371,12 @@ fun addAndroidAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(shockwave) .parent(shockwave)
.display( .display(
itemStack = ItemStack(Items.WARDEN_SPAWN_EGG), itemStack = ItemStack(Items.WARDEN_SPAWN_EGG),
title = TranslatableComponent(translation.add("shockwave_warden", "Music To Their Ears")), title = translation.add("shockwave_warden", "Music to their Ears") {
description = TranslatableComponent(translation.add("shockwave_warden.desc", "Hurt Warden using Shockwave ability")), russian("Музыка для их Ушей")
},
description = translation.add("shockwave_warden.desc", "Hurt Warden using Shockwave ability") {
russian("Нанесите Хранителю урон используя Ударную Волну")
},
frameType = FrameType.GOAL frameType = FrameType.GOAL
) )
.addCriterion("shockwave_warden", ShockwaveDamageMobTrigger.Instance(EntityPredicate.Builder.entity().of(EntityType.WARDEN).build().wrap())) .addCriterion("shockwave_warden", ShockwaveDamageMobTrigger.Instance(EntityPredicate.Builder.entity().of(EntityType.WARDEN).build().wrap()))

View File

@ -2,10 +2,12 @@ package ru.dbotthepony.mc.otm.datagen.advancements
import net.minecraft.advancements.Advancement import net.minecraft.advancements.Advancement
import net.minecraft.advancements.RequirementsStrategy import net.minecraft.advancements.RequirementsStrategy
import net.minecraft.network.chat.contents.TranslatableContents
import net.minecraft.world.item.Item import net.minecraft.world.item.Item
import net.minecraft.world.item.ItemStack import net.minecraft.world.item.ItemStack
import net.minecraftforge.common.data.ExistingFileHelper import net.minecraftforge.common.data.ExistingFileHelper
import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.core.TranslatableComponent
import ru.dbotthepony.mc.otm.core.key
import ru.dbotthepony.mc.otm.core.registryName import ru.dbotthepony.mc.otm.core.registryName
import ru.dbotthepony.mc.otm.datagen.lang.MatteryLanguageProvider import ru.dbotthepony.mc.otm.datagen.lang.MatteryLanguageProvider
import ru.dbotthepony.mc.otm.datagen.modLocation import ru.dbotthepony.mc.otm.datagen.modLocation
@ -13,17 +15,28 @@ import ru.dbotthepony.mc.otm.registry.MItemTags
import ru.dbotthepony.mc.otm.registry.MItems import ru.dbotthepony.mc.otm.registry.MItems
import java.util.function.Consumer import java.util.function.Consumer
private data class CraftEntry(val item: Item, val englishName: String, val englishSuffix: String? = null) private data class CraftEntry(
val item: Item,
val englishName: String,
val englishSuffix: String? = null,
val russianName: String? = null,
val russianSuffix: String? = null,
)
fun addMachineAdvancements(serializer: Consumer<Advancement>, existingFileHelper: ExistingFileHelper, lang: MatteryLanguageProvider) { fun addMachineAdvancements(serializer: Consumer<Advancement>, existingFileHelper: ExistingFileHelper, lang: MatteryLanguageProvider) {
val translation = lang.english.Prepended("otm.advancements.machine") val translation = lang.MultiBuilder("otm.advancements.machine")
val root = AdvancementBuilder() val root = AdvancementBuilder()
.requirements(RequirementsStrategy.OR) .requirements(RequirementsStrategy.OR)
.display( .display(
itemStack = ItemStack(MItems.CHEMICAL_GENERATOR), itemStack = ItemStack(MItems.CHEMICAL_GENERATOR),
title = TranslatableComponent(translation.add("root", "Tritanium Empowered Machinery")), title = translation.add("root", "Tritanium Empowered Machinery") {
description = TranslatableComponent(translation.add("root.desc", "Do not drop in anything if you want the latter preserved intact")), russian("Тританово Запитанные Механизмы")
},
description = translation.add("root.desc", "Do not drop in anything if you want the latter preserved intact") {
russian("Не роняйте ничего внутрь если хотите чтоб последнее осталось таким, какое оно есть")
},
showToast = false, showToast = false,
announceChat = false, announceChat = false,
background = modLocation("textures/block/decorative/floor_tiles_gray.png") background = modLocation("textures/block/decorative/floor_tiles_gray.png")
@ -37,8 +50,12 @@ fun addMachineAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(root) .parent(root)
.display( .display(
itemStack = ItemStack(MItems.CHEMICAL_GENERATOR), itemStack = ItemStack(MItems.CHEMICAL_GENERATOR),
title = TranslatableComponent(translation.add("chemical_generator", "Burning the Organics")), title = translation.add("chemical_generator", "Burning the Organics") {
description = TranslatableComponent(translation.add("chemical_generator.desc", "Craft a Chemical Generator, better to put it outside")), russian("Сжигание Органики")
},
description = translation.add("chemical_generator.desc", "Craft a Chemical Generator, better to put it outside") {
russian("Создайте Химический Генератор. Лучше установить его снаружи")
},
) )
.addCriterion("has_machine", criterion(MItems.CHEMICAL_GENERATOR)) .addCriterion("has_machine", criterion(MItems.CHEMICAL_GENERATOR))
.save(serializer, modLocation("machines/chemical_generator"), existingFileHelper) .save(serializer, modLocation("machines/chemical_generator"), existingFileHelper)
@ -47,24 +64,38 @@ fun addMachineAdvancements(serializer: Consumer<Advancement>, existingFileHelper
.parent(chem) .parent(chem)
.display( .display(
itemStack = ItemStack(MItems.PLATE_PRESS), itemStack = ItemStack(MItems.PLATE_PRESS),
title = TranslatableComponent(translation.add("plate_press", "Bending the Material")), title = translation.add("plate_press", "Bending the Material") {
description = TranslatableComponent(translation.add("plate_press.desc", "Craft a Plate Press, avoid having limbs inside during operation")), russian("Раскатка Металла")
},
description = translation.add("plate_press.desc", "Craft a Plate Press, avoid having limbs inside at all times") {
russian("Создайте Пресс Пластин, не суйте свои или чужие конечности внутрь")
},
) )
.addCriterion("has_machine", criterion(MItems.PLATE_PRESS)) .addCriterion("has_machine", criterion(MItems.PLATE_PRESS))
.save(serializer, modLocation("machines/plate_press"), existingFileHelper) .save(serializer, modLocation("machines/plate_press"), existingFileHelper)
val entries = listOf( val entries = listOf(
CraftEntry(MItems.MATTER_SCANNER, "Scanning Things that Matter"), CraftEntry(MItems.MATTER_SCANNER, "Scanning Things that Matter",
CraftEntry(MItems.PATTERN_STORAGE, "Digital Knowledge Library"), russianName = "Сканируем Вещи которые Материальны"),
CraftEntry(MItems.MATTER_DECOMPOSER, "Decaying the Atoms", "Keep your limbs outside of the working chamber at all times"), CraftEntry(MItems.PATTERN_STORAGE, "Digital Knowledge Library",
CraftEntry(MItems.MATTER_PANEL, "Indexing the Library"), russianName = "Цифровая Библиотека Знаний"),
CraftEntry(MItems.MATTER_REPLICATOR, "Local Bakery", "Now let's bake some perfect bread"), CraftEntry(MItems.MATTER_DECOMPOSER, "Decaying the Atoms", "Keep your limbs outside of the working chamber at all times",
CraftEntry(MItems.MATTER_BOTTLER, "Transfusing Pure Matter", "For those who loved to play with water in their childhood"), russianName = "Разлагаем Атомы", russianSuffix = "Во всех ситуациях держите свои конечности вне рабочей камеры"),
CraftEntry(MItems.MATTER_RECYCLER, "Refine and Redefine", "This is what waste recycling should look like"), CraftEntry(MItems.MATTER_PANEL, "Indexing the Library",
CraftEntry(MItems.MATTER_CAPACITOR_BANK, "Modular Matter Tank"), russianName = "Индексируем Библиотеку"),
CraftEntry(MItems.MATTER_REPLICATOR, "Local Bakery", "Now let's bake some perfect bread",
russianName = "Местная Выпечка", russianSuffix = "А теперь давайте выпечем немного идеального хлеба"),
CraftEntry(MItems.MATTER_BOTTLER, "Transfusing Pure Matter", "For those who loved to play with water in their childhood",
russianName = "Переливаем Чистую Материю", russianSuffix = "Для тех, кто любил играться в воде в детстве"),
CraftEntry(MItems.MATTER_RECYCLER, "Refine and Redefine", "This is what waste recycling should look like",
russianName = "Переработка и Перегонка", russianSuffix = "Вот он, пик переработки отходов"),
CraftEntry(MItems.MATTER_CAPACITOR_BANK, "Modular Matter Tank",
russianName = "Модульный Бак Материи"),
CraftEntry(MItems.ENERGY_COUNTER, "Visualize Power Burn"), CraftEntry(MItems.ENERGY_COUNTER, "Visualize Power Burn",
CraftEntry(MItems.BATTERY_BANK, "Batteries Not Included", "By all means avoid the urge to hammer incompatible batteries into the power bus."), russianName = "Визуализация Сжигания Энергии"),
CraftEntry(MItems.BATTERY_BANK, "Batteries Not Included", "By all means avoid the urge to hammer incompatible batteries into the power bus.",
russianName = "Батарейки в Комплект не Входят", russianSuffix = "Пожалуйста, воздержитесь от вбивания кувалдой несовместимых батарей в энергетическую шину."),
) )
val built = mutableMapOf<Item, Advancement>() val built = mutableMapOf<Item, Advancement>()
@ -72,12 +103,24 @@ fun addMachineAdvancements(serializer: Consumer<Advancement>, existingFileHelper
for (entry in entries) { for (entry in entries) {
val path = entry.item.registryName!!.path val path = entry.item.registryName!!.path
val translated = translation.add("$path.desc", "Craft a %s%s") {
russian("Создайте %s%s")
}
val translatedSuffix = translation.add("$path.suffix", if (entry.englishSuffix != null) ". " + entry.englishSuffix else "") {
russian(if (entry.russianSuffix != null) ". " + entry.russianSuffix else "")
}
built[entry.item] = AdvancementBuilder() built[entry.item] = AdvancementBuilder()
.parent(press) .parent(press)
.display( .display(
itemStack = ItemStack(entry.item), itemStack = ItemStack(entry.item),
title = TranslatableComponent(translation.add(path, entry.englishName)), title = translation.add(path, entry.englishName) {
description = TranslatableComponent(translation.add("$path.desc", "Craft a %s%s"), entry.item.description, if (entry.englishSuffix != null) ". " + entry.englishSuffix else ""), if (entry.russianName != null) {
russian(entry.russianName)
}
},
description = TranslatableComponent(translated.contents.key, entry.item.description, translatedSuffix),
) )
.addCriterion("has_machine", criterion(entry.item)) .addCriterion("has_machine", criterion(entry.item))
.save(serializer, modLocation("machines/$path"), existingFileHelper) .save(serializer, modLocation("machines/$path"), existingFileHelper)

View File

@ -10,6 +10,8 @@ import com.google.gson.JsonPrimitive
import net.minecraft.core.BlockPos import net.minecraft.core.BlockPos
import net.minecraft.nbt.CompoundTag import net.minecraft.nbt.CompoundTag
import net.minecraft.network.FriendlyByteBuf import net.minecraft.network.FriendlyByteBuf
import net.minecraft.network.chat.ComponentContents
import net.minecraft.network.chat.contents.TranslatableContents
import net.minecraft.resources.ResourceLocation import net.minecraft.resources.ResourceLocation
import net.minecraft.world.entity.Entity import net.minecraft.world.entity.Entity
import net.minecraft.world.item.Item import net.minecraft.world.item.Item
@ -248,3 +250,6 @@ inline fun <T> MutableList<out Reference<out T>>.forValidRefs(fn: (T) -> Unit) {
} }
} }
} }
val ComponentContents.key: String
get() = (this as? TranslatableContents ?: throw ClassCastException("$this is not a TranslatableContents"))?.key