fix: Incorrect scissors in storage overlay
This commit is contained in:
@@ -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(),
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user