@@ -5,16 +5,12 @@ import com.lambda.event.events.TickEvent
55import com.lambda.event.events.WorldEvent
66import com.lambda.event.listener.SafeListener.Companion.concurrentListener
77import com.lambda.event.listener.SafeListener.Companion.listener
8- import com.lambda.graphics.renderer.esp.DirectionMask.exclude
9- import com.lambda.graphics.renderer.esp.DirectionMask.mask
108import com.lambda.module.modules.client.RenderSettings
119import com.lambda.threading.runGameBlocking
1210import com.mojang.blaze3d.systems.RenderSystem.recordRenderCall
1311import kotlinx.coroutines.*
1412import net.minecraft.util.math.BlockPos
15- import net.minecraft.util.math.Box
1613import net.minecraft.util.math.ChunkPos
17- import net.minecraft.util.math.Direction
1814import net.minecraft.world.BlockView
1915import net.minecraft.world.chunk.WorldChunk
2016import java.awt.Color
@@ -23,8 +19,7 @@ import java.util.concurrent.ConcurrentLinkedDeque
2319
2420class ChunkedESP private constructor(
2521 owner : Any ,
26- private val filter : (BlockView , BlockPos ) -> Boolean ,
27- private val painter : (BlockView , BlockPos ) -> Pair <Color , Color >
22+ private val update : EspRenderer .(BlockView , BlockPos ) -> Boolean
2823) {
2924 private val rendererMap = ConcurrentHashMap <ChunkPos , EspChunk >()
3025 private val WorldChunk .renderer get() = rendererMap.getOrPut(pos) {
@@ -33,7 +28,9 @@ class ChunkedESP private constructor(
3328 private var ticks = 0
3429
3530 private val uploadPool = ConcurrentLinkedDeque < () -> Unit > ()
36- private val rebuildPool = ConcurrentLinkedDeque < () -> Unit > ()
31+ private val rebuildPool = ConcurrentLinkedDeque <EspChunk >()
32+
33+ // i completely dont like to listen to enable events
3734
3835 fun clear () {
3936 rendererMap.clear()
@@ -116,7 +113,7 @@ class ChunkedESP private constructor(
116113 }
117114
118115 iterateChunk { x, y, z ->
119- checkAndDraw (newRenderer, BlockPos (x, y, z))
116+ draw (newRenderer, BlockPos (x, y, z))
120117 }
121118
122119 val upload = {
@@ -147,19 +144,8 @@ class ChunkedESP private constructor(
147144 return result as R
148145 }
149146
150- private fun checkAndDraw (renderer : EspRenderer , blockPos : BlockPos ): Boolean {
151- if (! owner.filter(chunk, blockPos)) return false
152-
153- var sides = DirectionMask .ALL
154-
155- Direction .entries.forEach {
156- if (! owner.filter(chunk.world, blockPos.add(it.vector))) return @forEach
157- sides = sides.exclude(it.mask)
158- }
159-
160- val (filledColor, outlineColor) = owner.painter(chunk, blockPos)
161- renderer.build(Box (blockPos), filledColor, outlineColor, sides, DirectionMask .OutlineMode .AND )
162- return true
147+ private fun draw (renderer : EspRenderer , x : Int , y : Int , z : Int ) {
148+ if (! owner.update(chunk, blockPos)) return false
163149 }
164150
165151 private fun iterateChunk (block : (Int , Int , Int ) -> Unit ) = chunk.apply {
0 commit comments