Skip to content

Commit f3ed531

Browse files
committed
areaMode setting in LightLevels
1 parent 0d7f7d8 commit f3ed531

1 file changed

Lines changed: 25 additions & 6 deletions

File tree

src/main/kotlin/com/lambda/module/modules/render/LightLevels.kt

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import net.minecraft.util.math.BlockPos
4141
import net.minecraft.util.math.Direction
4242
import net.minecraft.world.LightType
4343
import java.awt.Color
44+
import kotlin.collections.forEach
4445

4546
object LightLevels : Module(
4647
name = "LightLevels",
@@ -56,6 +57,7 @@ object LightLevels : Module(
5657
.onValueChange { _, _ -> chunkedRenderer.clear(); refreshChunkedRenderer(this) }
5758
private val minLightLevel by setting("Min Light Level", 0, 0..15).onValueChange(::refreshChunkedRenderer)
5859
private val renderMode by setting("Render Mode", RenderMode.Square).onValueChange(::refreshChunkedRenderer)
60+
private val areaMode by setting("Area Mode", AreaMode.Both, "Where to build renders around") { mode == Mode.Radius }
5961
private val color by setting("Color", Color.RED).onValueChange(::refreshChunkedRenderer)
6062
private val size by setting("Size", 14, 1..16).onValueChange(::refreshChunkedRenderer)
6163
private val fill by setting("Fill", false) { renderMode == RenderMode.Square }.group(Group.Fill).onValueChange(::refreshChunkedRenderer)
@@ -78,14 +80,25 @@ object LightLevels : Module(
7880
init {
7981
tickedRenderer("LightLevels Ticked Renderer", { depthTest }) { safeContext ->
8082
if (mode != Mode.Radius) return@tickedRenderer
81-
val playerPos = mc.gameRenderer.camera.pos.flooredBlockPos
8283

84+
val positions = hashSetOf<BlockPos>()
8385
val dashStyle = worldLineConfig.getDashStyle()
84-
(playerPos.x - horizontalRange..playerPos.x + horizontalRange).forEach { x ->
85-
(playerPos.z - horizontalRange..playerPos.z + horizontalRange).forEach { z ->
86-
(playerPos.y - verticalRange..playerPos.y + verticalRange).forEach { y ->
87-
with(safeContext) { buildRender(BlockPos(x, y, z), dashStyle) }
88-
}
86+
87+
with(safeContext) {
88+
if (areaMode.player) buildPositions(positions, player.blockPos)
89+
if (areaMode.camera) buildPositions(positions, mc.gameRenderer.camera.pos.flooredBlockPos)
90+
positions.forEach { pos ->
91+
buildRender(pos, dashStyle)
92+
}
93+
}
94+
}
95+
}
96+
97+
private fun buildPositions(collection: MutableCollection<BlockPos>, center: BlockPos) {
98+
(center.x - horizontalRange..center.x + horizontalRange).forEach { x ->
99+
(center.z - horizontalRange..center.z + horizontalRange).forEach { z ->
100+
(center.y - verticalRange..center.y + verticalRange).forEach { y ->
101+
collection.add(BlockPos(x, y, z))
89102
}
90103
}
91104
}
@@ -149,4 +162,10 @@ object LightLevels : Module(
149162
Cross,
150163
Circle
151164
}
165+
166+
private enum class AreaMode(val player: Boolean, val camera: Boolean) {
167+
Both(true, true),
168+
Camera(false, true),
169+
Player(true, false)
170+
}
152171
}

0 commit comments

Comments
 (0)