1717
1818package com.lambda.module.modules.render
1919
20- import com.lambda.Lambda.mc
2120import com.lambda.config.applyEdits
2221import com.lambda.config.groups.ScreenLineSettings
2322import com.lambda.config.groups.WorldLineSettings
2423import com.lambda.config.settings.collections.CollectionSetting.Companion.onDeselect
2524import com.lambda.config.settings.collections.CollectionSetting.Companion.onSelect
2625import com.lambda.context.SafeContext
27- import com.lambda.event.events.WorldEvent
28- import com.lambda.event.listener.SafeListener.Companion.listen
29- import com.lambda.event.listener.UnsafeListener.Companion.listenUnsafe
3026import com.lambda.graphics.mc.RenderBuilder
3127import com.lambda.graphics.mc.renderer.ChunkedRenderer.Companion.chunkedRenderer
3228import com.lambda.graphics.mc.renderer.ImmediateRenderer.Companion.immediateRenderer
@@ -35,9 +31,9 @@ import com.lambda.graphics.util.DirectionMask
3531import com.lambda.graphics.util.DirectionMask.buildSideMesh
3632import com.lambda.graphics.util.DynamicAABB.Companion.interpolatedBox
3733import com.lambda.module.Module
38- import com.lambda.module.modules.render.Search.chunkedRenderer
3934import com.lambda.module.tag.ModuleTag
4035import com.lambda.threading.runSafe
36+ import com.lambda.util.BlockUtils.blockState
4137import com.lambda.util.EntityUtils.decorationEntityMap
4238import com.lambda.util.EntityUtils.entityGroup
4339import com.lambda.util.NamedEnum
@@ -46,14 +42,14 @@ import com.lambda.util.extension.entityColor
4642import com.lambda.util.extension.getBlockState
4743import com.lambda.util.math.setAlpha
4844import com.lambda.util.world.toBlockPos
49- import io.ktor.util.collections.ConcurrentMap
5045import net.minecraft.block.BlockState
5146import net.minecraft.block.Blocks
5247import net.minecraft.entity.Entity
5348import net.minecraft.util.math.BlockPos
5449import net.minecraft.util.math.Box
5550import net.minecraft.util.math.Vec3d
5651import java.awt.Color
52+ import java.util.concurrent.ConcurrentHashMap
5753
5854object Search : Module(
5955 name = " Search" ,
@@ -104,17 +100,17 @@ object Search : Module(
104100 }
105101 }
106102
107- private val tracerBlockPositions = ConcurrentMap <BlockPos , Pair <Vec3d , Pair <Color , Color >>>()
108-
109- val chunkedRenderer = chunkedRenderer(" Search Chunked Renderer" ) { position ->
110- val pos = position.toBlockPos()
111- val state = mc.world?.getBlockState(pos)
112- if (state == null || state.block !in blocks) {
113- tracerBlockPositions.remove(pos)
114- return @chunkedRenderer
115- }
103+ private val tracerBlockPositions = ConcurrentHashMap <BlockPos , Pair <Vec3d , Pair <Color , Color >>>()
116104
105+ val chunkedRenderer = chunkedRenderer(
106+ " Search Chunked Renderer" ,
107+ { chunkPos -> if (tracers) tracerBlockPositions.keys.removeIf { it in chunkPos } },
108+ { chunkPos -> if (tracers) tracerBlockPositions.keys.removeIf { it in chunkPos } }
109+ ) { position ->
117110 runSafe {
111+ val pos = position.toBlockPos()
112+ val state = blockState(pos)
113+ if (state.block !in blocks) return @chunkedRenderer
118114 val sides = if (mesh) {
119115 buildSideMesh(position) {
120116 world.getBlockState(it).block in blocks
@@ -128,12 +124,11 @@ object Search : Module(
128124 if (shape.isEmpty) listOf (Box (pos))
129125 else shape.boundingBoxes.map { it.offset(pos) }
130126 if (tracers) {
131- val center =
132- shape
133- .boundingBoxes
134- .reduce(Box ::union)
135- .offset(pos)
136- .center
127+ val center = shape
128+ .boundingBoxes
129+ .reduce(Box ::union)
130+ .offset(pos)
131+ .center
137132 tracerBlockPositions[pos] = Pair (center, getTracerColors(lineColor))
138133 }
139134 box(
@@ -163,9 +158,6 @@ object Search : Module(
163158 if (tracers) tracerBlockPositions.values.forEach { tracer(it) }
164159 }
165160 }
166-
167- listenUnsafe<WorldEvent .ChunkEvent .Unload > { event -> if (tracers) tracerBlockPositions.keys.removeIf { it in event.chunk.pos } }
168- listenUnsafe<WorldEvent .Leave > { if (tracers) tracerBlockPositions.clear() }
169161 }
170162
171163 private fun RenderBuilder.tracer (pair : Pair <Vec3d , Pair <Color , Color >>) {
0 commit comments