diff --git a/src/main/kotlin/ru/octol1ttle/flightassistant/api/util/ScreenSpace.kt b/src/main/kotlin/ru/octol1ttle/flightassistant/api/util/ScreenSpace.kt index 02860e1..2a91bd9 100644 --- a/src/main/kotlin/ru/octol1ttle/flightassistant/api/util/ScreenSpace.kt +++ b/src/main/kotlin/ru/octol1ttle/flightassistant/api/util/ScreenSpace.kt @@ -77,8 +77,8 @@ object ScreenSpace { return pos.z > -1 && pos.z < 1 } - fun getX(heading: Float): Int? { - val vec: Vec3d = fromWorldSpace(Vec3d.fromPolar(0.0f, heading - 180.0f)) + fun getX(heading: Float, useNoRollMatrix: Boolean = true): Int? { + val vec: Vec3d = fromWorldSpace(Vec3d.fromPolar(0.0f, heading - 180.0f), useNoRollMatrix) if (!isVisible(vec)) { return null } @@ -86,8 +86,8 @@ object ScreenSpace { return vec.x.toInt() } - fun getY(pitch: Float): Int? { - val vec: Vec3d = fromWorldSpace(Vec3d.fromPolar(-pitch, mc.entityRenderDispatcher.camera.yaw)) + fun getY(pitch: Float, useNoRollMatrix: Boolean = true): Int? { + val vec: Vec3d = fromWorldSpace(Vec3d.fromPolar(-pitch, mc.entityRenderDispatcher.camera.yaw), useNoRollMatrix) if (!isVisible(vec)) { return null } @@ -95,8 +95,8 @@ object ScreenSpace { return vec.y.toInt() } - fun getVec3d(deltaPos: Vec3d): Vec3d? { - val vec: Vec3d = fromWorldSpace(deltaPos, false) + fun getVec3d(deltaPos: Vec3d, useNoRollMatrix: Boolean = true): Vec3d? { + val vec: Vec3d = fromWorldSpace(deltaPos, useNoRollMatrix) if (!isVisible(vec)) { return null } diff --git a/src/main/kotlin/ru/octol1ttle/flightassistant/impl/display/FlightDirectorsDisplay.kt b/src/main/kotlin/ru/octol1ttle/flightassistant/impl/display/FlightDirectorsDisplay.kt index 808ba3a..99b651c 100644 --- a/src/main/kotlin/ru/octol1ttle/flightassistant/impl/display/FlightDirectorsDisplay.kt +++ b/src/main/kotlin/ru/octol1ttle/flightassistant/impl/display/FlightDirectorsDisplay.kt @@ -32,10 +32,10 @@ class FlightDirectorsDisplay(computers: ComputerView) : Display(computers) { matrices.push() matrices.translate(0, 0, -50) - val pitchY: Int = ScreenSpace.getY(computers.pitch.activeInput?.target ?: return) ?: return + val pitchY: Int = ScreenSpace.getY(computers.pitch.activeInput?.target ?: return, false) ?: return drawHorizontalLine(this.centerXI - halfWidth, this.centerXI + halfWidth, pitchY, advisoryColor) - val headingX: Int = ScreenSpace.getX(computers.heading.activeInput?.target ?: return) ?: return + val headingX: Int = ScreenSpace.getX(computers.heading.activeInput?.target ?: return, false) ?: return drawVerticalLine(headingX, this.centerYI - halfWidth, this.centerYI + halfWidth, advisoryColor) matrices.pop() diff --git a/src/main/kotlin/ru/octol1ttle/flightassistant/impl/display/FlightPathDisplay.kt b/src/main/kotlin/ru/octol1ttle/flightassistant/impl/display/FlightPathDisplay.kt index be4bb57..32e40a0 100644 --- a/src/main/kotlin/ru/octol1ttle/flightassistant/impl/display/FlightPathDisplay.kt +++ b/src/main/kotlin/ru/octol1ttle/flightassistant/impl/display/FlightPathDisplay.kt @@ -18,7 +18,7 @@ class FlightPathDisplay(computers: ComputerView) : Display(computers) { override fun render(drawContext: DrawContext) { with(drawContext) { - val screenSpaceVec: Vec3d = ScreenSpace.getVec3d(computers.data.velocity) ?: return + val screenSpaceVec: Vec3d = ScreenSpace.getVec3d(computers.data.velocity, false) ?: return val trueX: Int = screenSpaceVec.x.toInt() val trueY: Int = screenSpaceVec.y.toInt()