mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-18 11:54:59 -04:00
block models: don't store empty face properties
This commit is contained in:
parent
b90591889d
commit
f4c707aae0
@ -24,11 +24,11 @@ import java.util.*
|
||||
|
||||
class MultipartBakedModel(
|
||||
val models: Array<BakedBlockModel>,
|
||||
val sizes: Array<Array<AbstractFaceProperties>>,
|
||||
val sizes: Array<Array<AbstractFaceProperties>?>,
|
||||
val particleTexture: AbstractTexture?,
|
||||
) : BakedBlockModel {
|
||||
|
||||
override fun getTouchingFaceProperties(random: Random, direction: Directions): Array<AbstractFaceProperties> {
|
||||
override fun getTouchingFaceProperties(random: Random, direction: Directions): Array<AbstractFaceProperties>? {
|
||||
return sizes[direction.ordinal]
|
||||
}
|
||||
|
||||
|
@ -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<AbstractFaceProperties> {
|
||||
return getModel(random)?.getTouchingFaceProperties(random, direction) ?: arrayOf()
|
||||
override fun getTouchingFaceProperties(random: Random, direction: Directions): Array<AbstractFaceProperties>? {
|
||||
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<BlockState?>, light: ByteArray, tints: IntArray?): Boolean {
|
||||
|
@ -50,11 +50,15 @@ class UnbakedMultipartModel(
|
||||
}
|
||||
val finalFaces: Array<Array<AbstractFaceProperties>?> = 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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user