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