Skip to content

Commit 5dc06b7

Browse files
committed
HUD hiding
1 parent b50193f commit 5dc06b7

File tree

5 files changed

+42
-5
lines changed

5 files changed

+42
-5
lines changed

common/src/main/kotlin/com/lambda/event/events/RenderEvent.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ abstract class RenderEvent : Event {
2121

2222
abstract class GUI(val scale: Double) : RenderEvent() {
2323
class Scaled(scaleFactor: Double) : GUI(scaleFactor)
24+
class HUD(scaleFactor: Double) : GUI(scaleFactor)
2425
class Fixed : GUI(1.0)
2526

2627
val screenSize = Vec2d(mc.window.framebufferWidth, mc.window.framebufferHeight) / scale

common/src/main/kotlin/com/lambda/graphics/RenderMain.kt

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,18 @@ package com.lambda.graphics
33
import com.lambda.Lambda.mc
44
import com.lambda.event.EventFlow.post
55
import com.lambda.event.events.RenderEvent
6+
import com.lambda.event.events.TickEvent
7+
import com.lambda.event.listener.SafeListener.Companion.listener
8+
import com.lambda.graphics.animation.Animation.Companion.exp
9+
import com.lambda.graphics.animation.AnimationTicker
10+
import com.lambda.graphics.buffer.FrameBuffer
611
import com.lambda.graphics.gl.GlStateUtils.setupGL
712
import com.lambda.graphics.gl.Matrices
813
import com.lambda.graphics.gl.Matrices.resetMatrices
914
import com.lambda.graphics.renderer.esp.global.StaticESP
1015
import com.lambda.graphics.renderer.esp.global.DynamicESP
16+
import com.lambda.graphics.shader.Shader
17+
import com.lambda.module.modules.client.ClickGui
1118
import com.lambda.module.modules.client.GuiSettings
1219
import com.lambda.util.math.Vec2d
1320
import com.mojang.blaze3d.systems.RenderSystem.getProjectionMatrix
@@ -16,9 +23,22 @@ import org.joml.Matrix4f
1623
object RenderMain {
1724
val projectionMatrix = Matrix4f()
1825
val modelViewMatrix: Matrix4f get() = Matrices.peek()
19-
2026
var screenSize = Vec2d.ZERO
2127

28+
private val hudAnimation0 = with(AnimationTicker()) {
29+
listener<TickEvent.Pre> {
30+
tick()
31+
}
32+
33+
exp(0.0, 1.0, {
34+
if (mc.currentScreen == null) ClickGui.closeSpeed else ClickGui.openSpeed
35+
}) { mc.currentScreen == null }
36+
}
37+
38+
private val frameBuffer = FrameBuffer()
39+
private val shader = Shader("post/cgui_animation", "renderer/pos_tex")
40+
private val hudAnimation by hudAnimation0
41+
2242
@JvmStatic
2343
fun render2D() {
2444
resetMatrices(Matrix4f().translate(0f, 0f, -3000f))
@@ -28,6 +48,7 @@ object RenderMain {
2848
RenderEvent.GUI.Fixed().post()
2949

3050
rescale(GuiSettings.scale)
51+
drawHUD()
3152
RenderEvent.GUI.Scaled(GuiSettings.scale).post()
3253
}
3354
}
@@ -54,4 +75,19 @@ object RenderMain {
5475
screenSize = Vec2d(scaledWidth, scaledHeight)
5576
projectionMatrix.setOrtho(0f, scaledWidth.toFloat(), scaledHeight.toFloat(), 0f, 1000f, 21000f)
5677
}
78+
79+
private fun drawHUD() {
80+
if (hudAnimation < 0.001) return
81+
82+
if (hudAnimation > 0.999) {
83+
RenderEvent.GUI.HUD(GuiSettings.scale).post()
84+
return
85+
}
86+
87+
frameBuffer.write {
88+
RenderEvent.GUI.HUD(GuiSettings.scale).post()
89+
}.read(shader) {
90+
it["u_Progress"] = hudAnimation
91+
}
92+
}
5793
}

common/src/main/kotlin/com/lambda/graphics/renderer/gui/TextureRenderer.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ object TextureRenderer {
2323
drawInternal(rect)
2424
}
2525

26-
fun drawTextureShaded(texture: Texture, rect: Rect, shadeWidthScale: Double = 1.0) {
26+
fun drawTextureShaded(texture: Texture, rect: Rect) {
2727
texture.bind()
2828
shaderColored.use()
2929

3030
shaderColored["u_Time"] = glfwGetTime() * GuiSettings.colorSpeed * 5.0
3131
shaderColored["u_Color1"] = GuiSettings.shadeColor1
3232
shaderColored["u_Color2"] = GuiSettings.shadeColor2
33-
shaderColored["u_Size"] = RenderMain.screenSize / Vec2d(GuiSettings.colorWidth, GuiSettings.colorHeight) / shadeWidthScale
33+
shaderColored["u_Size"] = RenderMain.screenSize / Vec2d(GuiSettings.colorWidth, GuiSettings.colorHeight)
3434

3535
drawInternal(rect)
3636
}

common/src/main/kotlin/com/lambda/module/HudModule.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ abstract class HudModule(
6363
renderCallables.add(block)
6464

6565
init {
66-
listener<RenderEvent.GUI.Scaled> { event ->
66+
listener<RenderEvent.GUI.HUD> { event ->
6767
rectHandler.screenSize = event.screenSize
6868

6969
renderCallables.forEach { function ->

common/src/main/kotlin/com/lambda/module/hud/Watermark.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ object Watermark : HudModule(
2020

2121
init {
2222
onRender {
23-
if (shade) drawTextureShaded(monoTexture, rect, 0.1)
23+
if (shade) drawTextureShaded(monoTexture, rect)
2424
else drawTexture(normalTexture, rect)
2525
}
2626
}

0 commit comments

Comments
 (0)