mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-14 01:48:04 -04:00
fix wrong render order, improve block item rendering
This commit is contained in:
parent
4bfa947be0
commit
a4d173cd8a
@ -34,6 +34,6 @@ class RenderOrderTest {
|
||||
val result: MutableList<Int> = mutableListOf()
|
||||
order.iterateReverse { position, uv -> result += position; result += uv }
|
||||
|
||||
assertEquals(result, listOf(0, 9, 3, 6, 2, 7, 1, 8))
|
||||
assertEquals(result, listOf(3, 6, 2, 7, 1, 8, 0, 9))
|
||||
}
|
||||
}
|
||||
|
@ -97,7 +97,6 @@ class GUIRenderer(
|
||||
destinationRGB = BlendingFunctions.ONE_MINUS_SOURCE_ALPHA,
|
||||
sourceAlpha = BlendingFunctions.ONE,
|
||||
destinationAlpha = BlendingFunctions.ONE_MINUS_SOURCE_ALPHA,
|
||||
faceCulling = false,
|
||||
)
|
||||
shader.use()
|
||||
}
|
||||
|
@ -48,7 +48,7 @@ class BlockGUIConsumer(
|
||||
val tint = (lightTint.toBits() shl 8) or 0xFF
|
||||
|
||||
|
||||
gui.context.system.quadOrder.iterate { p, uv ->
|
||||
gui.context.system.quadOrder.iterateReverse { p, uv ->
|
||||
val vertexOffset = p * Vec3.length
|
||||
val uvOffset = uv * Vec2.length
|
||||
|
||||
@ -56,10 +56,9 @@ class BlockGUIConsumer(
|
||||
|
||||
val out = matrix * xyz
|
||||
|
||||
val x = ((out.x) * size.x) + offset.x + 1.0f
|
||||
val y = ((-out.y + 0.75f) * size.y) + offset.y
|
||||
|
||||
// TODO: depth
|
||||
val x = ((out.x + 0.8f) * size.x) + offset.x + 1.0f
|
||||
val y = ((-out.y + 0.81f) * size.y) + offset.y
|
||||
// values fresh from my ass
|
||||
|
||||
consumer.addVertex(x, y, textureId, uvData[uvOffset], uvData[uvOffset + 1], tint, options)
|
||||
}
|
||||
|
@ -28,11 +28,15 @@ data class ModelDisplay(
|
||||
val scale: Vec3 = Vec3.ONE,
|
||||
) {
|
||||
val matrix = Mat4()
|
||||
.translateAssign(translation)
|
||||
.rotateRadAssign(rotation)
|
||||
.scaleAssign(scale)
|
||||
.translateAssign(translation)
|
||||
.translateAssign(CENTER)
|
||||
.rotateRadAssign(rotation)
|
||||
.translateAssign(N_CENTER)
|
||||
|
||||
companion object {
|
||||
val CENTER = Vec3(0.5f)
|
||||
val N_CENTER = -CENTER
|
||||
val DEFAULT = ModelDisplay()
|
||||
|
||||
fun deserialize(data: JsonObject): ModelDisplay {
|
||||
|
@ -36,10 +36,9 @@ class RenderOrder(
|
||||
|
||||
inline fun iterateReverse(vertex: (position: Int, uv: Int) -> Unit) {
|
||||
if (size == 0) return
|
||||
this.vertex(0, vertex)
|
||||
|
||||
var index = order.size - 1 - 1 // index, element alignment
|
||||
while (index > 1) {
|
||||
while (index >= 0) {
|
||||
this.vertex(index, vertex)
|
||||
index -= 2
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user