From 7af77296ed90922e4d34374579a3968666b79e37 Mon Sep 17 00:00:00 2001 From: mcrcortex <18544518+MCRcortex@users.noreply.github.com> Date: Tue, 8 Apr 2025 14:26:39 +1000 Subject: [PATCH] Tweeks to tracker --- .../voxy/client/core/rendering/RenderDistanceTracker.java | 5 ++--- .../voxy/client/core/rendering/VoxyRenderSystem.java | 2 +- .../java/me/cortex/voxy/client/core/util/RingTracker.java | 8 ++++++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/RenderDistanceTracker.java b/src/main/java/me/cortex/voxy/client/core/rendering/RenderDistanceTracker.java index 2a5f02d6..87a66876 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/RenderDistanceTracker.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/RenderDistanceTracker.java @@ -27,10 +27,9 @@ public class RenderDistanceTracker { } public void setRenderDistance(int renderDistance) { - this.tracker.unload(); - this.tracker.process(Integer.MAX_VALUE, this::add, this::rem); this.renderDistance = renderDistance; - this.tracker = new RingTracker(renderDistance, ((int)this.posX)>>9, ((int)this.posZ)>>9, true); + this.tracker.unload();//Mark all as unload + this.tracker = new RingTracker(this.tracker, renderDistance, ((int)this.posX)>>9, ((int)this.posZ)>>9, true);//Steal from previous tracker } public void setCenterAndProcess(double x, double z) { diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/VoxyRenderSystem.java b/src/main/java/me/cortex/voxy/client/core/rendering/VoxyRenderSystem.java index 743dd52a..60f12171 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/VoxyRenderSystem.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/VoxyRenderSystem.java @@ -55,7 +55,7 @@ public class VoxyRenderSystem { this.renderer = new RenderService(world, threadPool); this.postProcessing = new PostProcessing(); - this.renderDistanceTracker = new RenderDistanceTracker(10, + this.renderDistanceTracker = new RenderDistanceTracker(20, MinecraftClient.getInstance().world.getBottomSectionCoord()>>5, (MinecraftClient.getInstance().world.getTopSectionCoord()-1)>>5, this.renderer::addTopLevelNode, diff --git a/src/main/java/me/cortex/voxy/client/core/util/RingTracker.java b/src/main/java/me/cortex/voxy/client/core/util/RingTracker.java index 0ab34ce1..4fee037e 100644 --- a/src/main/java/me/cortex/voxy/client/core/util/RingTracker.java +++ b/src/main/java/me/cortex/voxy/client/core/util/RingTracker.java @@ -16,10 +16,18 @@ public class RingTracker { private int centerZ; public RingTracker(int radius, int centerX, int centerZ, boolean fill) { + this(null, radius, centerX, centerZ, fill); + } + + public RingTracker(RingTracker stealFrom, int radius, int centerX, int centerZ, boolean fill) { this.centerX = centerX; this.centerZ = centerZ; this.radius = radius; this.boundDist = generateBoundingHalfCircleDistance(radius); + if (stealFrom != null) { + this.operations.putAll(stealFrom.operations); + stealFrom.operations.clear(); + } if (fill) { this.fillRing(true); }