From f0db36c80bb786f11d9eb0b2e2461b4b6985b987 Mon Sep 17 00:00:00 2001 From: Moritz Zwerger Date: Sun, 2 Mar 2025 19:41:03 +0100 Subject: [PATCH] some tracing --- .../rendering/chunk/mesher/FluidSectionMesher.kt | 2 +- .../gui/rendering/particle/types/Particle.kt | 2 +- .../particle/types/render/RenderParticle.kt | 14 ++------------ 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/mesher/FluidSectionMesher.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/mesher/FluidSectionMesher.kt index 471f4fb88..978d5049a 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/mesher/FluidSectionMesher.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/mesher/FluidSectionMesher.kt @@ -225,7 +225,7 @@ class FluidSectionMesher( ) val meshToUse = mesh[model.flowing.transparency] - val fluidLight = chunk.light[x, offsetY + y, z] + val fluidLight = chunk.light[InChunkPosition(x, offsetY + y, z)] addFluidVertices(meshToUse, positions, texturePositions, model.flowing, tint, fluidLight) rendered = true } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/Particle.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/Particle.kt index 9cef505e1..446d15318 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/Particle.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/Particle.kt @@ -99,7 +99,7 @@ abstract class Particle( if (chunk != null) { if (chunk.position == this.chunkPosition) return chunk - chunk = chunk.neighbours.trace(chunkPosition - chunk.position) + chunk = chunk.neighbours.traceChunk(chunkPosition - chunk.position) } if (chunk == null && revision != this.chunkRevision) { chunk = session.world.chunks[chunkPosition] diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/render/RenderParticle.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/render/RenderParticle.kt index 9067318e7..afb0b1f63 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/render/RenderParticle.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/render/RenderParticle.kt @@ -13,15 +13,12 @@ package de.bixilon.minosoft.gui.rendering.particle.types.render -import de.bixilon.kotlinglm.vec2.Vec2i import de.bixilon.kotlinglm.vec3.Vec3d -import de.bixilon.kotlinglm.vec3.Vec3i import de.bixilon.minosoft.data.registries.particle.data.ParticleData import de.bixilon.minosoft.data.text.formatting.color.ChatColors import de.bixilon.minosoft.data.text.formatting.color.RGBColor import de.bixilon.minosoft.data.world.chunk.light.SectionLight import de.bixilon.minosoft.gui.rendering.particle.types.Particle -import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.blockPosition import de.bixilon.minosoft.protocol.network.session.play.PlaySession @@ -45,17 +42,10 @@ abstract class RenderParticle(session: PlaySession, position: Vec3d, velocity: V val chunkPosition = position.blockPosition.chunkPosition val chunk = getChunk() ?: return maxBlockLight - val offset = Vec2i.EMPTY - val inChunk = Vec3i() for (position in aabb.positions()) { - offset.x = (position.x shr 4) - chunkPosition.x - offset.y = (position.z shr 4) - chunkPosition.z + val next = chunk.neighbours.traceChunk(position.chunkPosition - chunkPosition) - inChunk.x = position.x and 0x0F - inChunk.y = position.y - inChunk.z = position.z and 0x0F - - val light = chunk.neighbours.trace(offset)?.light?.get(inChunk) ?: SectionLight.SKY_LIGHT_MASK + val light = next?.light?.get(position.inChunkPosition) ?: SectionLight.SKY_LIGHT_MASK if (light and SectionLight.BLOCK_LIGHT_MASK > maxBlockLight) { maxBlockLight = light and SectionLight.BLOCK_LIGHT_MASK }