From 0eb28acfc5ab77e8c373154f9c702f5c4cb80e83 Mon Sep 17 00:00:00 2001 From: mcrcortex <18544518+MCRcortex@users.noreply.github.com> Date: Tue, 20 Feb 2024 18:37:31 +1000 Subject: [PATCH] Reenabled cache, added translation, set default slider quality to 10 --- gradle.properties | 2 +- .../cortex/voxy/client/config/VoxyConfig.java | 6 ++--- .../voxy/client/core/DistanceTracker.java | 24 +++++++++--------- .../me/cortex/voxy/client/core/VoxelCore.java | 4 +++ .../voxy/client/core/util/Mesher2D.java | 2 ++ .../sodium/MixinDefaultChunkRenderer.java | 2 +- .../resources/assets/voxy/lang/en_us.json | 25 +++++++++++++++++++ 7 files changed, 48 insertions(+), 17 deletions(-) create mode 100644 src/main/resources/assets/voxy/lang/en_us.json diff --git a/gradle.properties b/gradle.properties index 09805e88..41d097e3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ yarn_mappings=1.20.4+build.1 loader_version=0.15.0 # Mod Properties -mod_version = 0.0.8-alpha +mod_version = 0.0.9-alpha maven_group = me.cortex archives_base_name = voxy diff --git a/src/main/java/me/cortex/voxy/client/config/VoxyConfig.java b/src/main/java/me/cortex/voxy/client/config/VoxyConfig.java index b9174d3d..39fce38b 100644 --- a/src/main/java/me/cortex/voxy/client/config/VoxyConfig.java +++ b/src/main/java/me/cortex/voxy/client/config/VoxyConfig.java @@ -21,11 +21,11 @@ public class VoxyConfig { public boolean enabled = true; public boolean ingestEnabled = true; - public int qualityScale = 20; + public int qualityScale = 12; public int maxSections = 200_000; public int geometryBufferSize = (1<<30)/8; - public int ingestThreads = 5; - public int savingThreads = 10; + public int ingestThreads = 2; + public int savingThreads = 4; public int renderThreads = 5; diff --git a/src/main/java/me/cortex/voxy/client/core/DistanceTracker.java b/src/main/java/me/cortex/voxy/client/core/DistanceTracker.java index 7f30ea5b..8068d12c 100644 --- a/src/main/java/me/cortex/voxy/client/core/DistanceTracker.java +++ b/src/main/java/me/cortex/voxy/client/core/DistanceTracker.java @@ -44,18 +44,18 @@ public class DistanceTracker { // acts on LoD level + 1 //TODO: check this is actually working lmao and make it generate parent level lods on the exit instead of entry so it looks correct when flying backwards - //this.cacheLoadRings[i] = new TransitionRing2D(5+i, (lodRingScales[i]<<1) + cacheLoadDistance, (x, z) -> { - // //When entering a cache ring, trigger a mesh op and inject into cache - // for (int y = this.minYSection>>capRing; y <= this.maxYSection>>capRing; y++) { - // this.tracker.addCache(capRing, x, y, z); - // } - //}, (x, z) -> {}); - //this.cacheUnloadRings[i] = new TransitionRing2D(5+i, (lodRingScales[i]<<1) + cacheUnloadDistance, (x, z) -> {}, (x, z) -> { - // //When exiting the cache unload ring, tell the cache to dump whatever mesh it has cached and not add any mesh from that position - // for (int y = this.minYSection>>capRing; y <= this.maxYSection>>capRing; y++) { - // this.tracker.removeCache(capRing, x, y, z); - // } - //}); + this.cacheLoadRings[i] = new TransitionRing2D(5+i, (lodRingScales[i]<<1) + cacheLoadDistance, (x, z) -> { + //When entering a cache ring, trigger a mesh op and inject into cache + for (int y = this.minYSection>>capRing; y <= this.maxYSection>>capRing; y++) { + this.tracker.addCache(capRing, x, y, z); + } + }, (x, z) -> {}); + this.cacheUnloadRings[i] = new TransitionRing2D(5+i, (lodRingScales[i]<<1) + cacheUnloadDistance, (x, z) -> {}, (x, z) -> { + //When exiting the cache unload ring, tell the cache to dump whatever mesh it has cached and not add any mesh from that position + for (int y = this.minYSection>>capRing; y <= this.maxYSection>>capRing; y++) { + this.tracker.removeCache(capRing, x, y, z); + } + }); } } diff --git a/src/main/java/me/cortex/voxy/client/core/VoxelCore.java b/src/main/java/me/cortex/voxy/client/core/VoxelCore.java index 45302bcb..6b1d6fea 100644 --- a/src/main/java/me/cortex/voxy/client/core/VoxelCore.java +++ b/src/main/java/me/cortex/voxy/client/core/VoxelCore.java @@ -7,6 +7,7 @@ import me.cortex.voxy.client.core.rendering.*; import me.cortex.voxy.client.core.rendering.building.RenderGenerationService; import me.cortex.voxy.client.core.rendering.post.PostProcessing; import me.cortex.voxy.client.core.util.DebugUtil; +import me.cortex.voxy.client.core.util.IrisUtil; import me.cortex.voxy.client.saver.ContextSelectionSystem; import me.cortex.voxy.common.world.WorldEngine; import me.cortex.voxy.client.importers.WorldImporter; @@ -131,6 +132,9 @@ public class VoxelCore { } public void renderOpaque(MatrixStack matrices, double cameraX, double cameraY, double cameraZ) { + if (IrisUtil.irisShadowActive()) { + return; + } matrices.push(); matrices.translate(-cameraX, -cameraY, -cameraZ); DebugUtil.setPositionMatrix(matrices); diff --git a/src/main/java/me/cortex/voxy/client/core/util/Mesher2D.java b/src/main/java/me/cortex/voxy/client/core/util/Mesher2D.java index fd4b66d9..17d848d1 100644 --- a/src/main/java/me/cortex/voxy/client/core/util/Mesher2D.java +++ b/src/main/java/me/cortex/voxy/client/core/util/Mesher2D.java @@ -4,6 +4,8 @@ import java.util.Arrays; import java.util.BitSet; import java.util.Random; +//TODO: redo this so that it works as you are inserting data into it maybe? since it should be much faster?? + public class Mesher2D { private final int size; private final int maxSize; diff --git a/src/main/java/me/cortex/voxy/client/mixin/sodium/MixinDefaultChunkRenderer.java b/src/main/java/me/cortex/voxy/client/mixin/sodium/MixinDefaultChunkRenderer.java index b7cd2aa4..94dcb352 100644 --- a/src/main/java/me/cortex/voxy/client/mixin/sodium/MixinDefaultChunkRenderer.java +++ b/src/main/java/me/cortex/voxy/client/mixin/sodium/MixinDefaultChunkRenderer.java @@ -28,7 +28,7 @@ public class MixinDefaultChunkRenderer { private void injectRender(ChunkRenderMatrices matrices, CommandList commandList, ChunkRenderListIterable renderLists, TerrainRenderPass renderPass, CameraTransform camera, CallbackInfo ci) { if (renderPass == DefaultTerrainRenderPasses.CUTOUT) { var core = ((IGetVoxelCore) MinecraftClient.getInstance().worldRenderer).getVoxelCore(); - if (core != null && !IrisUtil.irisShadowActive()) { + if (core != null) { var stack = new MatrixStack(); stack.loadIdentity(); stack.multiplyPositionMatrix(new Matrix4f(matrices.modelView())); diff --git a/src/main/resources/assets/voxy/lang/en_us.json b/src/main/resources/assets/voxy/lang/en_us.json new file mode 100644 index 00000000..20ca3e2d --- /dev/null +++ b/src/main/resources/assets/voxy/lang/en_us.json @@ -0,0 +1,25 @@ +{ + "voxy.config.title": "Voxy config", + + "voxy.config.general": "General", + "voxy.config.threads": "Threads", + "voxy.config.storage": "Storage", + + "voxy.config.general.enabled": "Enable Voxy", + "voxy.config.general.enabled.tooltip": "Fully enables or disables voxy", + "voxy.config.general.ingest": "Chunk Ingest", + "voxy.config.general.ingest.tooltip": "Enables or disables voxies ability to convert new chunks into LoDs", + "voxy.config.general.quality": "LoD Quality", + "voxy.config.general.quality.tooltip": "How far each LoD ring lasts before its downgraded to a lower detail level", + "voxy.config.general.geometryBuffer": "Geometry Buffer Quads", + "voxy.config.general.geometryBuffer.tooltip": "How many quads the geometry buffer can hold", + "voxy.config.general.maxSections": "Max Sections", + "voxy.config.general.maxSections.tooltip": "The max number of sections the renderer can contain", + + "voxy.config.threads.ingest": "Ingest", + "voxy.config.threads.ingest.tooltip": "How many threads voxy will use for ingesting new chunks", + "voxy.config.threads.saving": "Saving", + "voxy.config.threads.saving.tooltip": "How many threads voxy will use for saving sections to the storage backend", + "voxy.config.threads.render": "Render", + "voxy.config.threads.render.tooltip": "How many threads voxy will use for generating render data" +} \ No newline at end of file