diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/models/block/state/builder/BuilderApply.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/models/block/state/builder/BuilderApply.kt index 46ca7ed43..11324a884 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/models/block/state/builder/BuilderApply.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/models/block/state/builder/BuilderApply.kt @@ -14,6 +14,7 @@ package de.bixilon.minosoft.gui.rendering.models.block.state.builder import de.bixilon.minosoft.gui.rendering.models.block.state.apply.BlockStateApply +import de.bixilon.minosoft.gui.rendering.models.block.state.baked.BakedModel import de.bixilon.minosoft.gui.rendering.models.block.state.render.BlockRender import de.bixilon.minosoft.gui.rendering.system.base.texture.TextureManager @@ -22,6 +23,20 @@ class BuilderApply( ) : BlockStateApply { override fun bake(textures: TextureManager): BlockRender? { - TODO("Not yet implemented") + val static: MutableList = mutableListOf() + val dynamic: MutableList = mutableListOf() + + for (apply in this.applies) { + val baked = apply.bake(textures) ?: continue + if (baked is BakedModel) { + static += baked + } else { + dynamic += baked + } + } + + if (static.isEmpty() && dynamic.isEmpty()) return null + + TODO("Can not combine them yet") } } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/models/block/state/builder/condition/OrCondition.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/models/block/state/builder/condition/OrCondition.kt index 28bb1a544..355e1d61f 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/models/block/state/builder/condition/OrCondition.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/models/block/state/builder/condition/OrCondition.kt @@ -31,7 +31,15 @@ class OrCondition( const val KEY = "OR" fun deserialize(data: List): OrCondition? { - TODO() + val conditions: MutableSet = mutableSetOf() + + for (entry in data) { + conditions += AndCondition.deserialize(entry) ?: continue + } + + if (conditions.isEmpty()) return null + + return OrCondition(conditions) } } }