From 7ead4a9f964edf4fa6ad21d71305c5f134cf85ef Mon Sep 17 00:00:00 2001 From: mcrcortex <{ID}+{username}@users.noreply.github.com> Date: Sun, 21 Jan 2024 12:34:47 +1000 Subject: [PATCH] Dev work --- .../me/cortex/zenith/client/config/ScreenFactory.java | 11 ----------- .../client/config/ZenithConfigScreenFactory.java | 5 +++++ .../java/me/cortex/zenith/client/core/VoxelCore.java | 10 +++++----- .../client/core/rendering/Gl46FarWorldRenderer.java | 3 ++- .../mixin/minecraft/MixinClientChunkManager.java | 2 +- ...ptor.java => FragmentedStorageBackendAdaptor.java} | 6 +++--- 6 files changed, 16 insertions(+), 21 deletions(-) delete mode 100644 src/main/java/me/cortex/zenith/client/config/ScreenFactory.java rename src/main/java/me/cortex/zenith/common/world/storage/{SplicedStorageBackendAdaptor.java => FragmentedStorageBackendAdaptor.java} (93%) diff --git a/src/main/java/me/cortex/zenith/client/config/ScreenFactory.java b/src/main/java/me/cortex/zenith/client/config/ScreenFactory.java deleted file mode 100644 index 2c236e90..00000000 --- a/src/main/java/me/cortex/zenith/client/config/ScreenFactory.java +++ /dev/null @@ -1,11 +0,0 @@ -package me.cortex.zenith.client.config; - -import com.terraformersmc.modmenu.api.ConfigScreenFactory; -import com.terraformersmc.modmenu.api.ModMenuApi; - -public class ScreenFactory implements ModMenuApi { - @Override - public ConfigScreenFactory getModConfigScreenFactory() { - return parent -> null; - } -} diff --git a/src/main/java/me/cortex/zenith/client/config/ZenithConfigScreenFactory.java b/src/main/java/me/cortex/zenith/client/config/ZenithConfigScreenFactory.java index 1097564d..9bf624a7 100644 --- a/src/main/java/me/cortex/zenith/client/config/ZenithConfigScreenFactory.java +++ b/src/main/java/me/cortex/zenith/client/config/ZenithConfigScreenFactory.java @@ -1,7 +1,12 @@ package me.cortex.zenith.client.config; +import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ModMenuApi; public class ZenithConfigScreenFactory implements ModMenuApi { + @Override + public ConfigScreenFactory getModConfigScreenFactory() { + return parent -> null; + } } diff --git a/src/main/java/me/cortex/zenith/client/core/VoxelCore.java b/src/main/java/me/cortex/zenith/client/core/VoxelCore.java index 60341f95..4a6795f0 100644 --- a/src/main/java/me/cortex/zenith/client/core/VoxelCore.java +++ b/src/main/java/me/cortex/zenith/client/core/VoxelCore.java @@ -9,8 +9,7 @@ import me.cortex.zenith.client.core.other.BlockStateColour; import me.cortex.zenith.client.core.other.ColourResolver; import me.cortex.zenith.common.world.other.Mapper; import me.cortex.zenith.client.importers.WorldImporter; -import me.cortex.zenith.common.world.storage.SplicedStorageBackendAdaptor; -import me.cortex.zenith.common.world.storage.lmdb.LMDBStorageBackend; +import me.cortex.zenith.common.world.storage.FragmentedStorageBackendAdaptor; import net.minecraft.block.Block; import net.minecraft.block.Blocks; import net.minecraft.client.render.Camera; @@ -39,7 +38,8 @@ import java.util.*; //Ingest -> world engine -> raw render data -> render data public class VoxelCore { private static final Set biomeTintableAllFaces = new HashSet<>(List.of(Blocks.OAK_LEAVES, Blocks.JUNGLE_LEAVES, Blocks.ACACIA_LEAVES, Blocks.DARK_OAK_LEAVES, Blocks.VINE, Blocks.MANGROVE_LEAVES, - Blocks.TALL_GRASS, Blocks.LARGE_FERN, Blocks.SHORT_GRASS, + Blocks.TALL_GRASS, Blocks.LARGE_FERN, + //Blocks.SHORT_GRASS, Blocks.SPRUCE_LEAVES, Blocks.BIRCH_LEAVES, @@ -66,7 +66,7 @@ public class VoxelCore { SharedIndexBuffer.INSTANCE.id(); this.renderer = new Gl46FarWorldRenderer(); System.out.println("Renderer initialized"); - this.world = new WorldEngine(new SplicedStorageBackendAdaptor(), 2, 20, 5);//"storagefile.db"//"ethoslab.db" + this.world = new WorldEngine(new FragmentedStorageBackendAdaptor(), 4, 20, 5);//"storagefile.db"//"ethoslab.db" System.out.println("World engine"); this.renderTracker = new RenderTracker(this.world, this.renderer); @@ -76,7 +76,7 @@ public class VoxelCore { System.out.println("Render tracker and generator initialized"); //To get to chunk scale multiply the scale by 2, the scale is after how many chunks does the lods halve - this.distanceTracker = new DistanceTracker(this.renderTracker, 5, 64);//16 + this.distanceTracker = new DistanceTracker(this.renderTracker, 5, 64);//16//64 System.out.println("Distance tracker initialized"); this.postProcessing = null;//new PostProcessing(); diff --git a/src/main/java/me/cortex/zenith/client/core/rendering/Gl46FarWorldRenderer.java b/src/main/java/me/cortex/zenith/client/core/rendering/Gl46FarWorldRenderer.java index e8d2da15..bfabb4aa 100644 --- a/src/main/java/me/cortex/zenith/client/core/rendering/Gl46FarWorldRenderer.java +++ b/src/main/java/me/cortex/zenith/client/core/rendering/Gl46FarWorldRenderer.java @@ -111,8 +111,9 @@ public class Gl46FarWorldRenderer extends AbstractFarWorldRenderer { glDepthMask(false); //glEnable(GL_REPRESENTATIVE_FRAGMENT_TEST_NV); - glDrawElementsInstanced(GL_TRIANGLES, 6 * 2 * 3, GL_UNSIGNED_BYTE, (1 << 16) * 6 * 2, this.geometry.getSectionCount()); + //glDisable(GL_REPRESENTATIVE_FRAGMENT_TEST_NV); + glDepthMask(true); glColorMask(true, true, true, true); glMemoryBarrier(GL_SHADER_STORAGE_BARRIER_BIT); diff --git a/src/main/java/me/cortex/zenith/client/mixin/minecraft/MixinClientChunkManager.java b/src/main/java/me/cortex/zenith/client/mixin/minecraft/MixinClientChunkManager.java index 36f3ecbe..fa064896 100644 --- a/src/main/java/me/cortex/zenith/client/mixin/minecraft/MixinClientChunkManager.java +++ b/src/main/java/me/cortex/zenith/client/mixin/minecraft/MixinClientChunkManager.java @@ -13,7 +13,7 @@ import org.spongepowered.asm.mixin.injection.callback.LocalCapture; @Mixin(ClientChunkManager.class) public class MixinClientChunkManager { - @Inject(method = "unload", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/world/ClientChunkManager$ClientChunkMap;compareAndSet(ILnet/minecraft/world/chunk/WorldChunk;Lnet/minecraft/world/chunk/WorldChunk;)Lnet/minecraft/world/chunk/WorldChunk;", shift = At.Shift.BEFORE), locals = LocalCapture.CAPTURE_FAILHARD) + @Inject(require = 0, method = "unload", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/world/ClientChunkManager$ClientChunkMap;compareAndSet(ILnet/minecraft/world/chunk/WorldChunk;Lnet/minecraft/world/chunk/WorldChunk;)Lnet/minecraft/world/chunk/WorldChunk;", shift = At.Shift.BEFORE), locals = LocalCapture.CAPTURE_FAILHARD) private void injectUnload(ChunkPos pos, CallbackInfo ci, int index, WorldChunk worldChunk) { var core = ((IGetVoxelCore)MinecraftClient.getInstance().worldRenderer).getVoxelCore(); if (core != null) { diff --git a/src/main/java/me/cortex/zenith/common/world/storage/SplicedStorageBackendAdaptor.java b/src/main/java/me/cortex/zenith/common/world/storage/FragmentedStorageBackendAdaptor.java similarity index 93% rename from src/main/java/me/cortex/zenith/common/world/storage/SplicedStorageBackendAdaptor.java rename to src/main/java/me/cortex/zenith/common/world/storage/FragmentedStorageBackendAdaptor.java index 654856da..bda6a8b1 100644 --- a/src/main/java/me/cortex/zenith/common/world/storage/SplicedStorageBackendAdaptor.java +++ b/src/main/java/me/cortex/zenith/common/world/storage/FragmentedStorageBackendAdaptor.java @@ -8,12 +8,12 @@ import java.io.File; import java.nio.ByteBuffer; //Segments the section data into multiple dbs -public class SplicedStorageBackendAdaptor extends StorageBackend { +public class FragmentedStorageBackendAdaptor extends StorageBackend { private final StorageBackend[] backends = new StorageBackend[32]; - public SplicedStorageBackendAdaptor() { + public FragmentedStorageBackendAdaptor() { for (int i = 0; i < this.backends.length; i++) { - this.backends[i] = new LMDBStorageBackend(new File("db_store/storage-db-"+i+".db")); + this.backends[i] = new LMDBStorageBackend(new File("storage-db-"+i+".db")); } }