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.displayNameAccordingToNbt
|
||||||
import moe.nea.firmament.util.mc.loreAccordingToNbt
|
import moe.nea.firmament.util.mc.loreAccordingToNbt
|
||||||
import moe.nea.firmament.util.render.drawGuiTexture
|
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.tr
|
||||||
import moe.nea.firmament.util.unformattedString
|
import moe.nea.firmament.util.unformattedString
|
||||||
|
|
||||||
@@ -241,9 +242,9 @@ class StorageOverlayScreen : Screen(Text.literal("")) {
|
|||||||
|
|
||||||
fun createScissors(context: DrawContext) {
|
fun createScissors(context: DrawContext) {
|
||||||
val rect = getScrollPanelInner()
|
val rect = getScrollPanelInner()
|
||||||
context.enableScissor(
|
context.enableScissorWithoutTranslation(
|
||||||
rect.minX, rect.minY,
|
rect.minX.toFloat(), rect.minY.toFloat(),
|
||||||
rect.maxX, rect.maxY
|
rect.maxX.toFloat(), rect.maxY.toFloat(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
|
|
||||||
package moe.nea.firmament.util.render
|
package moe.nea.firmament.util.render
|
||||||
|
|
||||||
|
import org.joml.Matrix4f
|
||||||
import org.joml.Vector4f
|
import org.joml.Vector4f
|
||||||
import net.minecraft.client.gui.DrawContext
|
import net.minecraft.client.gui.DrawContext
|
||||||
|
|
||||||
fun DrawContext.enableScissorWithTranslation(x1: Float, y1: Float, x2: Float, y2: Float) {
|
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()
|
val target = Vector4f()
|
||||||
|
|
||||||
target.set(x1, y1, 0f, 1f)
|
target.set(x1, y1, 0f, 1f)
|
||||||
|
|||||||
Reference in New Issue
Block a user