diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/overlay/overlays/arm/ArmMesh.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/overlay/overlays/arm/ArmMesh.kt index ad0a20eef..8994b337c 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/overlay/overlays/arm/ArmMesh.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/overlay/overlays/arm/ArmMesh.kt @@ -43,15 +43,17 @@ open class ArmMesh(renderWindow: RenderWindow, primitiveType: PrimitiveTypes = r fun addArm(model: SkeletalModel, arm: Arms, skin: ShaderTexture) { - val element = model.elements.find { - it.name == when (arm) { - Arms.LEFT -> "LEFT_ARM" - Arms.RIGHT -> "RIGHT_ARM" + val elements = model.elements.filter { + when (arm) { + Arms.LEFT -> it.name == "LEFT_ARM" || it.name == "LEFT_SLEEVE" + Arms.RIGHT -> it.name == "RIGHT_ARM" || it.name == "RIGHT_SLEEVE" } - } ?: return + } val textures = Int2ObjectOpenHashMap() textures[0] = skin - element.bake(model, textures, emptyMap(), this) + for (element in elements) { + element.bake(model, textures, emptyMap(), this) + } } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/overlay/overlays/arm/ArmOverlay.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/overlay/overlays/arm/ArmOverlay.kt index bec5a200a..805373fa2 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/overlay/overlays/arm/ArmOverlay.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/framebuffer/world/overlay/overlays/arm/ArmOverlay.kt @@ -78,22 +78,20 @@ class ArmOverlay(private val renderWindow: RenderWindow) : Overlay { } private fun calculateTransform(): Mat4 { - val screen = renderWindow.window.sizef - - val projection = renderWindow.camera.matrixHandler.projectionMatrix val matrix = Mat4() + matrix.rotateAssign(45.0f.rad, Vec3(0, 0, 1)) matrix.rotateAssign(-5.0f.rad, Vec3(0, 1, 0)) matrix.rotateAssign(130.0f.rad, Vec3(1, 0, 0)) a += 1 - matrix.translateAssign(Vec3(if (arm == Arms.LEFT) 0.2f else -0.2f, 0, 0)) // move inner side of arm to 0|0|0 + matrix.translateAssign(Vec3(if (arm == Arms.LEFT) 0.25f else -0.25f, 0, 0)) // move inner side of arm to 0|0|0 // matrix.scaleAssign(BLOCK_RESOLUTION) // make a pixel one pixel matrix.translateAssign(-0.5f) - + matrix.translateAssign(Vec3(0, 0.3, 1.0)) val a = projection * matrix @@ -107,6 +105,7 @@ class ArmOverlay(private val renderWindow: RenderWindow) : Overlay { renderWindow.renderSystem.clear(IntegratedBufferTypes.DEPTH_BUFFER) renderWindow.renderSystem.disable(RenderingCapabilities.FACE_CULLING) renderWindow.renderSystem.enable(RenderingCapabilities.DEPTH_TEST) + renderWindow.renderSystem.enable(RenderingCapabilities.BLENDING) renderWindow.renderSystem.depthMask = true mesh.unload() updateMesh() diff --git a/src/main/resources/assets/minosoft/rendering/shader/arm/arm.fsh b/src/main/resources/assets/minosoft/rendering/shader/arm/arm.fsh index 7b989326b..e8efad605 100644 --- a/src/main/resources/assets/minosoft/rendering/shader/arm/arm.fsh +++ b/src/main/resources/assets/minosoft/rendering/shader/arm/arm.fsh @@ -26,5 +26,5 @@ in vec3 finTextureCoordinates; void main() { vec4 texelColor = getTexture(finTextureIndex, finTextureCoordinates); foutColor = texelColor; - foutColor.a = 1.0f; + // foutColor.a = 1.0f; }