aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/features/debug/ExportedTestConstantMeta.kt
blob: f0250dc14fa21408a1549c6d521301bb0a863da1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package moe.nea.firmament.features.debug

import com.mojang.serialization.Codec
import com.mojang.serialization.codecs.RecordCodecBuilder
import java.util.Optional
import net.minecraft.SharedConstants
import moe.nea.firmament.Firmament

data class ExportedTestConstantMeta(
	val dataVersion: Int,
	val modVersion: Optional<String>,
) {
	companion object {
		val current = ExportedTestConstantMeta(
			SharedConstants.getGameVersion().saveVersion.id,
			Optional.of("Firmament ${Firmament.version.friendlyString}")
		)

		val CODEC: Codec<ExportedTestConstantMeta> = RecordCodecBuilder.create {
			it.group(
				Codec.INT.fieldOf("dataVersion").forGetter(ExportedTestConstantMeta::dataVersion),
				Codec.STRING.optionalFieldOf("modVersion").forGetter(ExportedTestConstantMeta::modVersion),
			).apply(it, ::ExportedTestConstantMeta)
		}
		val SOURCE_CODEC = CODEC.fieldOf("source").codec()
	}
}