diff options
author | Linnea Gräf <nea@nea.moe> | 2024-08-09 00:49:36 +0200 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2024-08-09 02:20:41 +0200 |
commit | 1606188d9ad65c66e9d873497ea3271dbdadaf77 (patch) | |
tree | a33ea87c76bd672fe3902455742ba42ae8c91ee1 /src/main/kotlin/moe/nea/firmament/util/json | |
parent | 2a023d0a8d4e9af1dff21ea1bc997dfa0c686b14 (diff) | |
download | Firmament-1606188d9ad65c66e9d873497ea3271dbdadaf77.tar.gz Firmament-1606188d9ad65c66e9d873497ea3271dbdadaf77.tar.bz2 Firmament-1606188d9ad65c66e9d873497ea3271dbdadaf77.zip |
Add custom block textures
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/util/json')
-rw-r--r-- | src/main/kotlin/moe/nea/firmament/util/json/BlockPosSerializer.kt | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/util/json/BlockPosSerializer.kt b/src/main/kotlin/moe/nea/firmament/util/json/BlockPosSerializer.kt new file mode 100644 index 0000000..144b0a0 --- /dev/null +++ b/src/main/kotlin/moe/nea/firmament/util/json/BlockPosSerializer.kt @@ -0,0 +1,25 @@ +package moe.nea.firmament.util.json + +import kotlinx.serialization.KSerializer +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder +import kotlinx.serialization.serializer +import net.minecraft.util.math.BlockPos + +object BlockPosSerializer : KSerializer<BlockPos> { + val delegate = serializer<List<Int>>() + + override val descriptor: SerialDescriptor + get() = SerialDescriptor("BlockPos", delegate.descriptor) + + override fun deserialize(decoder: Decoder): BlockPos { + val list = decoder.decodeSerializableValue(delegate) + require(list.size == 3) + return BlockPos(list[0], list[1], list[2]) + } + + override fun serialize(encoder: Encoder, value: BlockPos) { + encoder.encodeSerializableValue(delegate, listOf(value.x, value.y, value.z)) + } +} |