Skip to content

Commit eba45bf

Browse files
committed
Many misc cgui changes
1 parent 4acc091 commit eba45bf

File tree

9 files changed

+29
-26
lines changed

9 files changed

+29
-26
lines changed

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

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,29 +22,24 @@ class OutlineRectRenderer : AbstractRectRenderer(
2222
fun build(
2323
rect: Rect,
2424
roundRadius: Double = 0.0,
25-
innerGlow: Double = 1.0,
26-
outerGlow: Double = 1.0,
25+
glowRadius: Double = 1.0,
2726
color: Color = Color.WHITE,
2827
shade: Boolean = false,
29-
) = build(rect, roundRadius, innerGlow, outerGlow, color, color, color, color, shade)
28+
) = build(rect, roundRadius, glowRadius, color, color, color, color, shade)
3029

3130
fun build(
3231
rect: Rect,
3332
roundRadius: Double = 0.0,
34-
innerGlow: Double = 1.0,
35-
outerGlow: Double = 1.0,
33+
glowRadius: Double = 1.0,
3634
leftTop: Color = Color.WHITE,
3735
rightTop: Color = Color.WHITE,
3836
rightBottom: Color = Color.WHITE,
3937
leftBottom: Color = Color.WHITE,
4038
shade: Boolean = false,
4139
) = vao.use {
42-
val drawInner = innerGlow >= 1
43-
val drawOuter = outerGlow >= 1
40+
if (glowRadius < 1) return@use
4441

45-
if (!drawInner && !drawOuter) return@use
46-
47-
grow(verticesCount * (1 + drawInner.toInt() + drawOuter.toInt()))
42+
grow(verticesCount * 3)
4843

4944
fun IRenderContext.genVertices(size: Double, isGlow: Boolean): MutableList<Int> {
5045
val r = rect.expand(size)
@@ -89,8 +84,8 @@ class OutlineRectRenderer : AbstractRectRenderer(
8984
}
9085
}
9186

92-
if (drawInner) drawStripWith(genVertices(-innerGlow, true))
93-
if (drawOuter) drawStripWith(genVertices(outerGlow, true))
87+
drawStripWith(genVertices(-(glowRadius.coerceAtMost(1.0)), true))
88+
drawStripWith(genVertices(glowRadius, true))
9489
}
9590

9691
companion object {

common/src/main/kotlin/com/lambda/gui/api/component/WindowComponent.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import com.lambda.gui.api.component.core.list.ChildLayer
99
import com.lambda.gui.impl.AbstractClickGui
1010
import com.lambda.module.modules.client.ClickGui
1111
import com.lambda.module.modules.client.GuiSettings
12+
import com.lambda.module.modules.client.GuiSettings.primaryColor
1213
import com.lambda.util.Mouse
1314
import com.lambda.util.math.ColorUtils.multAlpha
1415
import com.lambda.util.math.ColorUtils.setAlpha
@@ -81,9 +82,8 @@ abstract class WindowComponent<T : ChildComponent>(
8182
renderer.outline.build(
8283
rect = rect,
8384
roundRadius = ClickGui.windowRadius,
84-
innerGlow = ClickGui.windowRadius.coerceAtMost(1.0),
85-
outerGlow = ClickGui.windowRadius,
86-
color = GuiSettings.mainColor.multAlpha(alpha),
85+
glowRadius = ClickGui.glowRadius,
86+
color = (if (GuiSettings.shadeBackground) Color.WHITE else primaryColor).multAlpha(alpha),
8787
shade = GuiSettings.shadeBackground
8888
)
8989

@@ -123,7 +123,7 @@ abstract class WindowComponent<T : ChildComponent>(
123123

124124
isOpen = !isOpen
125125

126-
if (isOpen) onEvent(GuiEvent.Show())
126+
if (isOpen) contentComponents.onEvent(GuiEvent.Show())
127127
}
128128
}
129129
}

