From dd507247965f47740bd1a22a2cbe1598948daf1b Mon Sep 17 00:00:00 2001 From: Bixilon Date: Tue, 18 Oct 2022 21:29:17 +0200 Subject: [PATCH] message type generator --- .../bixilon/pixlyzer/generator/Generators.kt | 1 + .../generators/MessageTypeGenerator.kt | 47 +++++++++++++++++++ wrapper/data | 2 +- 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 src/main/kotlin/de/bixilon/pixlyzer/generator/generators/MessageTypeGenerator.kt diff --git a/src/main/kotlin/de/bixilon/pixlyzer/generator/Generators.kt b/src/main/kotlin/de/bixilon/pixlyzer/generator/Generators.kt index 9f0a8da..819bbd8 100644 --- a/src/main/kotlin/de/bixilon/pixlyzer/generator/Generators.kt +++ b/src/main/kotlin/de/bixilon/pixlyzer/generator/Generators.kt @@ -10,6 +10,7 @@ import de.bixilon.pixlyzer.generator.generators.variants.FrogVariantGenerator object Generators { val GENERATORS: List = mutableListOf( + MessageTypeGenerator, ArgumentTypeGenerator, SoundGroupGenerator, CatVariantGenerator, diff --git a/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/MessageTypeGenerator.kt b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/MessageTypeGenerator.kt new file mode 100644 index 0000000..5e4fa59 --- /dev/null +++ b/src/main/kotlin/de/bixilon/pixlyzer/generator/generators/MessageTypeGenerator.kt @@ -0,0 +1,47 @@ +package de.bixilon.pixlyzer.generator.generators + +import de.bixilon.pixlyzer.generator.Generator +import de.bixilon.pixlyzer.util.Util +import de.bixilon.pixlyzer.util.Util.JSON_MAP_TYPE +import de.bixilon.pixlyzer.util.Util.compound +import net.minecraft.text.Decoration +import net.minecraft.text.Decoration.Parameter +import net.minecraft.util.registry.BuiltinRegistries + +object MessageTypeGenerator : Generator( + "message_types" +) { + + override fun generate() { + val registry = BuiltinRegistries.MESSAGE_TYPE + for (type in registry) { + val identifier = registry.getId(type) + + val json = compound() + + json["id"] = registry.getRawId(type) + json["chat"] = type.chat.serialize() + json["narration"] = type.narration.serialize() + + this.data[identifier.toString()] = json + } + } + + fun Decoration.serialize(): Map { + return mapOf( + "translation_key" to translationKey, + "parameters" to parameters.serialize(), + "style" to Util.MAPPER.convertValue(style, JSON_MAP_TYPE), + ) + } + + fun Collection.serialize(): List { + val output: MutableList = mutableListOf() + + for (entry in this) { + output += entry.name.lowercase() + } + + return output + } +} diff --git a/wrapper/data b/wrapper/data index bb23397..d91f7df 160000 --- a/wrapper/data +++ b/wrapper/data @@ -1 +1 @@ -Subproject commit bb23397ad61589e90a61edcffebbe6410af90b45 +Subproject commit d91f7dfc1bd1578f78ed55db4bb6ba07ccd802b1