diff --git a/src/main/java/me/cortex/voxelmon/IGetVoxelCore.java b/src/main/java/me/cortex/voxelmon/IGetVoxelCore.java deleted file mode 100644 index a87559a7..00000000 --- a/src/main/java/me/cortex/voxelmon/IGetVoxelCore.java +++ /dev/null @@ -1,7 +0,0 @@ -package me.cortex.voxelmon; - -import me.cortex.voxelmon.core.VoxelCore; - -public interface IGetVoxelCore { - VoxelCore getVoxelCore(); -} diff --git a/src/main/java/me/cortex/voxelmon/Voxelmon.java b/src/main/java/me/cortex/voxelmon/Voxelmon.java deleted file mode 100644 index cfd358ce..00000000 --- a/src/main/java/me/cortex/voxelmon/Voxelmon.java +++ /dev/null @@ -1,18 +0,0 @@ -package me.cortex.voxelmon; - -import me.cortex.voxelmon.terrain.TestSparseGenCommand; -//import me.cortex.voxelmon.terrain.WorldImportCommand; -import me.cortex.voxelmon.terrain.WorldImportCommand; -import net.fabricmc.api.ClientModInitializer; -import net.fabricmc.api.ModInitializer; -import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; -import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; - -public class Voxelmon implements ClientModInitializer { - @Override - public void onInitializeClient() { - ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> { - dispatcher.register(WorldImportCommand.register()); - }); - } -} diff --git a/src/main/java/me/cortex/voxelmon/client/IGetVoxelCore.java b/src/main/java/me/cortex/voxelmon/client/IGetVoxelCore.java new file mode 100644 index 00000000..07f6c679 --- /dev/null +++ b/src/main/java/me/cortex/voxelmon/client/IGetVoxelCore.java @@ -0,0 +1,7 @@ +package me.cortex.voxelmon.client; + +import me.cortex.voxelmon.client.core.VoxelCore; + +public interface IGetVoxelCore { + VoxelCore getVoxelCore(); +} diff --git a/src/main/java/me/cortex/voxelmon/Test.java b/src/main/java/me/cortex/voxelmon/client/Test.java similarity index 88% rename from src/main/java/me/cortex/voxelmon/Test.java rename to src/main/java/me/cortex/voxelmon/client/Test.java index eb47a669..d016e473 100644 --- a/src/main/java/me/cortex/voxelmon/Test.java +++ b/src/main/java/me/cortex/voxelmon/client/Test.java @@ -1,9 +1,8 @@ -package me.cortex.voxelmon; +package me.cortex.voxelmon.client; -import me.cortex.voxelmon.core.world.WorldEngine; -import me.cortex.voxelmon.core.world.storage.LMDBInterface; -import me.cortex.voxelmon.core.world.storage.StorageBackend; -import me.cortex.voxelmon.importers.WorldImporter; +import me.cortex.voxelmon.common.world.storage.LMDBInterface; +import me.cortex.voxelmon.common.world.storage.StorageBackend; +import me.cortex.voxelmon.client.importers.WorldImporter; import org.lwjgl.system.MemoryUtil; import java.io.File; diff --git a/src/main/java/me/cortex/voxelmon/client/Voxelmon.java b/src/main/java/me/cortex/voxelmon/client/Voxelmon.java new file mode 100644 index 00000000..43bbe428 --- /dev/null +++ b/src/main/java/me/cortex/voxelmon/client/Voxelmon.java @@ -0,0 +1,15 @@ +package me.cortex.voxelmon.client; + +//import me.cortex.voxelmon.client.terrain.WorldImportCommand; +import me.cortex.voxelmon.client.terrain.WorldImportCommand; +import net.fabricmc.api.ClientModInitializer; + import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; + +public class Voxelmon implements ClientModInitializer { + @Override + public void onInitializeClient() { + ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> { + dispatcher.register(WorldImportCommand.register()); + }); + } +} diff --git a/src/main/java/me/cortex/voxelmon/core/DistanceTracker.java b/src/main/java/me/cortex/voxelmon/client/core/DistanceTracker.java similarity index 95% rename from src/main/java/me/cortex/voxelmon/core/DistanceTracker.java rename to src/main/java/me/cortex/voxelmon/client/core/DistanceTracker.java index 937ecd17..ad995408 100644 --- a/src/main/java/me/cortex/voxelmon/core/DistanceTracker.java +++ b/src/main/java/me/cortex/voxelmon/client/core/DistanceTracker.java @@ -1,17 +1,11 @@ -package me.cortex.voxelmon.core; +package me.cortex.voxelmon.client.core; //Contains the logic to determine what is loaded and at what LoD level, dispatches render changes // also determines what faces are built etc -import it.unimi.dsi.fastutil.Arrays; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; -import it.unimi.dsi.fastutil.longs.LongOpenHashSet; -import me.cortex.voxelmon.core.rendering.AbstractFarWorldRenderer; -import me.cortex.voxelmon.core.rendering.RenderTracker; -import me.cortex.voxelmon.core.rendering.building.RenderGenerationService; -import me.cortex.voxelmon.core.util.DebugUtil; -import me.cortex.voxelmon.core.util.RingUtil; -import me.cortex.voxelmon.core.world.WorldEngine; +import me.cortex.voxelmon.client.core.rendering.RenderTracker; +import me.cortex.voxelmon.client.core.util.RingUtil; import net.minecraft.client.MinecraftClient; //Can use ring logic diff --git a/src/main/java/me/cortex/voxelmon/core/TreeDistanceTracker.java b/src/main/java/me/cortex/voxelmon/client/core/TreeDistanceTracker.java similarity index 85% rename from src/main/java/me/cortex/voxelmon/core/TreeDistanceTracker.java rename to src/main/java/me/cortex/voxelmon/client/core/TreeDistanceTracker.java index b40559b9..f6dd49d8 100644 --- a/src/main/java/me/cortex/voxelmon/core/TreeDistanceTracker.java +++ b/src/main/java/me/cortex/voxelmon/client/core/TreeDistanceTracker.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core; +package me.cortex.voxelmon.client.core; //Tracks the distance with respect to the entire world size public class TreeDistanceTracker { diff --git a/src/main/java/me/cortex/voxelmon/core/VoxelCore.java b/src/main/java/me/cortex/voxelmon/client/core/VoxelCore.java similarity index 88% rename from src/main/java/me/cortex/voxelmon/core/VoxelCore.java rename to src/main/java/me/cortex/voxelmon/client/core/VoxelCore.java index 7dbc3b4f..d8a5066c 100644 --- a/src/main/java/me/cortex/voxelmon/core/VoxelCore.java +++ b/src/main/java/me/cortex/voxelmon/client/core/VoxelCore.java @@ -1,37 +1,26 @@ -package me.cortex.voxelmon.core; +package me.cortex.voxelmon.client.core; -import com.mojang.blaze3d.platform.GlStateManager; -import me.cortex.voxelmon.core.rendering.*; -import me.cortex.voxelmon.core.rendering.building.BuiltSectionGeometry; -import me.cortex.voxelmon.core.rendering.building.RenderGenerationService; -import me.cortex.voxelmon.core.util.DebugUtil; -import me.cortex.voxelmon.core.util.MemoryBuffer; -import me.cortex.voxelmon.core.util.RingUtil; -import me.cortex.voxelmon.core.world.WorldEngine; -import me.cortex.voxelmon.core.world.WorldSection; -import me.cortex.voxelmon.core.world.other.BiomeColour; -import me.cortex.voxelmon.core.world.other.BlockStateColour; -import me.cortex.voxelmon.core.world.other.ColourResolver; -import me.cortex.voxelmon.core.world.other.Mapper; -import me.cortex.voxelmon.importers.WorldImporter; +import me.cortex.voxelmon.client.core.rendering.*; +import me.cortex.voxelmon.client.core.rendering.building.RenderGenerationService; +import me.cortex.voxelmon.client.core.util.DebugUtil; +import me.cortex.voxelmon.common.world.WorldEngine; +import me.cortex.voxelmon.client.core.other.BiomeColour; +import me.cortex.voxelmon.client.core.other.BlockStateColour; +import me.cortex.voxelmon.client.core.other.ColourResolver; +import me.cortex.voxelmon.common.world.other.Mapper; +import me.cortex.voxelmon.client.importers.WorldImporter; import net.minecraft.block.Block; import net.minecraft.block.Blocks; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.Camera; import net.minecraft.client.render.Frustum; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.math.Box; import net.minecraft.util.math.Direction; import net.minecraft.world.World; import net.minecraft.world.chunk.WorldChunk; -import org.lwjgl.system.MemoryUtil; import java.io.File; import java.util.*; -import static org.lwjgl.opengl.ARBFramebufferObject.GL_FRAMEBUFFER; -import static org.lwjgl.opengl.ARBFramebufferObject.glBindFramebuffer; - //Core class that ingests new data from sources and updates the required systems //3 primary services: @@ -80,7 +69,7 @@ public class VoxelCore { this.renderTracker = new RenderTracker(this.world, this.renderer); this.renderGen = new RenderGenerationService(this.world,5, this.renderTracker::processBuildResult); - this.world.setRenderTracker(this.renderTracker); + this.world.setDirtyCallback(this.renderTracker::sectionUpdated); this.renderTracker.setRenderGen(this.renderGen); System.out.println("Render tracker and generator initialized"); diff --git a/src/main/java/me/cortex/voxelmon/core/gl/GlBuffer.java b/src/main/java/me/cortex/voxelmon/client/core/gl/GlBuffer.java similarity index 87% rename from src/main/java/me/cortex/voxelmon/core/gl/GlBuffer.java rename to src/main/java/me/cortex/voxelmon/client/core/gl/GlBuffer.java index b3889344..f7d3fedb 100644 --- a/src/main/java/me/cortex/voxelmon/core/gl/GlBuffer.java +++ b/src/main/java/me/cortex/voxelmon/client/core/gl/GlBuffer.java @@ -1,6 +1,6 @@ -package me.cortex.voxelmon.core.gl; +package me.cortex.voxelmon.client.core.gl; -import me.cortex.voxelmon.core.util.TrackedObject; +import me.cortex.voxelmon.common.util.TrackedObject; import static org.lwjgl.opengl.GL15.glDeleteBuffers; import static org.lwjgl.opengl.GL44C.glBufferStorage; diff --git a/src/main/java/me/cortex/voxelmon/core/gl/GlFence.java b/src/main/java/me/cortex/voxelmon/client/core/gl/GlFence.java similarity index 89% rename from src/main/java/me/cortex/voxelmon/core/gl/GlFence.java rename to src/main/java/me/cortex/voxelmon/client/core/gl/GlFence.java index e0d9ff12..7038bbbd 100644 --- a/src/main/java/me/cortex/voxelmon/core/gl/GlFence.java +++ b/src/main/java/me/cortex/voxelmon/client/core/gl/GlFence.java @@ -1,6 +1,6 @@ -package me.cortex.voxelmon.core.gl; +package me.cortex.voxelmon.client.core.gl; -import me.cortex.voxelmon.core.util.TrackedObject; +import me.cortex.voxelmon.common.util.TrackedObject; import static org.lwjgl.opengl.GL32.*; diff --git a/src/main/java/me/cortex/voxelmon/core/gl/GlFramebuffer.java b/src/main/java/me/cortex/voxelmon/client/core/gl/GlFramebuffer.java similarity index 86% rename from src/main/java/me/cortex/voxelmon/core/gl/GlFramebuffer.java rename to src/main/java/me/cortex/voxelmon/client/core/gl/GlFramebuffer.java index 6caa53b9..61a25266 100644 --- a/src/main/java/me/cortex/voxelmon/core/gl/GlFramebuffer.java +++ b/src/main/java/me/cortex/voxelmon/client/core/gl/GlFramebuffer.java @@ -1,7 +1,6 @@ -package me.cortex.voxelmon.core.gl; +package me.cortex.voxelmon.client.core.gl; -import me.cortex.voxelmon.core.util.TrackedObject; -import org.lwjgl.opengl.GL30C; +import me.cortex.voxelmon.common.util.TrackedObject; import static org.lwjgl.opengl.GL45C.*; diff --git a/src/main/java/me/cortex/voxelmon/core/gl/GlPersistentMappedBuffer.java b/src/main/java/me/cortex/voxelmon/client/core/gl/GlPersistentMappedBuffer.java similarity index 79% rename from src/main/java/me/cortex/voxelmon/core/gl/GlPersistentMappedBuffer.java rename to src/main/java/me/cortex/voxelmon/client/core/gl/GlPersistentMappedBuffer.java index 938503dc..d474205d 100644 --- a/src/main/java/me/cortex/voxelmon/core/gl/GlPersistentMappedBuffer.java +++ b/src/main/java/me/cortex/voxelmon/client/core/gl/GlPersistentMappedBuffer.java @@ -1,9 +1,7 @@ -package me.cortex.voxelmon.core.gl; +package me.cortex.voxelmon.client.core.gl; -import me.cortex.voxelmon.core.util.TrackedObject; +import me.cortex.voxelmon.common.util.TrackedObject; -import static org.lwjgl.opengl.ARBMapBufferRange.GL_MAP_FLUSH_EXPLICIT_BIT; -import static org.lwjgl.opengl.ARBMapBufferRange.GL_MAP_UNSYNCHRONIZED_BIT; import static org.lwjgl.opengl.ARBMapBufferRange.GL_MAP_WRITE_BIT; import static org.lwjgl.opengl.GL15.glDeleteBuffers; import static org.lwjgl.opengl.GL45C.*; diff --git a/src/main/java/me/cortex/voxelmon/core/gl/GlTexture.java b/src/main/java/me/cortex/voxelmon/client/core/gl/GlTexture.java similarity index 91% rename from src/main/java/me/cortex/voxelmon/core/gl/GlTexture.java rename to src/main/java/me/cortex/voxelmon/client/core/gl/GlTexture.java index 177c1688..6227c065 100644 --- a/src/main/java/me/cortex/voxelmon/core/gl/GlTexture.java +++ b/src/main/java/me/cortex/voxelmon/client/core/gl/GlTexture.java @@ -1,6 +1,6 @@ -package me.cortex.voxelmon.core.gl; +package me.cortex.voxelmon.client.core.gl; -import me.cortex.voxelmon.core.util.TrackedObject; +import me.cortex.voxelmon.common.util.TrackedObject; import static org.lwjgl.opengl.ARBFramebufferObject.glDeleteFramebuffers; import static org.lwjgl.opengl.ARBFramebufferObject.glGenFramebuffers; diff --git a/src/main/java/me/cortex/voxelmon/core/gl/shader/IShaderProcessor.java b/src/main/java/me/cortex/voxelmon/client/core/gl/shader/IShaderProcessor.java similarity index 64% rename from src/main/java/me/cortex/voxelmon/core/gl/shader/IShaderProcessor.java rename to src/main/java/me/cortex/voxelmon/client/core/gl/shader/IShaderProcessor.java index 67d33fe8..a4eeeed3 100644 --- a/src/main/java/me/cortex/voxelmon/core/gl/shader/IShaderProcessor.java +++ b/src/main/java/me/cortex/voxelmon/client/core/gl/shader/IShaderProcessor.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.gl.shader; +package me.cortex.voxelmon.client.core.gl.shader; public interface IShaderProcessor { String process(ShaderType type, String source); diff --git a/src/main/java/me/cortex/voxelmon/core/gl/shader/Shader.java b/src/main/java/me/cortex/voxelmon/client/core/gl/shader/Shader.java similarity index 96% rename from src/main/java/me/cortex/voxelmon/core/gl/shader/Shader.java rename to src/main/java/me/cortex/voxelmon/client/core/gl/shader/Shader.java index 5e874b36..fe699722 100644 --- a/src/main/java/me/cortex/voxelmon/core/gl/shader/Shader.java +++ b/src/main/java/me/cortex/voxelmon/client/core/gl/shader/Shader.java @@ -1,6 +1,6 @@ -package me.cortex.voxelmon.core.gl.shader; +package me.cortex.voxelmon.client.core.gl.shader; -import me.cortex.voxelmon.core.util.TrackedObject; +import me.cortex.voxelmon.common.util.TrackedObject; import org.lwjgl.opengl.GL20C; import java.util.HashMap; diff --git a/src/main/java/me/cortex/voxelmon/core/gl/shader/ShaderLoader.java b/src/main/java/me/cortex/voxelmon/client/core/gl/shader/ShaderLoader.java similarity index 83% rename from src/main/java/me/cortex/voxelmon/core/gl/shader/ShaderLoader.java rename to src/main/java/me/cortex/voxelmon/client/core/gl/shader/ShaderLoader.java index ea98a838..d85e9d96 100644 --- a/src/main/java/me/cortex/voxelmon/core/gl/shader/ShaderLoader.java +++ b/src/main/java/me/cortex/voxelmon/client/core/gl/shader/ShaderLoader.java @@ -1,8 +1,7 @@ -package me.cortex.voxelmon.core.gl.shader; +package me.cortex.voxelmon.client.core.gl.shader; import me.jellysquid.mods.sodium.client.gl.shader.ShaderConstants; import me.jellysquid.mods.sodium.client.gl.shader.ShaderParser; -import net.minecraft.util.Identifier; public class ShaderLoader { public static String parse(String id) { diff --git a/src/main/java/me/cortex/voxelmon/core/gl/shader/ShaderType.java b/src/main/java/me/cortex/voxelmon/client/core/gl/shader/ShaderType.java similarity index 91% rename from src/main/java/me/cortex/voxelmon/core/gl/shader/ShaderType.java rename to src/main/java/me/cortex/voxelmon/client/core/gl/shader/ShaderType.java index fc7e7e2a..9fcf8082 100644 --- a/src/main/java/me/cortex/voxelmon/core/gl/shader/ShaderType.java +++ b/src/main/java/me/cortex/voxelmon/client/core/gl/shader/ShaderType.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.gl.shader; +package me.cortex.voxelmon.client.core.gl.shader; import static org.lwjgl.opengl.GL20.GL_FRAGMENT_SHADER; diff --git a/src/main/java/me/cortex/voxelmon/core/world/other/BiomeColour.java b/src/main/java/me/cortex/voxelmon/client/core/other/BiomeColour.java similarity index 61% rename from src/main/java/me/cortex/voxelmon/core/world/other/BiomeColour.java rename to src/main/java/me/cortex/voxelmon/client/core/other/BiomeColour.java index a50c2ffd..159d130b 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/other/BiomeColour.java +++ b/src/main/java/me/cortex/voxelmon/client/core/other/BiomeColour.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.world.other; +package me.cortex.voxelmon.client.core.other; public record BiomeColour(int id, int foliageColour, int waterColour) { } diff --git a/src/main/java/me/cortex/voxelmon/core/world/other/BlockStateColour.java b/src/main/java/me/cortex/voxelmon/client/core/other/BlockStateColour.java similarity index 63% rename from src/main/java/me/cortex/voxelmon/core/world/other/BlockStateColour.java rename to src/main/java/me/cortex/voxelmon/client/core/other/BlockStateColour.java index a678eb49..7aeebcd2 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/other/BlockStateColour.java +++ b/src/main/java/me/cortex/voxelmon/client/core/other/BlockStateColour.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.world.other; +package me.cortex.voxelmon.client.core.other; public record BlockStateColour(int id, int biomeTintMsk, int[] faceColours) { } diff --git a/src/main/java/me/cortex/voxelmon/core/world/other/ColourResolver.java b/src/main/java/me/cortex/voxelmon/client/core/other/ColourResolver.java similarity index 97% rename from src/main/java/me/cortex/voxelmon/core/world/other/ColourResolver.java rename to src/main/java/me/cortex/voxelmon/client/core/other/ColourResolver.java index b7a02116..52ab7092 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/other/ColourResolver.java +++ b/src/main/java/me/cortex/voxelmon/client/core/other/ColourResolver.java @@ -1,18 +1,14 @@ -package me.cortex.voxelmon.core.world.other; +package me.cortex.voxelmon.client.core.other; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.model.BakedQuad; import net.minecraft.client.texture.NativeImage; -import net.minecraft.client.texture.Sprite; import net.minecraft.registry.RegistryKeys; import net.minecraft.util.Identifier; import net.minecraft.util.math.Direction; import net.minecraft.util.math.random.LocalRandom; -import net.minecraft.world.biome.BiomeKeys; - -import java.util.List; public class ColourResolver { //TODO: sample from multiple random values and avg it diff --git a/src/main/java/me/cortex/voxelmon/core/rendering/AbstractFarWorldRenderer.java b/src/main/java/me/cortex/voxelmon/client/core/rendering/AbstractFarWorldRenderer.java similarity index 93% rename from src/main/java/me/cortex/voxelmon/core/rendering/AbstractFarWorldRenderer.java rename to src/main/java/me/cortex/voxelmon/client/core/rendering/AbstractFarWorldRenderer.java index c60add4c..a7fc4605 100644 --- a/src/main/java/me/cortex/voxelmon/core/rendering/AbstractFarWorldRenderer.java +++ b/src/main/java/me/cortex/voxelmon/client/core/rendering/AbstractFarWorldRenderer.java @@ -1,13 +1,13 @@ -package me.cortex.voxelmon.core.rendering; +package me.cortex.voxelmon.client.core.rendering; //NOTE: an idea on how to do it is so that any render section, we _keep_ aquired (yes this will be very memory intensive) // could maybe tosomething else -import me.cortex.voxelmon.core.gl.GlBuffer; -import me.cortex.voxelmon.core.rendering.building.BuiltSectionGeometry; -import me.cortex.voxelmon.core.rendering.util.UploadStream; -import me.cortex.voxelmon.core.world.other.BiomeColour; -import me.cortex.voxelmon.core.world.other.BlockStateColour; +import me.cortex.voxelmon.client.core.gl.GlBuffer; +import me.cortex.voxelmon.client.core.rendering.building.BuiltSectionGeometry; +import me.cortex.voxelmon.client.core.rendering.util.UploadStream; +import me.cortex.voxelmon.client.core.other.BiomeColour; +import me.cortex.voxelmon.client.core.other.BlockStateColour; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.Camera; import net.minecraft.client.render.Frustum; diff --git a/src/main/java/me/cortex/voxelmon/core/rendering/GeometryManager.java b/src/main/java/me/cortex/voxelmon/client/core/rendering/GeometryManager.java similarity index 92% rename from src/main/java/me/cortex/voxelmon/core/rendering/GeometryManager.java rename to src/main/java/me/cortex/voxelmon/client/core/rendering/GeometryManager.java index adbde066..bb41156f 100644 --- a/src/main/java/me/cortex/voxelmon/core/rendering/GeometryManager.java +++ b/src/main/java/me/cortex/voxelmon/client/core/rendering/GeometryManager.java @@ -1,19 +1,14 @@ -package me.cortex.voxelmon.core.rendering; +package me.cortex.voxelmon.client.core.rendering; -import it.unimi.dsi.fastutil.ints.Int2LongOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; -import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.LongArrayList; import it.unimi.dsi.fastutil.objects.ObjectArrayList; -import me.cortex.voxelmon.core.gl.GlBuffer; -import me.cortex.voxelmon.core.rendering.building.BuiltSectionGeometry; -import me.cortex.voxelmon.core.rendering.util.BufferArena; -import me.cortex.voxelmon.core.rendering.util.UploadStream; -import me.cortex.voxelmon.core.util.IndexUtil; -import me.cortex.voxelmon.core.util.MemoryBuffer; +import me.cortex.voxelmon.client.core.gl.GlBuffer; +import me.cortex.voxelmon.client.core.rendering.building.BuiltSectionGeometry; +import me.cortex.voxelmon.client.core.rendering.util.BufferArena; +import me.cortex.voxelmon.client.core.rendering.util.UploadStream; import org.lwjgl.system.MemoryUtil; -import java.util.Random; import java.util.concurrent.ConcurrentLinkedDeque; public class GeometryManager { diff --git a/src/main/java/me/cortex/voxelmon/core/rendering/Gl46FarWorldRenderer.java b/src/main/java/me/cortex/voxelmon/client/core/rendering/Gl46FarWorldRenderer.java similarity index 94% rename from src/main/java/me/cortex/voxelmon/core/rendering/Gl46FarWorldRenderer.java rename to src/main/java/me/cortex/voxelmon/client/core/rendering/Gl46FarWorldRenderer.java index 959f845a..9f6dcb06 100644 --- a/src/main/java/me/cortex/voxelmon/core/rendering/Gl46FarWorldRenderer.java +++ b/src/main/java/me/cortex/voxelmon/client/core/rendering/Gl46FarWorldRenderer.java @@ -1,12 +1,11 @@ -package me.cortex.voxelmon.core.rendering; +package me.cortex.voxelmon.client.core.rendering; import com.mojang.blaze3d.systems.RenderSystem; -import me.cortex.voxelmon.core.gl.GlBuffer; -import me.cortex.voxelmon.core.gl.shader.Shader; -import me.cortex.voxelmon.core.gl.shader.ShaderType; -import me.cortex.voxelmon.core.rendering.util.UploadStream; -import me.cortex.voxelmon.mixin.joml.AccessFrustumIntersection; -import net.minecraft.client.MinecraftClient; +import me.cortex.voxelmon.client.core.gl.GlBuffer; +import me.cortex.voxelmon.client.core.gl.shader.Shader; +import me.cortex.voxelmon.client.core.gl.shader.ShaderType; +import me.cortex.voxelmon.client.core.rendering.util.UploadStream; +import me.cortex.voxelmon.client.mixin.joml.AccessFrustumIntersection; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.util.math.MatrixStack; import org.joml.Matrix4f; diff --git a/src/main/java/me/cortex/voxelmon/core/rendering/ModelManager.java b/src/main/java/me/cortex/voxelmon/client/core/rendering/ModelManager.java similarity index 67% rename from src/main/java/me/cortex/voxelmon/core/rendering/ModelManager.java rename to src/main/java/me/cortex/voxelmon/client/core/rendering/ModelManager.java index 99242ae5..3b331cc5 100644 --- a/src/main/java/me/cortex/voxelmon/core/rendering/ModelManager.java +++ b/src/main/java/me/cortex/voxelmon/client/core/rendering/ModelManager.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.rendering; +package me.cortex.voxelmon.client.core.rendering; //Manages the storage and updating of model states, textures and colours public class ModelManager { diff --git a/src/main/java/me/cortex/voxelmon/core/rendering/NvFarWorldRenderer.java b/src/main/java/me/cortex/voxelmon/client/core/rendering/NvFarWorldRenderer.java similarity index 74% rename from src/main/java/me/cortex/voxelmon/core/rendering/NvFarWorldRenderer.java rename to src/main/java/me/cortex/voxelmon/client/core/rendering/NvFarWorldRenderer.java index f2d5444f..97d2dcb5 100644 --- a/src/main/java/me/cortex/voxelmon/core/rendering/NvFarWorldRenderer.java +++ b/src/main/java/me/cortex/voxelmon/client/core/rendering/NvFarWorldRenderer.java @@ -1,19 +1,13 @@ -package me.cortex.voxelmon.core.rendering; +package me.cortex.voxelmon.client.core.rendering; -import me.cortex.voxelmon.core.gl.shader.Shader; -import me.cortex.voxelmon.core.gl.shader.ShaderType; -import me.cortex.voxelmon.core.rendering.util.UploadStream; +import me.cortex.voxelmon.client.core.gl.shader.Shader; +import me.cortex.voxelmon.client.core.gl.shader.ShaderType; +import me.cortex.voxelmon.client.core.rendering.util.UploadStream; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.util.math.MatrixStack; import static org.lwjgl.opengl.ARBMultiDrawIndirect.glMultiDrawElementsIndirect; -import static org.lwjgl.opengl.GL11.GL_TRIANGLES; -import static org.lwjgl.opengl.GL11.GL_UNSIGNED_SHORT; import static org.lwjgl.opengl.GL30.glBindVertexArray; -import static org.lwjgl.opengl.GL42.*; -import static org.lwjgl.opengl.GL42.GL_FRAMEBUFFER_BARRIER_BIT; -import static org.lwjgl.opengl.GL43.GL_SHADER_STORAGE_BARRIER_BIT; -import static org.lwjgl.opengl.GL43.glDispatchCompute; import static org.lwjgl.opengl.NVMeshShader.glDrawMeshTasksNV; //TODO: make this a 2 phase culling system diff --git a/src/main/java/me/cortex/voxelmon/core/rendering/PostProcessing.java b/src/main/java/me/cortex/voxelmon/client/core/rendering/PostProcessing.java similarity index 82% rename from src/main/java/me/cortex/voxelmon/core/rendering/PostProcessing.java rename to src/main/java/me/cortex/voxelmon/client/core/rendering/PostProcessing.java index e76d901d..c0b3a9d3 100644 --- a/src/main/java/me/cortex/voxelmon/core/rendering/PostProcessing.java +++ b/src/main/java/me/cortex/voxelmon/client/core/rendering/PostProcessing.java @@ -1,23 +1,17 @@ -package me.cortex.voxelmon.core.rendering; +package me.cortex.voxelmon.client.core.rendering; -import me.cortex.voxelmon.core.gl.GlFramebuffer; -import me.cortex.voxelmon.core.gl.GlTexture; -import me.cortex.voxelmon.core.gl.shader.Shader; -import me.cortex.voxelmon.core.gl.shader.ShaderType; +import me.cortex.voxelmon.client.core.gl.GlFramebuffer; +import me.cortex.voxelmon.client.core.gl.GlTexture; +import me.cortex.voxelmon.client.core.gl.shader.Shader; +import me.cortex.voxelmon.client.core.gl.shader.ShaderType; import org.lwjgl.opengl.GL11C; import static org.lwjgl.opengl.ARBFramebufferObject.*; import static org.lwjgl.opengl.ARBShaderImageLoadStore.glBindImageTexture; import static org.lwjgl.opengl.GL11.*; import static org.lwjgl.opengl.GL13.*; -import static org.lwjgl.opengl.GL15C.GL_READ_ONLY; import static org.lwjgl.opengl.GL15C.GL_READ_WRITE; -import static org.lwjgl.opengl.GL30C.GL_R32F; -import static org.lwjgl.opengl.GL42C.GL_SHADER_IMAGE_ACCESS_BARRIER_BIT; -import static org.lwjgl.opengl.GL42C.glMemoryBarrier; -import static org.lwjgl.opengl.GL43C.glDispatchCompute; import static org.lwjgl.opengl.GL44C.glBindImageTextures; -import static org.lwjgl.opengl.GL45C.glBlitNamedFramebuffer; import static org.lwjgl.opengl.GL45C.glTextureBarrier; public class PostProcessing { diff --git a/src/main/java/me/cortex/voxelmon/core/rendering/RenderTracker.java b/src/main/java/me/cortex/voxelmon/client/core/rendering/RenderTracker.java similarity index 96% rename from src/main/java/me/cortex/voxelmon/core/rendering/RenderTracker.java rename to src/main/java/me/cortex/voxelmon/client/core/rendering/RenderTracker.java index 7d60f5c8..b986112b 100644 --- a/src/main/java/me/cortex/voxelmon/core/rendering/RenderTracker.java +++ b/src/main/java/me/cortex/voxelmon/client/core/rendering/RenderTracker.java @@ -1,15 +1,13 @@ -package me.cortex.voxelmon.core.rendering; +package me.cortex.voxelmon.client.core.rendering; -import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; -import me.cortex.voxelmon.core.rendering.building.BuiltSectionGeometry; -import me.cortex.voxelmon.core.rendering.building.RenderGenerationService; -import me.cortex.voxelmon.core.world.WorldEngine; -import me.cortex.voxelmon.core.world.WorldSection; +import me.cortex.voxelmon.client.core.rendering.building.BuiltSectionGeometry; +import me.cortex.voxelmon.client.core.rendering.building.RenderGenerationService; +import me.cortex.voxelmon.common.world.WorldEngine; +import me.cortex.voxelmon.common.world.WorldSection; import net.minecraft.client.MinecraftClient; import net.minecraft.util.math.Direction; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentLinkedDeque; //Tracks active sections, dispatches updates to the build system, everything related to rendering flows through here public class RenderTracker { diff --git a/src/main/java/me/cortex/voxelmon/core/rendering/SharedIndexBuffer.java b/src/main/java/me/cortex/voxelmon/client/core/rendering/SharedIndexBuffer.java similarity index 90% rename from src/main/java/me/cortex/voxelmon/core/rendering/SharedIndexBuffer.java rename to src/main/java/me/cortex/voxelmon/client/core/rendering/SharedIndexBuffer.java index 80c8e2c1..c53c3876 100644 --- a/src/main/java/me/cortex/voxelmon/core/rendering/SharedIndexBuffer.java +++ b/src/main/java/me/cortex/voxelmon/client/core/rendering/SharedIndexBuffer.java @@ -1,10 +1,9 @@ -package me.cortex.voxelmon.core.rendering; +package me.cortex.voxelmon.client.core.rendering; -import me.cortex.voxelmon.core.gl.GlBuffer; -import me.cortex.voxelmon.core.rendering.util.BufferArena; -import me.cortex.voxelmon.core.rendering.util.UploadStream; -import me.cortex.voxelmon.core.util.IndexUtil; -import me.cortex.voxelmon.core.util.MemoryBuffer; +import me.cortex.voxelmon.client.core.gl.GlBuffer; +import me.cortex.voxelmon.client.core.rendering.util.UploadStream; +import me.cortex.voxelmon.client.core.util.IndexUtil; +import me.cortex.voxelmon.common.util.MemoryBuffer; import org.lwjgl.system.MemoryUtil; diff --git a/src/main/java/me/cortex/voxelmon/core/rendering/building/BuiltSectionGeometry.java b/src/main/java/me/cortex/voxelmon/client/core/rendering/building/BuiltSectionGeometry.java similarity index 85% rename from src/main/java/me/cortex/voxelmon/core/rendering/building/BuiltSectionGeometry.java rename to src/main/java/me/cortex/voxelmon/client/core/rendering/building/BuiltSectionGeometry.java index ffd31067..cfc0d12b 100644 --- a/src/main/java/me/cortex/voxelmon/core/rendering/building/BuiltSectionGeometry.java +++ b/src/main/java/me/cortex/voxelmon/client/core/rendering/building/BuiltSectionGeometry.java @@ -1,8 +1,7 @@ -package me.cortex.voxelmon.core.rendering.building; +package me.cortex.voxelmon.client.core.rendering.building; -import me.cortex.voxelmon.core.util.MemoryBuffer; -import me.cortex.voxelmon.core.util.TrackedObject; -import me.cortex.voxelmon.core.world.WorldEngine; +import me.cortex.voxelmon.common.util.MemoryBuffer; +import me.cortex.voxelmon.common.world.WorldEngine; public class BuiltSectionGeometry { public final long position; diff --git a/src/main/java/me/cortex/voxelmon/core/rendering/building/ColourMapping.java b/src/main/java/me/cortex/voxelmon/client/core/rendering/building/ColourMapping.java similarity index 79% rename from src/main/java/me/cortex/voxelmon/core/rendering/building/ColourMapping.java rename to src/main/java/me/cortex/voxelmon/client/core/rendering/building/ColourMapping.java index dcf96986..3dc57c85 100644 --- a/src/main/java/me/cortex/voxelmon/core/rendering/building/ColourMapping.java +++ b/src/main/java/me/cortex/voxelmon/client/core/rendering/building/ColourMapping.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.rendering.building; +package me.cortex.voxelmon.client.core.rendering.building; //Class for generating holding and remapping colours and ids // used during building and then remapping into the global colour array before insertion into the world diff --git a/src/main/java/me/cortex/voxelmon/core/rendering/building/QuadEncoder.java b/src/main/java/me/cortex/voxelmon/client/core/rendering/building/QuadEncoder.java similarity index 95% rename from src/main/java/me/cortex/voxelmon/core/rendering/building/QuadEncoder.java rename to src/main/java/me/cortex/voxelmon/client/core/rendering/building/QuadEncoder.java index 65abf48f..66371d19 100644 --- a/src/main/java/me/cortex/voxelmon/core/rendering/building/QuadEncoder.java +++ b/src/main/java/me/cortex/voxelmon/client/core/rendering/building/QuadEncoder.java @@ -1,8 +1,8 @@ -package me.cortex.voxelmon.core.rendering.building; +package me.cortex.voxelmon.client.core.rendering.building; -import me.cortex.voxelmon.core.util.Mesher2D; -import me.cortex.voxelmon.core.world.other.Mapper; +import me.cortex.voxelmon.client.core.util.Mesher2D; +import me.cortex.voxelmon.common.world.other.Mapper; import net.minecraft.client.color.block.BlockColors; import net.minecraft.client.world.ClientWorld; import net.minecraft.util.math.BlockPos; diff --git a/src/main/java/me/cortex/voxelmon/core/rendering/building/RenderDataFactory.java b/src/main/java/me/cortex/voxelmon/client/core/rendering/building/RenderDataFactory.java similarity index 97% rename from src/main/java/me/cortex/voxelmon/core/rendering/building/RenderDataFactory.java rename to src/main/java/me/cortex/voxelmon/client/core/rendering/building/RenderDataFactory.java index a76275e3..82d14f3e 100644 --- a/src/main/java/me/cortex/voxelmon/core/rendering/building/RenderDataFactory.java +++ b/src/main/java/me/cortex/voxelmon/client/core/rendering/building/RenderDataFactory.java @@ -1,11 +1,11 @@ -package me.cortex.voxelmon.core.rendering.building; +package me.cortex.voxelmon.client.core.rendering.building; import it.unimi.dsi.fastutil.longs.LongArrayList; -import me.cortex.voxelmon.core.util.MemoryBuffer; -import me.cortex.voxelmon.core.util.Mesher2D; -import me.cortex.voxelmon.core.world.WorldEngine; -import me.cortex.voxelmon.core.world.WorldSection; -import me.cortex.voxelmon.core.world.other.Mapper; +import me.cortex.voxelmon.common.util.MemoryBuffer; +import me.cortex.voxelmon.client.core.util.Mesher2D; +import me.cortex.voxelmon.common.world.WorldEngine; +import me.cortex.voxelmon.common.world.WorldSection; +import me.cortex.voxelmon.common.world.other.Mapper; import net.minecraft.client.MinecraftClient; import net.minecraft.util.math.Direction; import org.lwjgl.system.MemoryUtil; diff --git a/src/main/java/me/cortex/voxelmon/core/rendering/building/RenderDataFactory2.java b/src/main/java/me/cortex/voxelmon/client/core/rendering/building/RenderDataFactory2.java similarity index 94% rename from src/main/java/me/cortex/voxelmon/core/rendering/building/RenderDataFactory2.java rename to src/main/java/me/cortex/voxelmon/client/core/rendering/building/RenderDataFactory2.java index bf4d7d53..813432ab 100644 --- a/src/main/java/me/cortex/voxelmon/core/rendering/building/RenderDataFactory2.java +++ b/src/main/java/me/cortex/voxelmon/client/core/rendering/building/RenderDataFactory2.java @@ -1,11 +1,11 @@ -package me.cortex.voxelmon.core.rendering.building; +package me.cortex.voxelmon.client.core.rendering.building; import it.unimi.dsi.fastutil.longs.LongArrayList; -import me.cortex.voxelmon.core.util.MemoryBuffer; -import me.cortex.voxelmon.core.util.Mesher2D; -import me.cortex.voxelmon.core.world.WorldEngine; -import me.cortex.voxelmon.core.world.WorldSection; -import me.cortex.voxelmon.core.world.other.Mapper; +import me.cortex.voxelmon.common.util.MemoryBuffer; +import me.cortex.voxelmon.client.core.util.Mesher2D; +import me.cortex.voxelmon.common.world.WorldEngine; +import me.cortex.voxelmon.common.world.WorldSection; +import me.cortex.voxelmon.common.world.other.Mapper; import net.minecraft.util.math.Direction; import org.lwjgl.system.MemoryUtil; diff --git a/src/main/java/me/cortex/voxelmon/core/rendering/building/RenderGenerationService.java b/src/main/java/me/cortex/voxelmon/client/core/rendering/building/RenderGenerationService.java similarity index 92% rename from src/main/java/me/cortex/voxelmon/core/rendering/building/RenderGenerationService.java rename to src/main/java/me/cortex/voxelmon/client/core/rendering/building/RenderGenerationService.java index b24c51d7..c29ac19c 100644 --- a/src/main/java/me/cortex/voxelmon/core/rendering/building/RenderGenerationService.java +++ b/src/main/java/me/cortex/voxelmon/client/core/rendering/building/RenderGenerationService.java @@ -1,19 +1,12 @@ -package me.cortex.voxelmon.core.rendering.building; +package me.cortex.voxelmon.client.core.rendering.building; import it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap; -import me.cortex.voxelmon.core.rendering.AbstractFarWorldRenderer; -import me.cortex.voxelmon.core.rendering.RenderTracker; -import me.cortex.voxelmon.core.world.WorldEngine; -import me.cortex.voxelmon.core.world.WorldSection; -import net.minecraft.util.math.Direction; -import net.minecraft.world.chunk.ChunkNibbleArray; -import net.minecraft.world.chunk.WorldChunk; +import me.cortex.voxelmon.common.world.WorldEngine; +import me.cortex.voxelmon.common.world.WorldSection; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.Semaphore; import java.util.function.Consumer; -import java.util.function.IntFunction; import java.util.function.Supplier; import java.util.function.ToIntFunction; diff --git a/src/main/java/me/cortex/voxelmon/core/rendering/util/BufferArena.java b/src/main/java/me/cortex/voxelmon/client/core/rendering/util/BufferArena.java similarity index 87% rename from src/main/java/me/cortex/voxelmon/core/rendering/util/BufferArena.java rename to src/main/java/me/cortex/voxelmon/client/core/rendering/util/BufferArena.java index f91035d4..97ee4231 100644 --- a/src/main/java/me/cortex/voxelmon/core/rendering/util/BufferArena.java +++ b/src/main/java/me/cortex/voxelmon/client/core/rendering/util/BufferArena.java @@ -1,8 +1,8 @@ -package me.cortex.voxelmon.core.rendering.util; +package me.cortex.voxelmon.client.core.rendering.util; -import me.cortex.voxelmon.core.gl.GlBuffer; -import me.cortex.voxelmon.core.util.AllocationArena; -import me.cortex.voxelmon.core.util.MemoryBuffer; +import me.cortex.voxelmon.client.core.gl.GlBuffer; +import me.cortex.voxelmon.client.core.util.AllocationArena; +import me.cortex.voxelmon.common.util.MemoryBuffer; import org.lwjgl.system.MemoryUtil; public class BufferArena { diff --git a/src/main/java/me/cortex/voxelmon/core/rendering/util/UploadStream.java b/src/main/java/me/cortex/voxelmon/client/core/rendering/util/UploadStream.java similarity index 93% rename from src/main/java/me/cortex/voxelmon/core/rendering/util/UploadStream.java rename to src/main/java/me/cortex/voxelmon/client/core/rendering/util/UploadStream.java index 788d47b8..4cef6176 100644 --- a/src/main/java/me/cortex/voxelmon/core/rendering/util/UploadStream.java +++ b/src/main/java/me/cortex/voxelmon/client/core/rendering/util/UploadStream.java @@ -1,16 +1,15 @@ -package me.cortex.voxelmon.core.rendering.util; +package me.cortex.voxelmon.client.core.rendering.util; import it.unimi.dsi.fastutil.longs.LongArrayList; -import me.cortex.voxelmon.core.gl.GlBuffer; -import me.cortex.voxelmon.core.gl.GlFence; -import me.cortex.voxelmon.core.gl.GlPersistentMappedBuffer; -import me.cortex.voxelmon.core.util.AllocationArena; -import org.lwjgl.opengl.GL42; +import me.cortex.voxelmon.client.core.gl.GlBuffer; +import me.cortex.voxelmon.client.core.gl.GlFence; +import me.cortex.voxelmon.client.core.gl.GlPersistentMappedBuffer; +import me.cortex.voxelmon.client.core.util.AllocationArena; import java.util.ArrayDeque; import java.util.Deque; -import static me.cortex.voxelmon.core.util.AllocationArena.SIZE_LIMIT; +import static me.cortex.voxelmon.client.core.util.AllocationArena.SIZE_LIMIT; import static org.lwjgl.opengl.ARBDirectStateAccess.glCopyNamedBufferSubData; import static org.lwjgl.opengl.ARBDirectStateAccess.glFlushMappedNamedBufferRange; import static org.lwjgl.opengl.ARBMapBufferRange.*; diff --git a/src/main/java/me/cortex/voxelmon/core/util/AllocationArena.java b/src/main/java/me/cortex/voxelmon/client/core/util/AllocationArena.java similarity index 97% rename from src/main/java/me/cortex/voxelmon/core/util/AllocationArena.java rename to src/main/java/me/cortex/voxelmon/client/core/util/AllocationArena.java index e79dc404..46829e8f 100644 --- a/src/main/java/me/cortex/voxelmon/core/util/AllocationArena.java +++ b/src/main/java/me/cortex/voxelmon/client/core/util/AllocationArena.java @@ -1,11 +1,7 @@ -package me.cortex.voxelmon.core.util; +package me.cortex.voxelmon.client.core.util; -import it.unimi.dsi.fastutil.longs.LongArrayList; -import it.unimi.dsi.fastutil.longs.LongList; import it.unimi.dsi.fastutil.longs.LongRBTreeSet; -import java.util.Random; - //FIXME: NOTE: if there is a free block of size > 2^30 EVERYTHING BREAKS, need to either increase size // or automatically split and manage multiple blocks which is very painful //OR instead of addr, defer to a long[] and use indicies diff --git a/src/main/java/me/cortex/voxelmon/core/util/ByteBufferBackedInputStream.java b/src/main/java/me/cortex/voxelmon/client/core/util/ByteBufferBackedInputStream.java similarity index 93% rename from src/main/java/me/cortex/voxelmon/core/util/ByteBufferBackedInputStream.java rename to src/main/java/me/cortex/voxelmon/client/core/util/ByteBufferBackedInputStream.java index 8f00f3d3..4f93c608 100644 --- a/src/main/java/me/cortex/voxelmon/core/util/ByteBufferBackedInputStream.java +++ b/src/main/java/me/cortex/voxelmon/client/core/util/ByteBufferBackedInputStream.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.util; +package me.cortex.voxelmon.client.core.util; import java.io.IOException; import java.io.InputStream; diff --git a/src/main/java/me/cortex/voxelmon/core/util/DebugUtil.java b/src/main/java/me/cortex/voxelmon/client/core/util/DebugUtil.java similarity index 98% rename from src/main/java/me/cortex/voxelmon/core/util/DebugUtil.java rename to src/main/java/me/cortex/voxelmon/client/core/util/DebugUtil.java index 94455c5f..b8c573fc 100644 --- a/src/main/java/me/cortex/voxelmon/core/util/DebugUtil.java +++ b/src/main/java/me/cortex/voxelmon/client/core/util/DebugUtil.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.util; +package me.cortex.voxelmon.client.core.util; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.render.*; diff --git a/src/main/java/me/cortex/voxelmon/core/util/IndexUtil.java b/src/main/java/me/cortex/voxelmon/client/core/util/IndexUtil.java similarity index 93% rename from src/main/java/me/cortex/voxelmon/core/util/IndexUtil.java rename to src/main/java/me/cortex/voxelmon/client/core/util/IndexUtil.java index 26b3e8d5..6c7c6f84 100644 --- a/src/main/java/me/cortex/voxelmon/core/util/IndexUtil.java +++ b/src/main/java/me/cortex/voxelmon/client/core/util/IndexUtil.java @@ -1,5 +1,6 @@ -package me.cortex.voxelmon.core.util; +package me.cortex.voxelmon.client.core.util; +import me.cortex.voxelmon.common.util.MemoryBuffer; import org.lwjgl.system.MemoryUtil; public class IndexUtil { diff --git a/src/main/java/me/cortex/voxelmon/core/util/Mesher2D.java b/src/main/java/me/cortex/voxelmon/client/core/util/Mesher2D.java similarity index 99% rename from src/main/java/me/cortex/voxelmon/core/util/Mesher2D.java rename to src/main/java/me/cortex/voxelmon/client/core/util/Mesher2D.java index ac78525c..bd458922 100644 --- a/src/main/java/me/cortex/voxelmon/core/util/Mesher2D.java +++ b/src/main/java/me/cortex/voxelmon/client/core/util/Mesher2D.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.util; +package me.cortex.voxelmon.client.core.util; import java.util.Arrays; import java.util.BitSet; diff --git a/src/main/java/me/cortex/voxelmon/core/util/RingUtil.java b/src/main/java/me/cortex/voxelmon/client/core/util/RingUtil.java similarity index 98% rename from src/main/java/me/cortex/voxelmon/core/util/RingUtil.java rename to src/main/java/me/cortex/voxelmon/client/core/util/RingUtil.java index d0d3eaf8..cabd35d0 100644 --- a/src/main/java/me/cortex/voxelmon/core/util/RingUtil.java +++ b/src/main/java/me/cortex/voxelmon/client/core/util/RingUtil.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.util; +package me.cortex.voxelmon.client.core.util; import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntOpenHashSet; diff --git a/src/main/java/me/cortex/voxelmon/importers/WorldImporter.java b/src/main/java/me/cortex/voxelmon/client/importers/WorldImporter.java similarity index 95% rename from src/main/java/me/cortex/voxelmon/importers/WorldImporter.java rename to src/main/java/me/cortex/voxelmon/client/importers/WorldImporter.java index e2a39f82..b2bb547c 100644 --- a/src/main/java/me/cortex/voxelmon/importers/WorldImporter.java +++ b/src/main/java/me/cortex/voxelmon/client/importers/WorldImporter.java @@ -1,10 +1,10 @@ -package me.cortex.voxelmon.importers; +package me.cortex.voxelmon.client.importers; import com.mojang.serialization.Codec; -import me.cortex.voxelmon.core.util.ByteBufferBackedInputStream; -import me.cortex.voxelmon.core.voxelization.VoxelizedSection; -import me.cortex.voxelmon.core.voxelization.WorldConversionFactory; -import me.cortex.voxelmon.core.world.WorldEngine; +import me.cortex.voxelmon.client.core.util.ByteBufferBackedInputStream; +import me.cortex.voxelmon.common.voxelization.VoxelizedSection; +import me.cortex.voxelmon.common.voxelization.WorldConversionFactory; +import me.cortex.voxelmon.common.world.WorldEngine; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; @@ -14,7 +14,6 @@ import net.minecraft.nbt.NbtIo; import net.minecraft.nbt.NbtOps; import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.util.math.ChunkPos; import net.minecraft.world.World; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.BiomeKeys; @@ -28,11 +27,8 @@ import java.nio.ByteOrder; import java.nio.channels.FileChannel; import java.nio.file.Path; import java.nio.file.StandardOpenOption; -import java.util.Arrays; -import java.util.Objects; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.TimeUnit; -import java.util.function.Consumer; import java.util.function.Function; public class WorldImporter { diff --git a/src/main/java/me/cortex/voxelmon/mixin/joml/AccessFrustumIntersection.java b/src/main/java/me/cortex/voxelmon/client/mixin/joml/AccessFrustumIntersection.java similarity index 86% rename from src/main/java/me/cortex/voxelmon/mixin/joml/AccessFrustumIntersection.java rename to src/main/java/me/cortex/voxelmon/client/mixin/joml/AccessFrustumIntersection.java index 467d91a3..630123df 100644 --- a/src/main/java/me/cortex/voxelmon/mixin/joml/AccessFrustumIntersection.java +++ b/src/main/java/me/cortex/voxelmon/client/mixin/joml/AccessFrustumIntersection.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.mixin.joml; +package me.cortex.voxelmon.client.mixin.joml; import org.joml.FrustumIntersection; import org.joml.Vector4f; diff --git a/src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinBackgroundRenderer.java b/src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinBackgroundRenderer.java similarity index 90% rename from src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinBackgroundRenderer.java rename to src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinBackgroundRenderer.java index 9aec41d9..912c74e8 100644 --- a/src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinBackgroundRenderer.java +++ b/src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinBackgroundRenderer.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.mixin.minecraft; +package me.cortex.voxelmon.client.mixin.minecraft; import net.minecraft.client.render.BackgroundRenderer; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinClientChunkManager.java b/src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinClientChunkManager.java similarity index 92% rename from src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinClientChunkManager.java rename to src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinClientChunkManager.java index e9ae8e7f..fbcb45da 100644 --- a/src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinClientChunkManager.java +++ b/src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinClientChunkManager.java @@ -1,6 +1,6 @@ -package me.cortex.voxelmon.mixin.minecraft; +package me.cortex.voxelmon.client.mixin.minecraft; -import me.cortex.voxelmon.IGetVoxelCore; +import me.cortex.voxelmon.client.IGetVoxelCore; import net.minecraft.client.MinecraftClient; import net.minecraft.client.world.ClientChunkManager; import net.minecraft.util.math.ChunkPos; diff --git a/src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinDebugHud.java b/src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinDebugHud.java similarity index 85% rename from src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinDebugHud.java rename to src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinDebugHud.java index c7cd158d..9c20d77f 100644 --- a/src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinDebugHud.java +++ b/src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinDebugHud.java @@ -1,7 +1,6 @@ -package me.cortex.voxelmon.mixin.minecraft; +package me.cortex.voxelmon.client.mixin.minecraft; -import me.cortex.voxelmon.IGetVoxelCore; -import me.cortex.voxelmon.core.VoxelCore; +import me.cortex.voxelmon.client.IGetVoxelCore; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.hud.DebugHud; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinGameRenderer.java b/src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinGameRenderer.java similarity index 91% rename from src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinGameRenderer.java rename to src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinGameRenderer.java index 80d87313..9bdc652a 100644 --- a/src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinGameRenderer.java +++ b/src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinGameRenderer.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.mixin.minecraft; +package me.cortex.voxelmon.client.mixin.minecraft; import net.minecraft.client.render.GameRenderer; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinMinecraftClient.java b/src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinMinecraftClient.java similarity index 93% rename from src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinMinecraftClient.java rename to src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinMinecraftClient.java index 69d7803b..734c4c9a 100644 --- a/src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinMinecraftClient.java +++ b/src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinMinecraftClient.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.mixin.minecraft; +package me.cortex.voxelmon.client.mixin.minecraft; import net.minecraft.client.MinecraftClient; import net.minecraft.client.RunArgs; diff --git a/src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinWorldRenderer.java b/src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinWorldRenderer.java similarity index 91% rename from src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinWorldRenderer.java rename to src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinWorldRenderer.java index eb854183..9f2cddfc 100644 --- a/src/main/java/me/cortex/voxelmon/mixin/minecraft/MixinWorldRenderer.java +++ b/src/main/java/me/cortex/voxelmon/client/mixin/minecraft/MixinWorldRenderer.java @@ -1,12 +1,8 @@ -package me.cortex.voxelmon.mixin.minecraft; +package me.cortex.voxelmon.client.mixin.minecraft; -import me.cortex.voxelmon.IGetVoxelCore; -import me.cortex.voxelmon.Voxelmon; -import me.cortex.voxelmon.core.VoxelCore; -import net.minecraft.client.MinecraftClient; +import me.cortex.voxelmon.client.IGetVoxelCore; +import me.cortex.voxelmon.client.core.VoxelCore; import net.minecraft.client.render.*; -import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; -import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.world.ClientWorld; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/me/cortex/voxelmon/terrain/SparseTerrainGenerator.java b/src/main/java/me/cortex/voxelmon/client/terrain/SparseTerrainGenerator.java similarity index 96% rename from src/main/java/me/cortex/voxelmon/terrain/SparseTerrainGenerator.java rename to src/main/java/me/cortex/voxelmon/client/terrain/SparseTerrainGenerator.java index 15ba32b3..9c8b07c4 100644 --- a/src/main/java/me/cortex/voxelmon/terrain/SparseTerrainGenerator.java +++ b/src/main/java/me/cortex/voxelmon/client/terrain/SparseTerrainGenerator.java @@ -1,7 +1,6 @@ -package me.cortex.voxelmon.terrain; +package me.cortex.voxelmon.client.terrain; import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.util.math.ColumnPos; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.source.BiomeSource; import net.minecraft.world.biome.source.util.MultiNoiseUtil; diff --git a/src/main/java/me/cortex/voxelmon/terrain/TestSparseGenCommand.java b/src/main/java/me/cortex/voxelmon/client/terrain/TestSparseGenCommand.java similarity index 96% rename from src/main/java/me/cortex/voxelmon/terrain/TestSparseGenCommand.java rename to src/main/java/me/cortex/voxelmon/client/terrain/TestSparseGenCommand.java index 26a92f56..9e949af5 100644 --- a/src/main/java/me/cortex/voxelmon/terrain/TestSparseGenCommand.java +++ b/src/main/java/me/cortex/voxelmon/client/terrain/TestSparseGenCommand.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.terrain; +package me.cortex.voxelmon.client.terrain; import com.mojang.brigadier.CommandDispatcher; import net.minecraft.client.MinecraftClient; diff --git a/src/main/java/me/cortex/voxelmon/terrain/WorldImportCommand.java b/src/main/java/me/cortex/voxelmon/client/terrain/WorldImportCommand.java similarity index 85% rename from src/main/java/me/cortex/voxelmon/terrain/WorldImportCommand.java rename to src/main/java/me/cortex/voxelmon/client/terrain/WorldImportCommand.java index 0b1a71f6..244f740b 100644 --- a/src/main/java/me/cortex/voxelmon/terrain/WorldImportCommand.java +++ b/src/main/java/me/cortex/voxelmon/client/terrain/WorldImportCommand.java @@ -1,15 +1,13 @@ -package me.cortex.voxelmon.terrain; +package me.cortex.voxelmon.client.terrain; import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.context.CommandContext; -import me.cortex.voxelmon.IGetVoxelCore; -import me.cortex.voxelmon.importers.WorldImporter; +import me.cortex.voxelmon.client.IGetVoxelCore; +import me.cortex.voxelmon.client.importers.WorldImporter; import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; import net.minecraft.client.MinecraftClient; -import net.minecraft.text.Text; -import org.jetbrains.annotations.NotNull; import java.io.File; diff --git a/src/main/java/me/cortex/voxelmon/core/util/MemoryBuffer.java b/src/main/java/me/cortex/voxelmon/common/util/MemoryBuffer.java similarity index 94% rename from src/main/java/me/cortex/voxelmon/core/util/MemoryBuffer.java rename to src/main/java/me/cortex/voxelmon/common/util/MemoryBuffer.java index 14cb76e2..829ef329 100644 --- a/src/main/java/me/cortex/voxelmon/core/util/MemoryBuffer.java +++ b/src/main/java/me/cortex/voxelmon/common/util/MemoryBuffer.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.util; +package me.cortex.voxelmon.common.util; import org.lwjgl.system.MemoryUtil; diff --git a/src/main/java/me/cortex/voxelmon/core/util/TrackedObject.java b/src/main/java/me/cortex/voxelmon/common/util/TrackedObject.java similarity index 97% rename from src/main/java/me/cortex/voxelmon/core/util/TrackedObject.java rename to src/main/java/me/cortex/voxelmon/common/util/TrackedObject.java index c0e86623..c0d5808d 100644 --- a/src/main/java/me/cortex/voxelmon/core/util/TrackedObject.java +++ b/src/main/java/me/cortex/voxelmon/common/util/TrackedObject.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.util; +package me.cortex.voxelmon.common.util; import java.lang.ref.Cleaner; diff --git a/src/main/java/me/cortex/voxelmon/core/util/VolatileHolder.java b/src/main/java/me/cortex/voxelmon/common/util/VolatileHolder.java similarity index 61% rename from src/main/java/me/cortex/voxelmon/core/util/VolatileHolder.java rename to src/main/java/me/cortex/voxelmon/common/util/VolatileHolder.java index 41e64b4a..0a858bd0 100644 --- a/src/main/java/me/cortex/voxelmon/core/util/VolatileHolder.java +++ b/src/main/java/me/cortex/voxelmon/common/util/VolatileHolder.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.util; +package me.cortex.voxelmon.common.util; public class VolatileHolder { public volatile T obj; diff --git a/src/main/java/me/cortex/voxelmon/core/voxelization/I3dSupplier.java b/src/main/java/me/cortex/voxelmon/common/voxelization/I3dSupplier.java similarity index 60% rename from src/main/java/me/cortex/voxelmon/core/voxelization/I3dSupplier.java rename to src/main/java/me/cortex/voxelmon/common/voxelization/I3dSupplier.java index 125192c3..e88db1dc 100644 --- a/src/main/java/me/cortex/voxelmon/core/voxelization/I3dSupplier.java +++ b/src/main/java/me/cortex/voxelmon/common/voxelization/I3dSupplier.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.voxelization; +package me.cortex.voxelmon.common.voxelization; public interface I3dSupplier { T supply(int x, int y, int z); diff --git a/src/main/java/me/cortex/voxelmon/core/voxelization/ILightingSupplier.java b/src/main/java/me/cortex/voxelmon/common/voxelization/ILightingSupplier.java similarity index 73% rename from src/main/java/me/cortex/voxelmon/core/voxelization/ILightingSupplier.java rename to src/main/java/me/cortex/voxelmon/common/voxelization/ILightingSupplier.java index 05fb1fcc..49a601cc 100644 --- a/src/main/java/me/cortex/voxelmon/core/voxelization/ILightingSupplier.java +++ b/src/main/java/me/cortex/voxelmon/common/voxelization/ILightingSupplier.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.voxelization; +package me.cortex.voxelmon.common.voxelization; import net.minecraft.block.BlockState; diff --git a/src/main/java/me/cortex/voxelmon/core/voxelization/VoxelizedSection.java b/src/main/java/me/cortex/voxelmon/common/voxelization/VoxelizedSection.java similarity index 94% rename from src/main/java/me/cortex/voxelmon/core/voxelization/VoxelizedSection.java rename to src/main/java/me/cortex/voxelmon/common/voxelization/VoxelizedSection.java index 4bc8047a..8f584cb5 100644 --- a/src/main/java/me/cortex/voxelmon/core/voxelization/VoxelizedSection.java +++ b/src/main/java/me/cortex/voxelmon/common/voxelization/VoxelizedSection.java @@ -1,7 +1,7 @@ -package me.cortex.voxelmon.core.voxelization; +package me.cortex.voxelmon.common.voxelization; -import me.cortex.voxelmon.core.world.other.Mapper; +import me.cortex.voxelmon.common.world.other.Mapper; //16x16x16 block section public class VoxelizedSection { diff --git a/src/main/java/me/cortex/voxelmon/core/voxelization/WorldConversionFactory.java b/src/main/java/me/cortex/voxelmon/common/voxelization/WorldConversionFactory.java similarity index 97% rename from src/main/java/me/cortex/voxelmon/core/voxelization/WorldConversionFactory.java rename to src/main/java/me/cortex/voxelmon/common/voxelization/WorldConversionFactory.java index c5002149..be62d86f 100644 --- a/src/main/java/me/cortex/voxelmon/core/voxelization/WorldConversionFactory.java +++ b/src/main/java/me/cortex/voxelmon/common/voxelization/WorldConversionFactory.java @@ -1,7 +1,7 @@ -package me.cortex.voxelmon.core.voxelization; +package me.cortex.voxelmon.common.voxelization; -import me.cortex.voxelmon.core.world.other.Mipper; -import me.cortex.voxelmon.core.world.other.Mapper; +import me.cortex.voxelmon.common.world.other.Mipper; +import me.cortex.voxelmon.common.world.other.Mapper; import net.minecraft.block.BlockState; import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.world.biome.Biome; diff --git a/src/main/java/me/cortex/voxelmon/core/world/ActiveSectionTracker.java b/src/main/java/me/cortex/voxelmon/common/world/ActiveSectionTracker.java similarity index 96% rename from src/main/java/me/cortex/voxelmon/core/world/ActiveSectionTracker.java rename to src/main/java/me/cortex/voxelmon/common/world/ActiveSectionTracker.java index 7a4f7621..503cd654 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/ActiveSectionTracker.java +++ b/src/main/java/me/cortex/voxelmon/common/world/ActiveSectionTracker.java @@ -1,9 +1,7 @@ -package me.cortex.voxelmon.core.world; +package me.cortex.voxelmon.common.world; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; -import me.cortex.voxelmon.core.util.VolatileHolder; - -import java.lang.ref.Reference; +import me.cortex.voxelmon.common.util.VolatileHolder; public class ActiveSectionTracker { //Deserialize into the supplied section, returns true on success, false on failure diff --git a/src/main/java/me/cortex/voxelmon/core/world/SaveLoadSystem.java b/src/main/java/me/cortex/voxelmon/common/world/SaveLoadSystem.java similarity index 98% rename from src/main/java/me/cortex/voxelmon/core/world/SaveLoadSystem.java rename to src/main/java/me/cortex/voxelmon/common/world/SaveLoadSystem.java index eaf239c5..bcc63086 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/SaveLoadSystem.java +++ b/src/main/java/me/cortex/voxelmon/common/world/SaveLoadSystem.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.world; +package me.cortex.voxelmon.common.world; import it.unimi.dsi.fastutil.longs.Long2ShortOpenHashMap; import it.unimi.dsi.fastutil.longs.LongArrayList; diff --git a/src/main/java/me/cortex/voxelmon/core/world/WorldEngine.java b/src/main/java/me/cortex/voxelmon/common/world/WorldEngine.java similarity index 88% rename from src/main/java/me/cortex/voxelmon/core/world/WorldEngine.java rename to src/main/java/me/cortex/voxelmon/common/world/WorldEngine.java index 215285e7..84309812 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/WorldEngine.java +++ b/src/main/java/me/cortex/voxelmon/common/world/WorldEngine.java @@ -1,19 +1,15 @@ -package me.cortex.voxelmon.core.world; +package me.cortex.voxelmon.common.world; -import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; -import me.cortex.voxelmon.core.rendering.RenderTracker; -import me.cortex.voxelmon.core.voxelization.VoxelizedSection; -import me.cortex.voxelmon.core.world.other.Mapper; -import me.cortex.voxelmon.core.world.service.SectionSavingService; -import me.cortex.voxelmon.core.world.service.VoxelIngestService; -import me.cortex.voxelmon.core.world.storage.StorageBackend; +import me.cortex.voxelmon.common.voxelization.VoxelizedSection; +import me.cortex.voxelmon.common.world.other.Mapper; +import me.cortex.voxelmon.common.world.service.SectionSavingService; +import me.cortex.voxelmon.common.world.service.VoxelIngestService; +import me.cortex.voxelmon.common.world.storage.StorageBackend; import org.lwjgl.system.MemoryUtil; import java.io.File; import java.util.Arrays; -import java.util.Deque; -import java.util.concurrent.ConcurrentLinkedDeque; -import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Consumer; //Use an LMDB backend to store the world, use a local inmemory cache for lod sections // automatically manages and invalidates sections of the world as needed @@ -24,10 +20,10 @@ public class WorldEngine { private final ActiveSectionTracker sectionTracker; public final VoxelIngestService ingestService; public final SectionSavingService savingService; - private RenderTracker renderTracker; + private Consumer dirtyCallback; - public void setRenderTracker(RenderTracker tracker) { - this.renderTracker = tracker; + public void setDirtyCallback(Consumer tracker) { + this.dirtyCallback = dirtyCallback; } public Mapper getMapper() {return this.mapper;} @@ -85,7 +81,9 @@ public class WorldEngine { //Marks a section as dirty, enqueuing it for saving and or render data rebuilding public void markDirty(WorldSection section) { - this.renderTracker.sectionUpdated(section); + if (this.dirtyCallback != null) { + this.dirtyCallback.accept(section); + } //TODO: add an option for having synced saving, that is when call enqueueSave, that will instead, instantly // save to the db, this can be useful for just reducing the amount of thread pools in total // might have some issues with threading if the same section is saved from multiple threads? diff --git a/src/main/java/me/cortex/voxelmon/core/world/WorldSection.java b/src/main/java/me/cortex/voxelmon/common/world/WorldSection.java similarity index 98% rename from src/main/java/me/cortex/voxelmon/core/world/WorldSection.java rename to src/main/java/me/cortex/voxelmon/common/world/WorldSection.java index 0ed0defd..2fce0c08 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/WorldSection.java +++ b/src/main/java/me/cortex/voxelmon/common/world/WorldSection.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.world; +package me.cortex.voxelmon.common.world; import java.util.Arrays; diff --git a/src/main/java/me/cortex/voxelmon/core/world/other/Mapper.java b/src/main/java/me/cortex/voxelmon/common/world/other/Mapper.java similarity index 98% rename from src/main/java/me/cortex/voxelmon/core/world/other/Mapper.java rename to src/main/java/me/cortex/voxelmon/common/world/other/Mapper.java index f3729c0f..41cb1ec1 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/other/Mapper.java +++ b/src/main/java/me/cortex/voxelmon/common/world/other/Mapper.java @@ -1,9 +1,7 @@ -package me.cortex.voxelmon.core.world.other; +package me.cortex.voxelmon.common.world.other; -import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import it.unimi.dsi.fastutil.objects.ObjectArrayList; -import me.cortex.voxelmon.core.util.MemoryBuffer; -import me.cortex.voxelmon.core.world.storage.StorageBackend; +import me.cortex.voxelmon.common.world.storage.StorageBackend; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; @@ -12,7 +10,6 @@ import net.minecraft.nbt.NbtIo; import net.minecraft.nbt.NbtOps; import net.minecraft.nbt.NbtTagSizeTracker; import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.stat.Stat; import net.minecraft.util.Pair; import net.minecraft.world.biome.Biome; import org.lwjgl.system.MemoryUtil; diff --git a/src/main/java/me/cortex/voxelmon/core/world/other/Mipper.java b/src/main/java/me/cortex/voxelmon/common/world/other/Mipper.java similarity index 96% rename from src/main/java/me/cortex/voxelmon/core/world/other/Mipper.java rename to src/main/java/me/cortex/voxelmon/common/world/other/Mipper.java index 64a23cfd..1774c1f6 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/other/Mipper.java +++ b/src/main/java/me/cortex/voxelmon/common/world/other/Mipper.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.world.other; +package me.cortex.voxelmon.common.world.other; //Mipper for data public class Mipper { diff --git a/src/main/java/me/cortex/voxelmon/core/world/service/SectionSavingService.java b/src/main/java/me/cortex/voxelmon/common/world/service/SectionSavingService.java similarity index 91% rename from src/main/java/me/cortex/voxelmon/core/world/service/SectionSavingService.java rename to src/main/java/me/cortex/voxelmon/common/world/service/SectionSavingService.java index 42255ee3..73dbc5ce 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/service/SectionSavingService.java +++ b/src/main/java/me/cortex/voxelmon/common/world/service/SectionSavingService.java @@ -1,13 +1,10 @@ -package me.cortex.voxelmon.core.world.service; +package me.cortex.voxelmon.common.world.service; -import me.cortex.voxelmon.core.world.SaveLoadSystem; -import me.cortex.voxelmon.core.world.WorldEngine; -import me.cortex.voxelmon.core.world.WorldSection; -import net.minecraft.world.chunk.WorldChunk; -import org.lwjgl.system.MemoryStack; +import me.cortex.voxelmon.common.world.SaveLoadSystem; +import me.cortex.voxelmon.common.world.WorldEngine; +import me.cortex.voxelmon.common.world.WorldSection; import org.lwjgl.system.MemoryUtil; -import java.nio.ByteBuffer; import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.Semaphore; diff --git a/src/main/java/me/cortex/voxelmon/core/world/service/VoxelIngestService.java b/src/main/java/me/cortex/voxelmon/common/world/service/VoxelIngestService.java similarity index 94% rename from src/main/java/me/cortex/voxelmon/core/world/service/VoxelIngestService.java rename to src/main/java/me/cortex/voxelmon/common/world/service/VoxelIngestService.java index 23978091..d2f3269d 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/service/VoxelIngestService.java +++ b/src/main/java/me/cortex/voxelmon/common/world/service/VoxelIngestService.java @@ -1,15 +1,12 @@ -package me.cortex.voxelmon.core.world.service; +package me.cortex.voxelmon.common.world.service; import it.unimi.dsi.fastutil.Pair; -import me.cortex.voxelmon.core.voxelization.VoxelizedSection; -import me.cortex.voxelmon.core.voxelization.WorldConversionFactory; -import me.cortex.voxelmon.core.world.WorldEngine; -import net.minecraft.block.Blocks; -import net.minecraft.util.math.ChunkPos; +import me.cortex.voxelmon.common.voxelization.VoxelizedSection; +import me.cortex.voxelmon.common.voxelization.WorldConversionFactory; +import me.cortex.voxelmon.common.world.WorldEngine; import net.minecraft.util.math.ChunkSectionPos; import net.minecraft.world.LightType; import net.minecraft.world.chunk.ChunkNibbleArray; -import net.minecraft.world.chunk.ChunkSection; import net.minecraft.world.chunk.WorldChunk; import net.minecraft.world.chunk.light.LightStorage; diff --git a/src/main/java/me/cortex/voxelmon/core/world/storage/Cursor.java b/src/main/java/me/cortex/voxelmon/common/world/storage/Cursor.java similarity index 81% rename from src/main/java/me/cortex/voxelmon/core/world/storage/Cursor.java rename to src/main/java/me/cortex/voxelmon/common/world/storage/Cursor.java index 40263304..703bb3c6 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/storage/Cursor.java +++ b/src/main/java/me/cortex/voxelmon/common/world/storage/Cursor.java @@ -1,8 +1,8 @@ -package me.cortex.voxelmon.core.world.storage; +package me.cortex.voxelmon.common.world.storage; import org.lwjgl.util.lmdb.MDBVal; -import static me.cortex.voxelmon.core.world.storage.LMDBInterface.E; +import static me.cortex.voxelmon.common.world.storage.LMDBInterface.E; import static org.lwjgl.util.lmdb.LMDB.*; public class Cursor implements AutoCloseable { diff --git a/src/main/java/me/cortex/voxelmon/core/world/storage/LMDBInterface.java b/src/main/java/me/cortex/voxelmon/common/world/storage/LMDBInterface.java similarity index 95% rename from src/main/java/me/cortex/voxelmon/core/world/storage/LMDBInterface.java rename to src/main/java/me/cortex/voxelmon/common/world/storage/LMDBInterface.java index e481f3bc..3d882d4a 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/storage/LMDBInterface.java +++ b/src/main/java/me/cortex/voxelmon/common/world/storage/LMDBInterface.java @@ -1,13 +1,10 @@ -package me.cortex.voxelmon.core.world.storage; +package me.cortex.voxelmon.common.world.storage; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; -import org.lwjgl.util.lmdb.LMDB; import org.lwjgl.util.lmdb.MDBEnvInfo; import java.nio.IntBuffer; -import java.util.concurrent.locks.ReadWriteLock; -import java.util.concurrent.locks.ReentrantReadWriteLock; import static org.lwjgl.system.MemoryStack.stackPush; import static org.lwjgl.util.lmdb.LMDB.*; diff --git a/src/main/java/me/cortex/voxelmon/core/world/storage/StorageBackend.java b/src/main/java/me/cortex/voxelmon/common/world/storage/StorageBackend.java similarity index 98% rename from src/main/java/me/cortex/voxelmon/core/world/storage/StorageBackend.java rename to src/main/java/me/cortex/voxelmon/common/world/storage/StorageBackend.java index 68b066a9..68797da2 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/storage/StorageBackend.java +++ b/src/main/java/me/cortex/voxelmon/common/world/storage/StorageBackend.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.world.storage; +package me.cortex.voxelmon.common.world.storage; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import org.lwjgl.system.MemoryUtil; @@ -8,7 +8,6 @@ import java.io.File; import java.nio.ByteBuffer; import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import java.util.function.Supplier; diff --git a/src/main/java/me/cortex/voxelmon/core/world/storage/TransactionCallback.java b/src/main/java/me/cortex/voxelmon/common/world/storage/TransactionCallback.java similarity index 72% rename from src/main/java/me/cortex/voxelmon/core/world/storage/TransactionCallback.java rename to src/main/java/me/cortex/voxelmon/common/world/storage/TransactionCallback.java index 90b3f026..94d54179 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/storage/TransactionCallback.java +++ b/src/main/java/me/cortex/voxelmon/common/world/storage/TransactionCallback.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.world.storage; +package me.cortex.voxelmon.common.world.storage; import org.lwjgl.system.MemoryStack; diff --git a/src/main/java/me/cortex/voxelmon/core/world/storage/TransactionWrappedCallback.java b/src/main/java/me/cortex/voxelmon/common/world/storage/TransactionWrappedCallback.java similarity index 65% rename from src/main/java/me/cortex/voxelmon/core/world/storage/TransactionWrappedCallback.java rename to src/main/java/me/cortex/voxelmon/common/world/storage/TransactionWrappedCallback.java index bea74e7f..f785679f 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/storage/TransactionWrappedCallback.java +++ b/src/main/java/me/cortex/voxelmon/common/world/storage/TransactionWrappedCallback.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.world.storage; +package me.cortex.voxelmon.common.world.storage; public interface TransactionWrappedCallback { T exec(TransactionWrapper wrapper); diff --git a/src/main/java/me/cortex/voxelmon/core/world/storage/TransactionWrapper.java b/src/main/java/me/cortex/voxelmon/common/world/storage/TransactionWrapper.java similarity index 95% rename from src/main/java/me/cortex/voxelmon/core/world/storage/TransactionWrapper.java rename to src/main/java/me/cortex/voxelmon/common/world/storage/TransactionWrapper.java index 91de3e49..712d691e 100644 --- a/src/main/java/me/cortex/voxelmon/core/world/storage/TransactionWrapper.java +++ b/src/main/java/me/cortex/voxelmon/common/world/storage/TransactionWrapper.java @@ -1,4 +1,4 @@ -package me.cortex.voxelmon.core.world.storage; +package me.cortex.voxelmon.common.world.storage; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; @@ -6,7 +6,7 @@ import org.lwjgl.util.lmdb.MDBVal; import java.nio.ByteBuffer; -import static me.cortex.voxelmon.core.world.storage.LMDBInterface.E; +import static me.cortex.voxelmon.common.world.storage.LMDBInterface.E; import static org.lwjgl.system.MemoryStack.stackPush; import static org.lwjgl.util.lmdb.LMDB.*; diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 7c159203..98eea41d 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -13,7 +13,9 @@ "icon": "assets/voxelmon/icon.png", "environment": "client", "entrypoints": { - "client": ["me.cortex.voxelmon.Voxelmon"] + "client": [ + "me.cortex.voxelmon.client.Voxelmon" + ] }, "mixins": [ "voxelmon.mixins.json" diff --git a/src/main/resources/voxelmon.mixins.json b/src/main/resources/voxelmon.mixins.json index 7d0627e1..7346b5e3 100644 --- a/src/main/resources/voxelmon.mixins.json +++ b/src/main/resources/voxelmon.mixins.json @@ -1,6 +1,6 @@ { "required": true, - "package": "me.cortex.voxelmon.mixin", + "package": "me.cortex.voxelmon.client.mixin", "compatibilityLevel": "JAVA_17", "client": [ "minecraft.MixinBackgroundRenderer",