common/src/main/kotlin/com/lambda/gui/api/component/button/ButtonComponent.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ abstract class ButtonComponent(
2626
protected open val centerText = false
2727

2828
protected abstract var activeAnimation: Double
29+
protected open val roundRadius get() = ClickGui.buttonRadius
2930

3031
private val actualSize get() = Vec2d(if (size.x == FILL_PARENT) owner.rect.size.x else size.x, size.y)
3132
final override val rect get() = Rect.basedOn(position, actualSize) + owner.rect.leftTop
@@ -58,6 +59,7 @@ abstract class ButtonComponent(
5859
// Active color
5960
renderer.filled.build(
6061
rect = rect.shrink(shrinkAnimation),
62+
roundRadius = roundRadius,
6163
color = GuiSettings.mainColor.multAlpha(activeAnimation * 0.3 * showAnimation),
6264
shade = GuiSettings.shade
6365
)
@@ -66,6 +68,7 @@ abstract class ButtonComponent(
6668
val hoverRect = Rect.basedOn(rect.leftTop, rect.size.x * hoverRectAnimation, rect.size.y)
6769
renderer.filled.build(
6870
rect = hoverRect.shrink(shrinkAnimation),
71+
roundRadius = roundRadius,
6972
color = GuiSettings.mainColor.multAlpha(interactAnimation * 0.2 * showAnimation),
7073
shade = GuiSettings.shade
7174
)

common/src/main/kotlin/com/lambda/gui/impl/clickgui/LambdaClickGui.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@ import com.lambda.module.HudModule
1111
import com.lambda.module.Module
1212
import com.lambda.module.modules.client.ClickGui
1313
import com.lambda.module.modules.client.GuiSettings
14+
import com.lambda.module.modules.client.GuiSettings.primaryColor
1415
import com.lambda.util.math.ColorUtils.multAlpha
1516
import com.lambda.util.math.Vec2d
17+
import java.awt.Color
1618

1719
object LambdaClickGui : AbstractClickGui("ClickGui", ClickGui) {
1820
override val moduleFilter: (Module) -> Boolean = {
@@ -39,6 +41,7 @@ object LambdaClickGui : AbstractClickGui("ClickGui", ClickGui) {
3941
override val size = Vec2d(30.0, 15.0)
4042
override val text = "HUD"
4143
override val centerText = true
44+
override val roundRadius = ClickGui.windowRadius
4245

4346
override var activeAnimation; get() = pressAnimation; set(_) {}
4447

@@ -60,9 +63,8 @@ object LambdaClickGui : AbstractClickGui("ClickGui", ClickGui) {
6063
renderer.outline.build(
6164
rect = rect,
6265
roundRadius = ClickGui.windowRadius,
63-
innerGlow = ClickGui.windowRadius.coerceAtMost(1.0),
64-
outerGlow = ClickGui.windowRadius,
65-
color = GuiSettings.mainColor.multAlpha(childShowAnimation),
66+
glowRadius = ClickGui.glowRadius,
67+
color = (if (GuiSettings.shadeBackground) Color.WHITE else primaryColor).multAlpha(childShowAnimation),
6668
shade = GuiSettings.shadeBackground
6769
)
6870
}

common/src/main/kotlin/com/lambda/gui/impl/clickgui/buttons/ModuleButton.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import com.lambda.gui.api.component.button.ListButton
1414
import com.lambda.gui.api.component.core.list.ChildLayer
1515
import com.lambda.gui.impl.clickgui.buttons.setting.*
1616
import com.lambda.module.Module
17+
import com.lambda.module.modules.client.ClickGui
1718
import com.lambda.module.modules.client.GuiSettings
1819
import com.lambda.sound.LambdaSound
1920
import com.lambda.sound.SoundManager.playSoundRandomly
@@ -143,7 +144,7 @@ class ModuleButton(
143144
val leftColor = color.multAlpha(1.0 - toggleFxDirection)
144145
val rightColor = color.multAlpha(toggleFxDirection)
145146

146-
build(rect, 0.0, leftColor, rightColor, rightColor, leftColor, GuiSettings.shade)
147+
build(rect, roundRadius, leftColor, rightColor, rightColor, leftColor, GuiSettings.shade)
147148
}
148149

149150
if (renderHeight > 0.5) {
@@ -166,7 +167,7 @@ class ModuleButton(
166167
var lastStep = 0.0
167168
settingsLayer.children
168169
.filter(SettingButton<*, *>::visible)
169-
.sumOf { lastStep = it.listStep; it.size.y + it.listStep } - lastStep + super.listStep * 2.0
170+
.sumOf { lastStep = it.listStep; it.size.y + it.listStep } - lastStep + super.listStep
170171
} else 0.0
171172
}
172173

common/src/main/kotlin/com/lambda/gui/impl/clickgui/buttons/setting/BooleanButton.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@ class BooleanButton(
2424
private val zoomAnimation get() = lerp(2.0, 0.0, showAnimation)
2525

2626
private val checkboxRect
27-
get() = Rect(rect.rightTop - Vec2d(rect.size.y * 1.75, 0.0), rect.rightBottom)
27+
get() = Rect(rect.rightTop - Vec2d(rect.size.y * 1.65, 0.0), rect.rightBottom)
2828
.shrink(1.0 + zoomAnimation)
29+
.moveFirst(Vec2d(0.0, 0.5)).moveSecond(Vec2d(0.0, -0.5))
2930

3031
private val knobStart get() = Rect.basedOn(checkboxRect.leftTop, Vec2d.ONE * checkboxRect.size.y)
3132
private val knobEnd get() = Rect.basedOn(checkboxRect.rightBottom, Vec2d.ONE * checkboxRect.size.y * -1.0).inv()

common/src/main/kotlin/com/lambda/gui/impl/clickgui/buttons/setting/Slider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import com.lambda.gui.api.GuiEvent
66
import com.lambda.gui.api.component.core.list.ChildLayer
77
import com.lambda.gui.impl.clickgui.buttons.ModuleButton
88
import com.lambda.gui.impl.clickgui.buttons.SettingButton
9+
import com.lambda.module.modules.client.ClickGui
910
import com.lambda.module.modules.client.GuiSettings
1011
import com.lambda.sound.LambdaSound
1112
import com.lambda.sound.SoundManager.playSound
@@ -41,7 +42,7 @@ abstract class Slider<V : Any, T : AbstractSetting<V>>(
4142
// Slider rect
4243
renderer.filled.build(
4344
rect = rect.moveSecond(Vec2d(-rect.size.x * (1.0 - renderProgress), 0.0)).shrink(shrinkAnimation),
44-
roundRadius = 0.0,
45+
roundRadius = ClickGui.buttonRadius,
4546
color = GuiSettings.mainColor.multAlpha(showAnimation * 0.3),
4647
shade = GuiSettings.shade
4748
)

common/src/main/kotlin/com/lambda/module/modules/client/ClickGui.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package com.lambda.module.modules.client
22

33
import com.lambda.event.events.ClientEvent
4-
import com.lambda.event.events.TickEvent
5-
import com.lambda.event.listener.SafeListener.Companion.listener
64
import com.lambda.event.listener.UnsafeListener.Companion.unsafeListener
75
import com.lambda.gui.impl.clickgui.LambdaClickGui
86
import com.lambda.gui.impl.hudgui.LambdaHudGui
@@ -18,6 +16,8 @@ object ClickGui : Module(
1816
) {
1917
// General
2018
val windowRadius by setting("Window Radius", 2.0, 0.0..10.0, 0.1)
19+
val glowRadius by setting("Glow Radius", 2.0, 0.0..20.0, 0.1)
20+
val buttonRadius by setting("Button Radius", 0.0, 0.0..10.0, 0.1)
2121
val windowPadding by setting("Window Padding", 2.0, 0.0..10.0, 0.1)
2222
val buttonHeight by setting("Button Height", 11.0, 8.0..20.0, 0.1)
2323
val buttonStep by setting("Button Step", 0.0, 0.0..5.0, 0.1)

common/src/main/resources/assets/lambda/shaders/fragment/renderer/rect_outline.frag

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ vec4 shade() {
2222
}
2323

2424
vec4 glow() {
25-
float newAlpha = min(1.0, (v_Alpha * v_Alpha));
25+
float newAlpha = min(1.0, v_Alpha * v_Alpha * v_Alpha);
2626
return vec4(1.0, 1.0, 1.0, newAlpha);
2727
}
2828

0 commit comments

Comments
 (0)