fix: Incorrect scissors in storage overlay

This commit is contained in:
Linnea Gräf
2025-01-12 15:18:32 +01:00
parent f828a6c9ec
commit db269a6bfb
2 changed files with 9 additions and 4 deletions

View File

@@ -35,6 +35,7 @@ import moe.nea.firmament.util.mc.FakeSlot
import moe.nea.firmament.util.mc.displayNameAccordingToNbt
import moe.nea.firmament.util.mc.loreAccordingToNbt
import moe.nea.firmament.util.render.drawGuiTexture
import moe.nea.firmament.util.render.enableScissorWithoutTranslation
import moe.nea.firmament.util.tr
import moe.nea.firmament.util.unformattedString
@@ -241,9 +242,9 @@ class StorageOverlayScreen : Screen(Text.literal("")) {
fun createScissors(context: DrawContext) {
val rect = getScrollPanelInner()
context.enableScissor(
rect.minX, rect.minY,
rect.maxX, rect.maxY
context.enableScissorWithoutTranslation(
rect.minX.toFloat(), rect.minY.toFloat(),
rect.maxX.toFloat(), rect.maxY.toFloat(),
)
}

View File

@@ -1,11 +1,15 @@
package moe.nea.firmament.util.render
import org.joml.Matrix4f
import org.joml.Vector4f
import net.minecraft.client.gui.DrawContext
fun DrawContext.enableScissorWithTranslation(x1: Float, y1: Float, x2: Float, y2: Float) {
val pMat = matrices.peek().positionMatrix
enableScissor(x1.toInt(), y1.toInt(), x2.toInt(), y2.toInt())
}
fun DrawContext.enableScissorWithoutTranslation(x1: Float, y1: Float, x2: Float, y2: Float) {
val pMat = matrices.peek().positionMatrix.invert(Matrix4f())
val target = Vector4f()
target.set(x1, y1, 0f, 1f)