aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/firmament/features/texturepack/CustomModelOverrideParser.kt
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2024-05-11 03:28:05 +0200
committerLinnea Gräf <nea@nea.moe>2024-05-14 18:45:59 +0200
commit7682534f6fd139b75f24c79b76098fe05f0fa0fe (patch)
tree34d94c8fd7b531da128ff0130bf463393e2560e0 /src/main/kotlin/moe/nea/firmament/features/texturepack/CustomModelOverrideParser.kt
parent53dc0c3b0a758ce2afff2637a5a5f22aa1733c56 (diff)
downloadfirmament-7682534f6fd139b75f24c79b76098fe05f0fa0fe.tar.gz
firmament-7682534f6fd139b75f24c79b76098fe05f0fa0fe.tar.bz2
firmament-7682534f6fd139b75f24c79b76098fe05f0fa0fe.zip
Add custom global textures
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/features/texturepack/CustomModelOverrideParser.kt')
-rw-r--r--src/main/kotlin/moe/nea/firmament/features/texturepack/CustomModelOverrideParser.kt18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/features/texturepack/CustomModelOverrideParser.kt b/src/main/kotlin/moe/nea/firmament/features/texturepack/CustomModelOverrideParser.kt
index ad1f436..d512dec 100644
--- a/src/main/kotlin/moe/nea/firmament/features/texturepack/CustomModelOverrideParser.kt
+++ b/src/main/kotlin/moe/nea/firmament/features/texturepack/CustomModelOverrideParser.kt
@@ -7,9 +7,27 @@
package moe.nea.firmament.features.texturepack
import com.google.gson.JsonObject
+import kotlinx.serialization.KSerializer
+import kotlinx.serialization.descriptors.SerialDescriptor
+import kotlinx.serialization.encoding.Decoder
+import kotlinx.serialization.encoding.Encoder
import net.minecraft.util.Identifier
object CustomModelOverrideParser {
+ object FirmamentRootPredicateSerializer : KSerializer<FirmamentModelPredicate> {
+ val delegateSerializer = kotlinx.serialization.json.JsonObject.serializer()
+ override val descriptor: SerialDescriptor
+ get() = SerialDescriptor("FirmamentModelRootPredicate", delegateSerializer.descriptor)
+
+ override fun deserialize(decoder: Decoder): FirmamentModelPredicate {
+ val json = decoder.decodeSerializableValue(delegateSerializer).intoGson() as JsonObject
+ return AndPredicate(parsePredicates(json).toTypedArray())
+ }
+
+ override fun serialize(encoder: Encoder, value: FirmamentModelPredicate) {
+ TODO("Cannot serialize firmament predicates")
+ }
+ }
val predicateParsers = mutableMapOf<Identifier, FirmamentModelPredicateParser>()