diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/models/baked/MultipartBakedModel.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/models/baked/MultipartBakedModel.kt index cad860ff8..fa6185110 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/models/baked/MultipartBakedModel.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/models/baked/MultipartBakedModel.kt @@ -24,11 +24,11 @@ import java.util.* class MultipartBakedModel( val models: Array, - val sizes: Array>, + val sizes: Array?>, val particleTexture: AbstractTexture?, ) : BakedBlockModel { - override fun getTouchingFaceProperties(random: Random, direction: Directions): Array { + override fun getTouchingFaceProperties(random: Random, direction: Directions): Array? { return sizes[direction.ordinal] } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/models/baked/WeightedBakedModel.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/models/baked/WeightedBakedModel.kt index fd0c83426..64cb7b81a 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/models/baked/WeightedBakedModel.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/models/baked/WeightedBakedModel.kt @@ -21,6 +21,7 @@ import de.bixilon.minosoft.gui.rendering.models.properties.AbstractFacePropertie import de.bixilon.minosoft.gui.rendering.system.base.texture.texture.AbstractTexture import de.bixilon.minosoft.gui.rendering.util.VecUtil import de.bixilon.minosoft.gui.rendering.world.mesh.WorldMesh +import de.bixilon.minosoft.util.Broken import java.util.* import kotlin.math.abs @@ -38,8 +39,8 @@ class WeightedBakedModel( this.totalWeight = totalWeight } - override fun getTouchingFaceProperties(random: Random, direction: Directions): Array { - return getModel(random)?.getTouchingFaceProperties(random, direction) ?: arrayOf() + override fun getTouchingFaceProperties(random: Random, direction: Directions): Array? { + return getModel(random)?.getTouchingFaceProperties(random, direction) } private fun getModel(random: Random): BakedBlockModel? { @@ -55,7 +56,7 @@ class WeightedBakedModel( } } - throw IllegalStateException("Could not find a model: This should never happen!") + Broken("Could not find a model: This should never happen!") } override fun singleRender(position: Vec3i, mesh: WorldMesh, random: Random, blockState: BlockState, neighbours: Array, light: ByteArray, tints: IntArray?): Boolean { diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/block/UnbakedMultipartModel.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/block/UnbakedMultipartModel.kt index fda5391c6..6260c3607 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/block/UnbakedMultipartModel.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/models/unbaked/block/UnbakedMultipartModel.kt @@ -50,11 +50,15 @@ class UnbakedMultipartModel( } val finalFaces: Array?> = arrayOfNulls(Directions.SIZE) for (index in 0 until Directions.SIZE) { - finalFaces[index] = sizes[index].toTypedArray() + val faces = sizes[index] + if (faces.isEmpty()) { + continue + } + finalFaces[index] = faces.toTypedArray() } - return MultipartBakedModel(baked.unsafeCast(), finalFaces.unsafeCast(), particleTexture) + return MultipartBakedModel(baked.unsafeCast(), finalFaces, particleTexture) } private companion object {