BlockStateDefinition

@Serializable
data class BlockStateDefinition(val variants: Map<BlockStateDefinition.Variant, @Serializable(with = ValueOrListSerializer::class) List<BlockStateDefinition.Model>> = emptyMap(), val multipart: List<BlockStateDefinition.MultipartCase> = emptyList())

A block state definition.

Constructors

Link copied to clipboard
constructor(variants: Map<BlockStateDefinition.Variant, @Serializable(with = ValueOrListSerializer::class) List<BlockStateDefinition.Model>> = emptyMap(), multipart: List<BlockStateDefinition.MultipartCase> = emptyList())

Types

Link copied to clipboard
@Serializable
data class Model(val model: ResourcePath<ResourceType.Model>, val x: Int = 0, val y: Int = 0, val uvLock: Boolean = false, val weight: Int = 1)
Link copied to clipboard
@Serializable
data class MultipartCase(val condition: BlockStateDefinition.MultipartCase.Condition? = null, val apply: List<BlockStateDefinition.Model>)
Link copied to clipboard
@Serializable(with = BlockStateVariantAsStringSerializer::class)
data class Variant(val properties: Map<String, String>)

Properties

Link copied to clipboard
val variants: Map<BlockStateDefinition.Variant, @Serializable(with = ValueOrListSerializer::class) List<BlockStateDefinition.Model>>

Functions

Link copied to clipboard

Gets the models to be applied when the given properties are present. If both variants and multipart are defined, variants take precedence. Only if there is no matching variant, multipart is checked.