From f2010b7c7de0f8594a93cf6e2c40a0ba2ecadc2b Mon Sep 17 00:00:00 2001 From: James Seibel Date: Sat, 20 Nov 2021 20:32:26 -0600 Subject: [PATCH] Reorganize, improve header comments, and add missing licensing headers --- .../com/seibel/lod/core/api/ClientApi.java | 10 +-- .../com/seibel/lod/core/api/EventApi.java | 12 ++-- .../LodBufferBuilderFactory.java | 12 ++-- .../lodTemplates/AbstractLodTemplate.java | 2 +- .../lodTemplates/CubicLodTemplate.java | 2 +- .../lodTemplates/DynamicLodTemplate.java | 2 +- .../lodTemplates/TriangularLodTemplate.java | 2 +- .../core/builders/lodBuilding/LodBuilder.java | 26 ++++---- .../worldGeneration/LodGenWorker.java | 12 ++-- .../worldGeneration/LodWorldGenerator.java | 12 ++-- .../handlers/IReflectionHandler.java | 19 +++--- .../lod/core/handlers/ReflectionHandler.java | 1 - .../java/com/seibel/lod/core/objects/Box.java | 9 +-- .../lod/core/objects/MinDefaultMax.java | 21 +++++- .../core/objects/PosToRenderContainer.java | 2 + .../lod/core/objects/lod/LodDimension.java | 14 ++-- .../seibel/lod/core/objects/lod/LodWorld.java | 2 +- .../lod/core/objects/lod/RegionPos.java | 8 +-- .../seibel/lod/core/objects/math/Mat4f.java | 2 +- .../seibel/lod/core/objects/math/Vec3f.java | 2 +- .../seibel/lod/core/objects/math/Vec3i.java | 2 +- .../opengl/DefaultLodVertexFormats.java | 19 ++++++ .../core/objects/opengl/LodBufferBuilder.java | 23 ++++++- .../core/objects/opengl/LodVertexBuffer.java | 30 +++++++-- .../core/objects/opengl/LodVertexFormat.java | 24 ++++++- .../opengl/LodVertexFormatElement.java | 23 ++++++- .../com/seibel/lod/core/render/GlProxy.java | 4 +- .../seibel/lod/core/render/LodRenderer.java | 16 ++--- .../seibel/lod/core/render/RenderUtil.java | 4 +- .../com/seibel/lod/core/util/ColorUtil.java | 3 +- .../lod/core/util/DetailDistanceUtil.java | 3 +- .../com/seibel/lod/core/util/LodUtil.java | 15 ++--- .../SingletonHandler.java | 27 ++++++-- .../core/wrapperAdapters/IWrapperFactory.java | 29 --------- .../block/AbstractBlockPosWrapper.java | 22 ------- .../block/IBlockColorSingletonWrapper.java | 14 ---- .../block/IBlockColorWrapper.java | 33 ---------- .../block/IBlockShapeWrapper.java | 18 ------ .../chunk/AbstractChunkPosWrapper.java | 32 ---------- .../wrapperAdapters/chunk/IChunkWrapper.java | 34 ---------- .../minecraft/IMinecraftRenderWrapper.java | 45 ------------- .../minecraft/IProfilerWrapper.java | 16 ----- .../misc/ILightMapWrapper.java | 11 ---- .../wrapperAdapters/world/IBiomeWrapper.java | 20 ------ .../world/IDimensionTypeWrapper.java | 16 ----- .../wrapperAdapters/world/IWorldWrapper.java | 36 ----------- .../AbstractWorldGeneratorWrapper.java | 31 --------- .../wrapperInterfaces/IWrapperFactory.java | 48 ++++++++++++++ .../block/AbstractBlockPosWrapper.java | 48 ++++++++++++++ .../block/IBlockColorSingletonWrapper.java | 35 ++++++++++ .../block/IBlockColorWrapper.java | 50 +++++++++++++++ .../block/IBlockShapeWrapper.java | 39 +++++++++++ .../chunk/AbstractChunkPosWrapper.java | 52 +++++++++++++++ .../chunk/IChunkWrapper.java | 52 +++++++++++++++ .../config/ILodConfigWrapperSingleton.java | 26 +++++++- .../minecraft/IMinecraftRenderWrapper.java | 64 +++++++++++++++++++ .../minecraft/IMinecraftWrapper.java | 15 ++--- .../minecraft/IProfilerWrapper.java | 33 ++++++++++ .../misc/ILightMapWrapper.java | 29 +++++++++ .../world/IBiomeColorWrapperSingleton.java | 7 +- .../world/IBiomeWrapper.java | 37 +++++++++++ .../world/IDimensionTypeWrapper.java | 33 ++++++++++ .../world/IWorldWrapper.java | 59 +++++++++++++++++ .../AbstractWorldGeneratorWrapper.java | 50 +++++++++++++++ .../seibel/lod/forge/ForgeClientProxy.java | 2 +- .../com/seibel/lod/forge/ForgeConfig.java | 18 +++--- .../java/com/seibel/lod/forge/ForgeMain.java | 4 +- ...cySetup.java => ForgeDependencySetup.java} | 16 ++--- .../lod/forge/wrappers/McObjectConverter.java | 11 +--- .../lod/forge/wrappers/WrapperFactory.java | 29 +++++++-- .../lod/forge/wrappers/WrapperUtil.java | 30 ++++++++- .../block/BlockColorSingletonWrapper.java | 30 +++++++-- .../wrappers/block/BlockColorWrapper.java | 23 ++++++- .../forge/wrappers/block/BlockPosWrapper.java | 31 ++++++++- .../wrappers/block/BlockShapeWrapper.java | 26 ++++++-- .../forge/wrappers/chunk/ChunkPosWrapper.java | 25 ++++++-- .../forge/wrappers/chunk/ChunkWrapper.java | 28 ++++++-- .../config/LodConfigWrapperSingleton.java | 24 +++++-- .../minecraft/MinecraftRenderWrapper.java | 6 +- .../wrappers/minecraft/MinecraftWrapper.java | 10 +-- .../wrappers/minecraft/ProfilerWrapper.java | 2 +- .../forge/wrappers/misc/LightMapWrapper.java | 2 +- .../world/BiomeColorWrapperSingleton.java | 7 +- .../forge/wrappers/world/BiomeWrapper.java | 5 +- .../wrappers/world/DimensionTypeWrapper.java | 3 +- .../forge/wrappers/world/WorldWrapper.java | 13 ++-- .../WorldGeneratorWrapper.java | 13 ++-- 87 files changed, 1177 insertions(+), 580 deletions(-) rename src/main/java/com/seibel/lod/core/{wrapperAdapters => }/handlers/IReflectionHandler.java (74%) rename src/main/java/com/seibel/lod/core/{wrapperAdapters => util}/SingletonHandler.java (67%) delete mode 100644 src/main/java/com/seibel/lod/core/wrapperAdapters/IWrapperFactory.java delete mode 100644 src/main/java/com/seibel/lod/core/wrapperAdapters/block/AbstractBlockPosWrapper.java delete mode 100644 src/main/java/com/seibel/lod/core/wrapperAdapters/block/IBlockColorSingletonWrapper.java delete mode 100644 src/main/java/com/seibel/lod/core/wrapperAdapters/block/IBlockColorWrapper.java delete mode 100644 src/main/java/com/seibel/lod/core/wrapperAdapters/block/IBlockShapeWrapper.java delete mode 100644 src/main/java/com/seibel/lod/core/wrapperAdapters/chunk/AbstractChunkPosWrapper.java delete mode 100644 src/main/java/com/seibel/lod/core/wrapperAdapters/chunk/IChunkWrapper.java delete mode 100644 src/main/java/com/seibel/lod/core/wrapperAdapters/minecraft/IMinecraftRenderWrapper.java delete mode 100644 src/main/java/com/seibel/lod/core/wrapperAdapters/minecraft/IProfilerWrapper.java delete mode 100644 src/main/java/com/seibel/lod/core/wrapperAdapters/misc/ILightMapWrapper.java delete mode 100644 src/main/java/com/seibel/lod/core/wrapperAdapters/world/IBiomeWrapper.java delete mode 100644 src/main/java/com/seibel/lod/core/wrapperAdapters/world/IDimensionTypeWrapper.java delete mode 100644 src/main/java/com/seibel/lod/core/wrapperAdapters/world/IWorldWrapper.java delete mode 100644 src/main/java/com/seibel/lod/core/wrapperAdapters/worldGeneration/AbstractWorldGeneratorWrapper.java create mode 100644 src/main/java/com/seibel/lod/core/wrapperInterfaces/IWrapperFactory.java create mode 100644 src/main/java/com/seibel/lod/core/wrapperInterfaces/block/AbstractBlockPosWrapper.java create mode 100644 src/main/java/com/seibel/lod/core/wrapperInterfaces/block/IBlockColorSingletonWrapper.java create mode 100644 src/main/java/com/seibel/lod/core/wrapperInterfaces/block/IBlockColorWrapper.java create mode 100644 src/main/java/com/seibel/lod/core/wrapperInterfaces/block/IBlockShapeWrapper.java create mode 100644 src/main/java/com/seibel/lod/core/wrapperInterfaces/chunk/AbstractChunkPosWrapper.java create mode 100644 src/main/java/com/seibel/lod/core/wrapperInterfaces/chunk/IChunkWrapper.java rename src/main/java/com/seibel/lod/core/{wrapperAdapters => wrapperInterfaces}/config/ILodConfigWrapperSingleton.java (95%) create mode 100644 src/main/java/com/seibel/lod/core/wrapperInterfaces/minecraft/IMinecraftRenderWrapper.java rename src/main/java/com/seibel/lod/core/{wrapperAdapters => wrapperInterfaces}/minecraft/IMinecraftWrapper.java (87%) create mode 100644 src/main/java/com/seibel/lod/core/wrapperInterfaces/minecraft/IProfilerWrapper.java create mode 100644 src/main/java/com/seibel/lod/core/wrapperInterfaces/misc/ILightMapWrapper.java rename src/main/java/com/seibel/lod/core/{wrapperAdapters => wrapperInterfaces}/world/IBiomeColorWrapperSingleton.java (85%) create mode 100644 src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IBiomeWrapper.java create mode 100644 src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IDimensionTypeWrapper.java create mode 100644 src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IWorldWrapper.java create mode 100644 src/main/java/com/seibel/lod/core/wrapperInterfaces/worldGeneration/AbstractWorldGeneratorWrapper.java rename src/main/java/com/seibel/lod/forge/wrappers/{DependencySetup.java => ForgeDependencySetup.java} (70%) diff --git a/src/main/java/com/seibel/lod/core/api/ClientApi.java b/src/main/java/com/seibel/lod/core/api/ClientApi.java index 3a769159e..db9d2aecf 100644 --- a/src/main/java/com/seibel/lod/core/api/ClientApi.java +++ b/src/main/java/com/seibel/lod/core/api/ClientApi.java @@ -29,12 +29,12 @@ import com.seibel.lod.core.objects.math.Mat4f; import com.seibel.lod.core.render.GlProxy; import com.seibel.lod.core.render.LodRenderer; import com.seibel.lod.core.util.DetailDistanceUtil; +import com.seibel.lod.core.util.SingletonHandler; import com.seibel.lod.core.util.ThreadMapUtil; -import com.seibel.lod.core.wrapperAdapters.SingletonHandler; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton; -import com.seibel.lod.core.wrapperAdapters.minecraft.IMinecraftRenderWrapper; -import com.seibel.lod.core.wrapperAdapters.minecraft.IMinecraftWrapper; -import com.seibel.lod.core.wrapperAdapters.minecraft.IProfilerWrapper; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IProfilerWrapper; /** * This holds the methods that should be called diff --git a/src/main/java/com/seibel/lod/core/api/EventApi.java b/src/main/java/com/seibel/lod/core/api/EventApi.java index d11faeb5f..96e4d381a 100644 --- a/src/main/java/com/seibel/lod/core/api/EventApi.java +++ b/src/main/java/com/seibel/lod/core/api/EventApi.java @@ -29,13 +29,13 @@ import com.seibel.lod.core.render.LodRenderer; import com.seibel.lod.core.util.DataPointUtil; import com.seibel.lod.core.util.DetailDistanceUtil; import com.seibel.lod.core.util.LodUtil; +import com.seibel.lod.core.util.SingletonHandler; import com.seibel.lod.core.util.ThreadMapUtil; -import com.seibel.lod.core.wrapperAdapters.SingletonHandler; -import com.seibel.lod.core.wrapperAdapters.chunk.IChunkWrapper; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton; -import com.seibel.lod.core.wrapperAdapters.minecraft.IMinecraftWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IDimensionTypeWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.IChunkWrapper; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IDimensionTypeWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; /** * This holds the methods that should be called diff --git a/src/main/java/com/seibel/lod/core/builders/bufferBuilding/LodBufferBuilderFactory.java b/src/main/java/com/seibel/lod/core/builders/bufferBuilding/LodBufferBuilderFactory.java index 279bcc2e7..9725276b1 100644 --- a/src/main/java/com/seibel/lod/core/builders/bufferBuilding/LodBufferBuilderFactory.java +++ b/src/main/java/com/seibel/lod/core/builders/bufferBuilding/LodBufferBuilderFactory.java @@ -55,13 +55,13 @@ import com.seibel.lod.core.util.DetailDistanceUtil; import com.seibel.lod.core.util.LevelPosUtil; import com.seibel.lod.core.util.LodThreadFactory; import com.seibel.lod.core.util.LodUtil; +import com.seibel.lod.core.util.SingletonHandler; import com.seibel.lod.core.util.ThreadMapUtil; -import com.seibel.lod.core.wrapperAdapters.IWrapperFactory; -import com.seibel.lod.core.wrapperAdapters.SingletonHandler; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton; -import com.seibel.lod.core.wrapperAdapters.minecraft.IMinecraftWrapper; +import com.seibel.lod.core.wrapperInterfaces.IWrapperFactory; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper; /** * This object creates the buffers that are diff --git a/src/main/java/com/seibel/lod/core/builders/bufferBuilding/lodTemplates/AbstractLodTemplate.java b/src/main/java/com/seibel/lod/core/builders/bufferBuilding/lodTemplates/AbstractLodTemplate.java index 6c24bbec6..41239212e 100644 --- a/src/main/java/com/seibel/lod/core/builders/bufferBuilding/lodTemplates/AbstractLodTemplate.java +++ b/src/main/java/com/seibel/lod/core/builders/bufferBuilding/lodTemplates/AbstractLodTemplate.java @@ -26,7 +26,7 @@ import com.seibel.lod.core.enums.rendering.DebugMode; import com.seibel.lod.core.objects.Box; import com.seibel.lod.core.objects.opengl.LodBufferBuilder; import com.seibel.lod.core.util.ColorUtil; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; /** * This is the abstract class used to create different diff --git a/src/main/java/com/seibel/lod/core/builders/bufferBuilding/lodTemplates/CubicLodTemplate.java b/src/main/java/com/seibel/lod/core/builders/bufferBuilding/lodTemplates/CubicLodTemplate.java index deed68908..29e3fda66 100644 --- a/src/main/java/com/seibel/lod/core/builders/bufferBuilding/lodTemplates/CubicLodTemplate.java +++ b/src/main/java/com/seibel/lod/core/builders/bufferBuilding/lodTemplates/CubicLodTemplate.java @@ -28,7 +28,7 @@ import com.seibel.lod.core.objects.opengl.LodBufferBuilder; import com.seibel.lod.core.util.ColorUtil; import com.seibel.lod.core.util.DataPointUtil; import com.seibel.lod.core.util.LodUtil; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; /** * Builds LODs as rectangular prisms. diff --git a/src/main/java/com/seibel/lod/core/builders/bufferBuilding/lodTemplates/DynamicLodTemplate.java b/src/main/java/com/seibel/lod/core/builders/bufferBuilding/lodTemplates/DynamicLodTemplate.java index dfd6ae9a5..e53fd85d2 100644 --- a/src/main/java/com/seibel/lod/core/builders/bufferBuilding/lodTemplates/DynamicLodTemplate.java +++ b/src/main/java/com/seibel/lod/core/builders/bufferBuilding/lodTemplates/DynamicLodTemplate.java @@ -26,7 +26,7 @@ import com.seibel.lod.core.enums.LodDirection; import com.seibel.lod.core.enums.rendering.DebugMode; import com.seibel.lod.core.objects.Box; import com.seibel.lod.core.objects.opengl.LodBufferBuilder; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; /** * TODO DynamicLodTemplate diff --git a/src/main/java/com/seibel/lod/core/builders/bufferBuilding/lodTemplates/TriangularLodTemplate.java b/src/main/java/com/seibel/lod/core/builders/bufferBuilding/lodTemplates/TriangularLodTemplate.java index 84c8aa503..ffe8c2679 100644 --- a/src/main/java/com/seibel/lod/core/builders/bufferBuilding/lodTemplates/TriangularLodTemplate.java +++ b/src/main/java/com/seibel/lod/core/builders/bufferBuilding/lodTemplates/TriangularLodTemplate.java @@ -26,7 +26,7 @@ import com.seibel.lod.core.enums.LodDirection; import com.seibel.lod.core.enums.rendering.DebugMode; import com.seibel.lod.core.objects.Box; import com.seibel.lod.core.objects.opengl.LodBufferBuilder; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; /** * TODO #21 TriangularLodTemplate diff --git a/src/main/java/com/seibel/lod/core/builders/lodBuilding/LodBuilder.java b/src/main/java/com/seibel/lod/core/builders/lodBuilding/LodBuilder.java index ef2659ec1..4a7d9efd5 100644 --- a/src/main/java/com/seibel/lod/core/builders/lodBuilding/LodBuilder.java +++ b/src/main/java/com/seibel/lod/core/builders/lodBuilding/LodBuilder.java @@ -33,20 +33,20 @@ import com.seibel.lod.core.util.DetailDistanceUtil; import com.seibel.lod.core.util.LevelPosUtil; import com.seibel.lod.core.util.LodThreadFactory; import com.seibel.lod.core.util.LodUtil; +import com.seibel.lod.core.util.SingletonHandler; import com.seibel.lod.core.util.ThreadMapUtil; -import com.seibel.lod.core.wrapperAdapters.IWrapperFactory; -import com.seibel.lod.core.wrapperAdapters.SingletonHandler; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.block.IBlockColorSingletonWrapper; -import com.seibel.lod.core.wrapperAdapters.block.IBlockColorWrapper; -import com.seibel.lod.core.wrapperAdapters.block.IBlockShapeWrapper; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; -import com.seibel.lod.core.wrapperAdapters.chunk.IChunkWrapper; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton; -import com.seibel.lod.core.wrapperAdapters.minecraft.IMinecraftWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IBiomeWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IDimensionTypeWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper; +import com.seibel.lod.core.wrapperInterfaces.IWrapperFactory; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.IBlockColorSingletonWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.IBlockColorWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.IBlockShapeWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.IChunkWrapper; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IBiomeWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IDimensionTypeWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; /** * This object is in charge of creating Lod related objects. diff --git a/src/main/java/com/seibel/lod/core/builders/worldGeneration/LodGenWorker.java b/src/main/java/com/seibel/lod/core/builders/worldGeneration/LodGenWorker.java index 544640195..82802e062 100644 --- a/src/main/java/com/seibel/lod/core/builders/worldGeneration/LodGenWorker.java +++ b/src/main/java/com/seibel/lod/core/builders/worldGeneration/LodGenWorker.java @@ -28,12 +28,12 @@ import com.seibel.lod.core.builders.lodBuilding.LodBuilder; import com.seibel.lod.core.enums.config.DistanceGenerationMode; import com.seibel.lod.core.objects.lod.LodDimension; import com.seibel.lod.core.util.LodUtil; -import com.seibel.lod.core.wrapperAdapters.IWrapperFactory; -import com.seibel.lod.core.wrapperAdapters.SingletonHandler; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton; -import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper; -import com.seibel.lod.core.wrapperAdapters.worldGeneration.AbstractWorldGeneratorWrapper; +import com.seibel.lod.core.util.SingletonHandler; +import com.seibel.lod.core.wrapperInterfaces.IWrapperFactory; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; +import com.seibel.lod.core.wrapperInterfaces.worldGeneration.AbstractWorldGeneratorWrapper; /** * This is used to generate a LodChunk at a given ChunkPos. diff --git a/src/main/java/com/seibel/lod/core/builders/worldGeneration/LodWorldGenerator.java b/src/main/java/com/seibel/lod/core/builders/worldGeneration/LodWorldGenerator.java index a6ff68876..e97498c7c 100644 --- a/src/main/java/com/seibel/lod/core/builders/worldGeneration/LodWorldGenerator.java +++ b/src/main/java/com/seibel/lod/core/builders/worldGeneration/LodWorldGenerator.java @@ -34,12 +34,12 @@ import com.seibel.lod.core.util.DetailDistanceUtil; import com.seibel.lod.core.util.LevelPosUtil; import com.seibel.lod.core.util.LodThreadFactory; import com.seibel.lod.core.util.LodUtil; -import com.seibel.lod.core.wrapperAdapters.IWrapperFactory; -import com.seibel.lod.core.wrapperAdapters.SingletonHandler; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton; -import com.seibel.lod.core.wrapperAdapters.minecraft.IMinecraftWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper; +import com.seibel.lod.core.util.SingletonHandler; +import com.seibel.lod.core.wrapperInterfaces.IWrapperFactory; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; /** * A singleton that handles all long distance LOD world generation. diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/handlers/IReflectionHandler.java b/src/main/java/com/seibel/lod/core/handlers/IReflectionHandler.java similarity index 74% rename from src/main/java/com/seibel/lod/core/wrapperAdapters/handlers/IReflectionHandler.java rename to src/main/java/com/seibel/lod/core/handlers/IReflectionHandler.java index d1b8839e7..fe0da0f80 100644 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/handlers/IReflectionHandler.java +++ b/src/main/java/com/seibel/lod/core/handlers/IReflectionHandler.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package com.seibel.lod.core.wrapperAdapters.handlers; +package com.seibel.lod.core.handlers; import com.seibel.lod.core.enums.rendering.FogQuality; import com.seibel.lod.core.objects.math.Mat4f; @@ -25,21 +25,24 @@ import com.seibel.lod.core.objects.math.Mat4f; /** * A singleton used to get variables from methods * where they are private or potentially absent. - * Specifically the fog setting in Optifine or the + * Specifically the fog setting used by Optifine or the * presence/absence of other mods. + *

+ * This interface doesn't necessarily have to exist, but + * it makes using the singleton handler more uniform (always + * passing in interfaces), and it may be needed in the future if + * we find that reflection handlers need to be different for + * different MC versions. * * @author James Seibel - * @version 11-18-2021 + * @version 11-20-2021 */ public interface IReflectionHandler { - /** - * Get what type of fog optifine is currently set to render. - * @return the fog quality - */ + /** @returns the type of fog optifine is currently set to render. */ public FogQuality getFogQuality(); - /** Detect if Vivecraft is present. Attempts to find the "VRRenderer" class. */ + /** @returns if Vivecraft is present. Attempts to find the "VRRenderer" class. */ public boolean vivecraftPresent(); /** diff --git a/src/main/java/com/seibel/lod/core/handlers/ReflectionHandler.java b/src/main/java/com/seibel/lod/core/handlers/ReflectionHandler.java index a32d3f048..f9caae835 100644 --- a/src/main/java/com/seibel/lod/core/handlers/ReflectionHandler.java +++ b/src/main/java/com/seibel/lod/core/handlers/ReflectionHandler.java @@ -27,7 +27,6 @@ import org.apache.logging.log4j.Logger; import com.seibel.lod.core.ModInfo; import com.seibel.lod.core.enums.rendering.FogQuality; import com.seibel.lod.core.objects.math.Mat4f; -import com.seibel.lod.core.wrapperAdapters.handlers.IReflectionHandler; /** * A singleton used to get variables from methods diff --git a/src/main/java/com/seibel/lod/core/objects/Box.java b/src/main/java/com/seibel/lod/core/objects/Box.java index 9ecfec9c2..a617daefb 100644 --- a/src/main/java/com/seibel/lod/core/objects/Box.java +++ b/src/main/java/com/seibel/lod/core/objects/Box.java @@ -29,13 +29,14 @@ import com.seibel.lod.core.objects.math.Vec3i; import com.seibel.lod.core.util.ColorUtil; import com.seibel.lod.core.util.DataPointUtil; import com.seibel.lod.core.util.LodUtil; -import com.seibel.lod.core.wrapperAdapters.SingletonHandler; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton; -import com.seibel.lod.core.wrapperAdapters.minecraft.IMinecraftWrapper; +import com.seibel.lod.core.util.SingletonHandler; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper; /** * Similar to Minecraft's AxisAlignedBoundingBox. + * * @author Leonardo Amato * @version 10-2-2021 */ diff --git a/src/main/java/com/seibel/lod/core/objects/MinDefaultMax.java b/src/main/java/com/seibel/lod/core/objects/MinDefaultMax.java index 95f69ab39..e16f0d21b 100644 --- a/src/main/java/com/seibel/lod/core/objects/MinDefaultMax.java +++ b/src/main/java/com/seibel/lod/core/objects/MinDefaultMax.java @@ -1,3 +1,22 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.seibel.lod.core.objects; /** @@ -5,7 +24,7 @@ package com.seibel.lod.core.objects; * * @author James Seibel * @version 11-14-2021 - * @param The type of data this object is storing + * @param The data type this object is storing */ public class MinDefaultMax { diff --git a/src/main/java/com/seibel/lod/core/objects/PosToRenderContainer.java b/src/main/java/com/seibel/lod/core/objects/PosToRenderContainer.java index 45e064ac5..5a42e7212 100644 --- a/src/main/java/com/seibel/lod/core/objects/PosToRenderContainer.java +++ b/src/main/java/com/seibel/lod/core/objects/PosToRenderContainer.java @@ -26,6 +26,8 @@ import com.seibel.lod.core.util.LevelPosUtil; import com.seibel.lod.core.util.LodUtil; /** + * Holds a levelPos that needs to be rendered. + * * @author Leonardo Amato * @version 9-18-2021 */ diff --git a/src/main/java/com/seibel/lod/core/objects/lod/LodDimension.java b/src/main/java/com/seibel/lod/core/objects/lod/LodDimension.java index 9a4dea5ef..0180b8434 100644 --- a/src/main/java/com/seibel/lod/core/objects/lod/LodDimension.java +++ b/src/main/java/com/seibel/lod/core/objects/lod/LodDimension.java @@ -35,13 +35,13 @@ import com.seibel.lod.core.util.DetailDistanceUtil; import com.seibel.lod.core.util.LevelPosUtil; import com.seibel.lod.core.util.LodThreadFactory; import com.seibel.lod.core.util.LodUtil; -import com.seibel.lod.core.wrapperAdapters.IWrapperFactory; -import com.seibel.lod.core.wrapperAdapters.SingletonHandler; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton; -import com.seibel.lod.core.wrapperAdapters.minecraft.IMinecraftWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IDimensionTypeWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper; +import com.seibel.lod.core.util.SingletonHandler; +import com.seibel.lod.core.wrapperInterfaces.IWrapperFactory; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IDimensionTypeWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; diff --git a/src/main/java/com/seibel/lod/core/objects/lod/LodWorld.java b/src/main/java/com/seibel/lod/core/objects/lod/LodWorld.java index add724432..9897d297d 100644 --- a/src/main/java/com/seibel/lod/core/objects/lod/LodWorld.java +++ b/src/main/java/com/seibel/lod/core/objects/lod/LodWorld.java @@ -23,7 +23,7 @@ import java.util.Hashtable; import java.util.Map; import com.seibel.lod.core.api.ClientApi; -import com.seibel.lod.core.wrapperAdapters.world.IDimensionTypeWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IDimensionTypeWrapper; /** * This stores all LODs for a given world. diff --git a/src/main/java/com/seibel/lod/core/objects/lod/RegionPos.java b/src/main/java/com/seibel/lod/core/objects/lod/RegionPos.java index 265424a95..f50754d02 100644 --- a/src/main/java/com/seibel/lod/core/objects/lod/RegionPos.java +++ b/src/main/java/com/seibel/lod/core/objects/lod/RegionPos.java @@ -20,10 +20,10 @@ package com.seibel.lod.core.objects.lod; import com.seibel.lod.core.util.LodUtil; -import com.seibel.lod.core.wrapperAdapters.IWrapperFactory; -import com.seibel.lod.core.wrapperAdapters.SingletonHandler; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.util.SingletonHandler; +import com.seibel.lod.core.wrapperInterfaces.IWrapperFactory; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; /** * This object is similar to ChunkPos or BlockPos. diff --git a/src/main/java/com/seibel/lod/core/objects/math/Mat4f.java b/src/main/java/com/seibel/lod/core/objects/math/Mat4f.java index 34a8bd6ff..9d843ddf4 100644 --- a/src/main/java/com/seibel/lod/core/objects/math/Mat4f.java +++ b/src/main/java/com/seibel/lod/core/objects/math/Mat4f.java @@ -23,7 +23,7 @@ import java.nio.FloatBuffer; /** * A (almost) exact copy of Minecraft's 1.16.5 - * implementation of a 4x4 matrix. + * implementation of a 4x4 float matrix. * * @author James Seibel * @version 11-11-2021 diff --git a/src/main/java/com/seibel/lod/core/objects/math/Vec3f.java b/src/main/java/com/seibel/lod/core/objects/math/Vec3f.java index 02e16b42e..fe25d8889 100644 --- a/src/main/java/com/seibel/lod/core/objects/math/Vec3f.java +++ b/src/main/java/com/seibel/lod/core/objects/math/Vec3f.java @@ -23,7 +23,7 @@ import com.seibel.lod.core.util.LodUtil; /** * A (almost) exact copy of Minecraft's 1.16.5 - * implementation of a 3 element vector. + * implementation of a 3 element float vector. * * @author James Seibel * @version 11-11-2021 diff --git a/src/main/java/com/seibel/lod/core/objects/math/Vec3i.java b/src/main/java/com/seibel/lod/core/objects/math/Vec3i.java index 3ba53c2a4..a65a404f0 100644 --- a/src/main/java/com/seibel/lod/core/objects/math/Vec3i.java +++ b/src/main/java/com/seibel/lod/core/objects/math/Vec3i.java @@ -23,7 +23,7 @@ import com.seibel.lod.core.util.LodUtil; /** * A (almost) exact copy of Minecraft's 1.16.5 - * implementation of a 3 element vector. + * implementation of a 3 element integer vector. * * @author James Seibel * @version 11-11-2021 diff --git a/src/main/java/com/seibel/lod/core/objects/opengl/DefaultLodVertexFormats.java b/src/main/java/com/seibel/lod/core/objects/opengl/DefaultLodVertexFormats.java index 5b744b3c0..116ed0f0c 100644 --- a/src/main/java/com/seibel/lod/core/objects/opengl/DefaultLodVertexFormats.java +++ b/src/main/java/com/seibel/lod/core/objects/opengl/DefaultLodVertexFormats.java @@ -1,3 +1,22 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.seibel.lod.core.objects.opengl; import com.google.common.collect.ImmutableList; diff --git a/src/main/java/com/seibel/lod/core/objects/opengl/LodBufferBuilder.java b/src/main/java/com/seibel/lod/core/objects/opengl/LodBufferBuilder.java index f6b99aedf..a017591a0 100644 --- a/src/main/java/com/seibel/lod/core/objects/opengl/LodBufferBuilder.java +++ b/src/main/java/com/seibel/lod/core/objects/opengl/LodBufferBuilder.java @@ -1,3 +1,22 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.seibel.lod.core.objects.opengl; import java.nio.Buffer; @@ -16,7 +35,9 @@ import com.google.common.collect.Lists; /** * A (almost) exact copy of Minecraft's - * BufferBuilder object. + * BufferBuilder object.
+ * Which allows for creating and filling + * OpenGL buffers. * * @author James Seibel * @version 11-13-2021 diff --git a/src/main/java/com/seibel/lod/core/objects/opengl/LodVertexBuffer.java b/src/main/java/com/seibel/lod/core/objects/opengl/LodVertexBuffer.java index 1e56012c3..4b73d53f9 100644 --- a/src/main/java/com/seibel/lod/core/objects/opengl/LodVertexBuffer.java +++ b/src/main/java/com/seibel/lod/core/objects/opengl/LodVertexBuffer.java @@ -1,3 +1,22 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.seibel.lod.core.objects.opengl; import org.lwjgl.opengl.GL15; @@ -6,11 +25,11 @@ import com.seibel.lod.core.enums.rendering.GlProxyContext; import com.seibel.lod.core.render.GlProxy; /** - * a (almost) exact copy of MC's - * VertexBuffer object. + * This is a container for a OpenGL + * VBO (Vertex Buffer Object). * * @author James Seibel - * @version 11-13-2021 + * @version 11-20-2021 */ public class LodVertexBuffer implements AutoCloseable { @@ -31,10 +50,7 @@ public class LodVertexBuffer implements AutoCloseable { if (this.id >= 0) { - if (GlProxy.getInstance().getGlContext() == GlProxyContext.NONE) - throw new IllegalStateException("Thread [" +Thread.currentThread().getName() + "] tried to close the [" + LodVertexBuffer.class.getSimpleName() + "] with id [" + this.id + "] outside a OpenGL contex."); - - GL15.glDeleteBuffers(this.id); + GlProxy.getInstance().recordOpenGlCall(() -> GL15.glDeleteBuffers(this.id)); this.id = -1; } } diff --git a/src/main/java/com/seibel/lod/core/objects/opengl/LodVertexFormat.java b/src/main/java/com/seibel/lod/core/objects/opengl/LodVertexFormat.java index ab6fe76eb..c0281b6b2 100644 --- a/src/main/java/com/seibel/lod/core/objects/opengl/LodVertexFormat.java +++ b/src/main/java/com/seibel/lod/core/objects/opengl/LodVertexFormat.java @@ -1,3 +1,22 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.seibel.lod.core.objects.opengl; import java.util.stream.Collectors; @@ -8,6 +27,9 @@ import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntList; /** + * This is used to represent a single vertex + * stored in GPU memory, + *

* A (almost) exact copy of Minecraft's * VertexFormat class, several methods * were commented out since we didn't need them. @@ -139,7 +161,7 @@ public class LodVertexFormat */ - /* not currently needed has Position/Normal/Color/UV + /* not currently needed has-Position/Normal/Color/UV public boolean hasPosition() { return elements.stream().anyMatch(e -> e.getUsage() == LodVertexFormatElement.Usage.POSITION); diff --git a/src/main/java/com/seibel/lod/core/objects/opengl/LodVertexFormatElement.java b/src/main/java/com/seibel/lod/core/objects/opengl/LodVertexFormatElement.java index cdbf61441..65e892a6b 100644 --- a/src/main/java/com/seibel/lod/core/objects/opengl/LodVertexFormatElement.java +++ b/src/main/java/com/seibel/lod/core/objects/opengl/LodVertexFormatElement.java @@ -1,10 +1,31 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.seibel.lod.core.objects.opengl; import org.lwjgl.opengl.GL11; /** + * This object is used to build LodVertexFormats. + *

* A (almost) exact copy of Minecraft's - * VertexFormatElement class. + * VertexFormatElement class.
* A number of things were removed from the original * object since we didn't need them, specifically "usage". * diff --git a/src/main/java/com/seibel/lod/core/render/GlProxy.java b/src/main/java/com/seibel/lod/core/render/GlProxy.java index 0c70020a9..0befb13b4 100644 --- a/src/main/java/com/seibel/lod/core/render/GlProxy.java +++ b/src/main/java/com/seibel/lod/core/render/GlProxy.java @@ -35,8 +35,8 @@ import com.seibel.lod.core.api.ClientApi; import com.seibel.lod.core.enums.rendering.GlProxyContext; import com.seibel.lod.core.render.shader.LodShader; import com.seibel.lod.core.render.shader.LodShaderProgram; -import com.seibel.lod.core.wrapperAdapters.SingletonHandler; -import com.seibel.lod.core.wrapperAdapters.minecraft.IMinecraftWrapper; +import com.seibel.lod.core.util.SingletonHandler; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper; /** * A singleton that holds references to different openGL contexts diff --git a/src/main/java/com/seibel/lod/core/render/LodRenderer.java b/src/main/java/com/seibel/lod/core/render/LodRenderer.java index e64e3f9e9..eb9ad3dd1 100644 --- a/src/main/java/com/seibel/lod/core/render/LodRenderer.java +++ b/src/main/java/com/seibel/lod/core/render/LodRenderer.java @@ -33,6 +33,7 @@ import com.seibel.lod.core.enums.rendering.DebugMode; import com.seibel.lod.core.enums.rendering.FogDistance; import com.seibel.lod.core.enums.rendering.FogDrawOverride; import com.seibel.lod.core.enums.rendering.FogQuality; +import com.seibel.lod.core.handlers.IReflectionHandler; import com.seibel.lod.core.objects.lod.LodDimension; import com.seibel.lod.core.objects.lod.RegionPos; import com.seibel.lod.core.objects.math.Mat4f; @@ -44,14 +45,13 @@ import com.seibel.lod.core.render.shader.LodShaderProgram; import com.seibel.lod.core.util.DetailDistanceUtil; import com.seibel.lod.core.util.LevelPosUtil; import com.seibel.lod.core.util.LodUtil; -import com.seibel.lod.core.wrapperAdapters.IWrapperFactory; -import com.seibel.lod.core.wrapperAdapters.SingletonHandler; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton; -import com.seibel.lod.core.wrapperAdapters.handlers.IReflectionHandler; -import com.seibel.lod.core.wrapperAdapters.minecraft.IMinecraftWrapper; -import com.seibel.lod.core.wrapperAdapters.minecraft.IProfilerWrapper; +import com.seibel.lod.core.util.SingletonHandler; +import com.seibel.lod.core.wrapperInterfaces.IWrapperFactory; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IProfilerWrapper; import com.seibel.lod.forge.wrappers.minecraft.MinecraftRenderWrapper; /** diff --git a/src/main/java/com/seibel/lod/core/render/RenderUtil.java b/src/main/java/com/seibel/lod/core/render/RenderUtil.java index de0909eb0..b3dd210cf 100644 --- a/src/main/java/com/seibel/lod/core/render/RenderUtil.java +++ b/src/main/java/com/seibel/lod/core/render/RenderUtil.java @@ -21,8 +21,8 @@ package com.seibel.lod.core.render; import com.seibel.lod.core.objects.math.Vec3f; import com.seibel.lod.core.util.LodUtil; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; import com.seibel.lod.forge.wrappers.minecraft.MinecraftRenderWrapper; /** diff --git a/src/main/java/com/seibel/lod/core/util/ColorUtil.java b/src/main/java/com/seibel/lod/core/util/ColorUtil.java index 012e7088d..1933246d2 100644 --- a/src/main/java/com/seibel/lod/core/util/ColorUtil.java +++ b/src/main/java/com/seibel/lod/core/util/ColorUtil.java @@ -21,8 +21,7 @@ package com.seibel.lod.core.util; import java.awt.Color; -import com.seibel.lod.core.wrapperAdapters.SingletonHandler; -import com.seibel.lod.core.wrapperAdapters.minecraft.IMinecraftWrapper; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper; /** * diff --git a/src/main/java/com/seibel/lod/core/util/DetailDistanceUtil.java b/src/main/java/com/seibel/lod/core/util/DetailDistanceUtil.java index 0f58b8682..981327270 100644 --- a/src/main/java/com/seibel/lod/core/util/DetailDistanceUtil.java +++ b/src/main/java/com/seibel/lod/core/util/DetailDistanceUtil.java @@ -22,8 +22,7 @@ package com.seibel.lod.core.util; import com.seibel.lod.core.enums.config.DistanceGenerationMode; import com.seibel.lod.core.enums.config.HorizontalQuality; import com.seibel.lod.core.enums.config.HorizontalResolution; -import com.seibel.lod.core.wrapperAdapters.SingletonHandler; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; import com.seibel.lod.forge.wrappers.minecraft.MinecraftRenderWrapper; /** diff --git a/src/main/java/com/seibel/lod/core/util/LodUtil.java b/src/main/java/com/seibel/lod/core/util/LodUtil.java index 6a4b9a793..1dcd2cdea 100644 --- a/src/main/java/com/seibel/lod/core/util/LodUtil.java +++ b/src/main/java/com/seibel/lod/core/util/LodUtil.java @@ -31,14 +31,13 @@ import com.seibel.lod.core.objects.lod.LodDimension; import com.seibel.lod.core.objects.lod.RegionPos; import com.seibel.lod.core.objects.opengl.DefaultLodVertexFormats; import com.seibel.lod.core.objects.opengl.LodVertexFormat; -import com.seibel.lod.core.wrapperAdapters.IWrapperFactory; -import com.seibel.lod.core.wrapperAdapters.SingletonHandler; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton; -import com.seibel.lod.core.wrapperAdapters.minecraft.IMinecraftWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IDimensionTypeWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper; +import com.seibel.lod.core.wrapperInterfaces.IWrapperFactory; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IDimensionTypeWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; import com.seibel.lod.forge.wrappers.minecraft.MinecraftRenderWrapper; /** diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/SingletonHandler.java b/src/main/java/com/seibel/lod/core/util/SingletonHandler.java similarity index 67% rename from src/main/java/com/seibel/lod/core/wrapperAdapters/SingletonHandler.java rename to src/main/java/com/seibel/lod/core/util/SingletonHandler.java index 7bb59085e..cb6791660 100644 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/SingletonHandler.java +++ b/src/main/java/com/seibel/lod/core/util/SingletonHandler.java @@ -1,4 +1,23 @@ -package com.seibel.lod.core.wrapperAdapters; +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.core.util; import java.util.HashMap; import java.util.Map; @@ -8,7 +27,7 @@ import java.util.Map; * for singletons. * * @author James Seibel - * @version 11-15-2021 + * @version 11-20-2021 */ public class SingletonHandler { @@ -66,10 +85,10 @@ public class SingletonHandler @SuppressWarnings("unchecked") public static T get(Class objectClass) throws NullPointerException, ClassCastException { - // + // throw an error if the given singleton doesn't exist. if (!singletons.containsKey(objectClass)) { - throw new NullPointerException("The singleton [" + objectClass.getSimpleName() + "] was never bound."); + throw new NullPointerException("The singleton [" + objectClass.getSimpleName() + "] was never bound. If you are calling [bind], make sure it is happening before you call [get]."); } diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/IWrapperFactory.java b/src/main/java/com/seibel/lod/core/wrapperAdapters/IWrapperFactory.java deleted file mode 100644 index 72d9c6896..000000000 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/IWrapperFactory.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.seibel.lod.core.wrapperAdapters; - -import com.seibel.lod.core.builders.lodBuilding.LodBuilder; -import com.seibel.lod.core.objects.lod.LodDimension; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper; -import com.seibel.lod.core.wrapperAdapters.worldGeneration.AbstractWorldGeneratorWrapper; - -/** - * This handles creating abstract wrapper objects. - * - * @author James Seibel - * @version 11-18-2021 - */ -public interface IWrapperFactory -{ - public AbstractBlockPosWrapper createBlockPos(); - public AbstractBlockPosWrapper createBlockPos(int x, int y, int z); - - - public AbstractChunkPosWrapper createChunkPos(); - public AbstractChunkPosWrapper createChunkPos(int x, int z); - public AbstractChunkPosWrapper createChunkPos(AbstractChunkPosWrapper newChunkPos); - public AbstractChunkPosWrapper createChunkPos(AbstractBlockPosWrapper blockPos); - - - public AbstractWorldGeneratorWrapper createWorldGenerator(LodBuilder newLodBuilder, LodDimension newLodDimension, IWorldWrapper worldWrapper); -} diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/block/AbstractBlockPosWrapper.java b/src/main/java/com/seibel/lod/core/wrapperAdapters/block/AbstractBlockPosWrapper.java deleted file mode 100644 index 1ded1f571..000000000 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/block/AbstractBlockPosWrapper.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.seibel.lod.core.wrapperAdapters.block; - -import com.seibel.lod.core.enums.LodDirection; - -public abstract class AbstractBlockPosWrapper -{ - public AbstractBlockPosWrapper() { } - public AbstractBlockPosWrapper(int x, int y, int z) { } - - - - public abstract void set(int x, int y, int z); - - public abstract int getX(); - public abstract int getY(); - public abstract int getZ(); - - public abstract int get(LodDirection.Axis axis); - - /** returns itself */ - public abstract AbstractBlockPosWrapper offset(int x, int y, int z); -} diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/block/IBlockColorSingletonWrapper.java b/src/main/java/com/seibel/lod/core/wrapperAdapters/block/IBlockColorSingletonWrapper.java deleted file mode 100644 index 7ac448d8e..000000000 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/block/IBlockColorSingletonWrapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.seibel.lod.core.wrapperAdapters.block; - -/** - * Contains the static methods for IBlockColorWrapper - * - * @author James Seibel - * @version 11-17-2021 - */ -public interface IBlockColorSingletonWrapper -{ - /** returns the base color of water (grey value) */ - public IBlockColorWrapper getWaterColor(); -} - diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/block/IBlockColorWrapper.java b/src/main/java/com/seibel/lod/core/wrapperAdapters/block/IBlockColorWrapper.java deleted file mode 100644 index 6d9506bf5..000000000 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/block/IBlockColorWrapper.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.seibel.lod.core.wrapperAdapters.block; - -/** - * This class wraps the minecraft Block class - * - * @author James Seibel - * @version 11-17-2021 - */ -public interface IBlockColorWrapper -{ - //--------------// - //Colors getters// - //--------------// - - public boolean hasColor(); - - public int getColor(); - - - //------------// - //Tint getters// - //------------// - - public boolean hasTint(); - - public boolean hasGrassTint(); - - public boolean hasFolliageTint(); - - public boolean hasWaterTint(); - -} - diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/block/IBlockShapeWrapper.java b/src/main/java/com/seibel/lod/core/wrapperAdapters/block/IBlockShapeWrapper.java deleted file mode 100644 index 6bdf7717a..000000000 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/block/IBlockShapeWrapper.java +++ /dev/null @@ -1,18 +0,0 @@ - -package com.seibel.lod.core.wrapperAdapters.block; - -//This class wraps the minecraft Block class -public interface IBlockShapeWrapper -{ - public boolean ofBlockToAvoid(); - - //-----------------// - //Avoidance getters// - //-----------------// - - public boolean isNonFull(); - - public boolean hasNoCollision(); - - public boolean isToAvoid(); -} \ No newline at end of file diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/chunk/AbstractChunkPosWrapper.java b/src/main/java/com/seibel/lod/core/wrapperAdapters/chunk/AbstractChunkPosWrapper.java deleted file mode 100644 index 3e595c730..000000000 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/chunk/AbstractChunkPosWrapper.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.seibel.lod.core.wrapperAdapters.chunk; - -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; - - -/** - * This class wraps minecraft's ChunkPos class - * - * @author James Seibel - * @version 11-18-2021 - */ -public abstract class AbstractChunkPosWrapper -{ - public AbstractChunkPosWrapper(AbstractChunkPosWrapper newChunkPos) { } - public AbstractChunkPosWrapper(AbstractBlockPosWrapper blockPos) { } - public AbstractChunkPosWrapper(int chunkX, int chunkZ) { } - public AbstractChunkPosWrapper() { } - - - - public abstract int getX(); - public abstract int getZ(); - - public abstract int getMinBlockX(); - public abstract int getMinBlockZ(); - - public abstract int getRegionX(); - public abstract int getRegionZ(); - - public abstract AbstractBlockPosWrapper getWorldPosition(); - -} diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/chunk/IChunkWrapper.java b/src/main/java/com/seibel/lod/core/wrapperAdapters/chunk/IChunkWrapper.java deleted file mode 100644 index 3a39f70aa..000000000 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/chunk/IChunkWrapper.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.seibel.lod.core.wrapperAdapters.chunk; - -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.block.IBlockColorWrapper; -import com.seibel.lod.core.wrapperAdapters.block.IBlockShapeWrapper; -import com.seibel.lod.forge.wrappers.world.BiomeWrapper; - -/** - * - * @author ?? - * @version 11-17-2021 - */ -public interface IChunkWrapper -{ - public int getHeight(); - - public boolean isPositionInWater(AbstractBlockPosWrapper blockPos); - - public int getHeightMapValue(int xRel, int zRel); - - public BiomeWrapper getBiome(int xRel, int yAbs, int zRel); - - public IBlockColorWrapper getBlockColorWrapper(AbstractBlockPosWrapper blockPos); - - public IBlockShapeWrapper getBlockShapeWrapper(AbstractBlockPosWrapper blockPos); - - public AbstractChunkPosWrapper getPos(); - - public boolean isLightCorrect(); - - public boolean isWaterLogged(AbstractBlockPosWrapper blockPos); - - public int getEmittedBrightness(AbstractBlockPosWrapper blockPos); -} diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/minecraft/IMinecraftRenderWrapper.java b/src/main/java/com/seibel/lod/core/wrapperAdapters/minecraft/IMinecraftRenderWrapper.java deleted file mode 100644 index 7124ce9f6..000000000 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/minecraft/IMinecraftRenderWrapper.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.seibel.lod.core.wrapperAdapters.minecraft; - -import java.util.HashSet; - -import com.seibel.lod.core.objects.math.Mat4f; -import com.seibel.lod.core.objects.math.Vec3d; -import com.seibel.lod.core.objects.math.Vec3f; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; - -/** - * Contains everything related to - * rendering in Minecraft. - * - * @author James Seibel - * @version 11-18-2021 - */ -public interface IMinecraftRenderWrapper -{ - public Vec3f getLookAtVector(); - - public AbstractBlockPosWrapper getCameraBlockPosition(); - - public boolean playerHasBlindnessEffect(); - - public Vec3d getCameraExactPosition(); - - public Mat4f getDefaultProjectionMatrix(float partialTicks); - - public double getGamma(); - - public double getFov(float partialTicks); - - /** Measured in chunks */ - public int getRenderDistance(); - - public int getScreenWidth(); - public int getScreenHeight(); - - /** - * This method returns the ChunkPos of all chunks that Minecraft - * is going to render this frame. - */ - public HashSet getRenderedChunks(); -} diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/minecraft/IProfilerWrapper.java b/src/main/java/com/seibel/lod/core/wrapperAdapters/minecraft/IProfilerWrapper.java deleted file mode 100644 index d277aff72..000000000 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/minecraft/IProfilerWrapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.seibel.lod.core.wrapperAdapters.minecraft; - -/** - * - * - * @author James Seibel - * @version 11-20-2021 - */ -public interface IProfilerWrapper -{ - public void push(String newSection); - - public void popPush(String newSection); - - public void pop(); -} diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/misc/ILightMapWrapper.java b/src/main/java/com/seibel/lod/core/wrapperAdapters/misc/ILightMapWrapper.java deleted file mode 100644 index 1d71719c7..000000000 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/misc/ILightMapWrapper.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.seibel.lod.core.wrapperAdapters.misc; - -/** - * - * @author Leonardo Amato - * @version 11-13-2021 - */ -public interface ILightMapWrapper -{ - public int getLightValue(int skyLight, int blockLight); -} diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/world/IBiomeWrapper.java b/src/main/java/com/seibel/lod/core/wrapperAdapters/world/IBiomeWrapper.java deleted file mode 100644 index 91d1d2833..000000000 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/world/IBiomeWrapper.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.seibel.lod.core.wrapperAdapters.world; - -/** - * This class wraps the minecraft BlockPos.Mutable (and BlockPos) class - * - * @author James Seibel - * @version 11-15-2021 - */ -public interface IBiomeWrapper -{ - /** Returns a color int for the given biome. */ - public int getColorForBiome(int x, int z); - - public int getGrassTint(int x, int z); - - public int getFolliageTint(); - - public int getWaterTint(); - -} diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/world/IDimensionTypeWrapper.java b/src/main/java/com/seibel/lod/core/wrapperAdapters/world/IDimensionTypeWrapper.java deleted file mode 100644 index ea07b72df..000000000 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/world/IDimensionTypeWrapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.seibel.lod.core.wrapperAdapters.world; - -/** - * - * - * @author James Seibel - * @version 11-15-2021 - */ -public interface IDimensionTypeWrapper -{ - public String getDimensionName(); - - public boolean hasCeiling(); - - public boolean hasSkyLight(); -} diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/world/IWorldWrapper.java b/src/main/java/com/seibel/lod/core/wrapperAdapters/world/IWorldWrapper.java deleted file mode 100644 index 0ca5058a4..000000000 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/world/IWorldWrapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.seibel.lod.core.wrapperAdapters.world; - -import java.io.File; - -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; - -/** - * - * @author ?? - * @version 11-15-2021 - */ -public interface IWorldWrapper -{ - public IDimensionTypeWrapper getDimensionType(); - - public int getBlockLight(AbstractBlockPosWrapper blockPos); - - public int getSkyLight(AbstractBlockPosWrapper blockPos); - - public IBiomeWrapper getBiome(AbstractBlockPosWrapper blockPos); - - public boolean hasCeiling(); - - public boolean hasSkyLight(); - - public boolean isEmpty(); - - public int getHeight(); - - public int getSeaLevel(); - - /** @throws UnsupportedOperationException if the WorldWrapper isn't for a ServerWorld */ - public File getSaveFolder() throws UnsupportedOperationException; - - -} diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/worldGeneration/AbstractWorldGeneratorWrapper.java b/src/main/java/com/seibel/lod/core/wrapperAdapters/worldGeneration/AbstractWorldGeneratorWrapper.java deleted file mode 100644 index 8ca243d57..000000000 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/worldGeneration/AbstractWorldGeneratorWrapper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.seibel.lod.core.wrapperAdapters.worldGeneration; - -import com.seibel.lod.core.builders.lodBuilding.LodBuilder; -import com.seibel.lod.core.enums.config.DistanceGenerationMode; -import com.seibel.lod.core.objects.lod.LodDimension; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper; - -/** - * This is used for generating chunks - * in a variety of detail and threading levels. - * - * @author James Seibel - * @version 11-20-2021 - */ -public abstract class AbstractWorldGeneratorWrapper -{ - public AbstractWorldGeneratorWrapper(LodBuilder newLodBuilder, LodDimension newLodDimension, IWorldWrapper worldWrapper) - { - - } - - - public abstract void generateBiomesOnly(AbstractChunkPosWrapper pos, DistanceGenerationMode generationMode); - - public abstract void generateSurface(AbstractChunkPosWrapper pos); - - public abstract void generateFeatures(AbstractChunkPosWrapper pos); - - public abstract void generateFull(AbstractChunkPosWrapper pos); -} diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/IWrapperFactory.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/IWrapperFactory.java new file mode 100644 index 000000000..8aadc4783 --- /dev/null +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/IWrapperFactory.java @@ -0,0 +1,48 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.core.wrapperInterfaces; + +import com.seibel.lod.core.builders.lodBuilding.LodBuilder; +import com.seibel.lod.core.objects.lod.LodDimension; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; +import com.seibel.lod.core.wrapperInterfaces.worldGeneration.AbstractWorldGeneratorWrapper; + +/** + * This handles creating abstract wrapper objects. + * + * @author James Seibel + * @version 11-18-2021 + */ +public interface IWrapperFactory +{ + public AbstractBlockPosWrapper createBlockPos(); + public AbstractBlockPosWrapper createBlockPos(int x, int y, int z); + + + public AbstractChunkPosWrapper createChunkPos(); + public AbstractChunkPosWrapper createChunkPos(int x, int z); + public AbstractChunkPosWrapper createChunkPos(AbstractChunkPosWrapper newChunkPos); + public AbstractChunkPosWrapper createChunkPos(AbstractBlockPosWrapper blockPos); + + + public AbstractWorldGeneratorWrapper createWorldGenerator(LodBuilder newLodBuilder, LodDimension newLodDimension, IWorldWrapper worldWrapper); +} diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/block/AbstractBlockPosWrapper.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/block/AbstractBlockPosWrapper.java new file mode 100644 index 000000000..880606d4d --- /dev/null +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/block/AbstractBlockPosWrapper.java @@ -0,0 +1,48 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.core.wrapperInterfaces.block; + +import com.seibel.lod.core.enums.LodDirection; + +/** + * BlockPos needs to be abstract instead of a interfaces + * so that we can define its constructors. + * + * @author James Seibel + * @version 11-20-2021 + */ +public abstract class AbstractBlockPosWrapper +{ + public AbstractBlockPosWrapper() { } + public AbstractBlockPosWrapper(int x, int y, int z) { } + + + + public abstract void set(int x, int y, int z); + + public abstract int getX(); + public abstract int getY(); + public abstract int getZ(); + + public abstract int get(LodDirection.Axis axis); + + /** returns itself */ + public abstract AbstractBlockPosWrapper offset(int x, int y, int z); +} diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/block/IBlockColorSingletonWrapper.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/block/IBlockColorSingletonWrapper.java new file mode 100644 index 000000000..cf905a3be --- /dev/null +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/block/IBlockColorSingletonWrapper.java @@ -0,0 +1,35 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.core.wrapperInterfaces.block; + +/** + * Contains methods that would have been static in BlockColorWrapper. + * Since interfaces can't create/implement static methods we have + * to split the object up in two. + * + * @author James Seibel + * @version 11-17-2021 + */ +public interface IBlockColorSingletonWrapper +{ + /** @returns the base color of water (grey) */ + public IBlockColorWrapper getWaterColor(); +} + diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/block/IBlockColorWrapper.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/block/IBlockColorWrapper.java new file mode 100644 index 000000000..1ee012905 --- /dev/null +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/block/IBlockColorWrapper.java @@ -0,0 +1,50 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.core.wrapperInterfaces.block; + +/** + * @author James Seibel + * @version 11-17-2021 + */ +public interface IBlockColorWrapper +{ + //--------------// + //Colors getters// + //--------------// + + public boolean hasColor(); + + public int getColor(); + + + //------------// + //Tint getters// + //------------// + + public boolean hasTint(); + + public boolean hasGrassTint(); + + public boolean hasFolliageTint(); + + public boolean hasWaterTint(); + +} + diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/block/IBlockShapeWrapper.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/block/IBlockShapeWrapper.java new file mode 100644 index 000000000..a36cd8474 --- /dev/null +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/block/IBlockShapeWrapper.java @@ -0,0 +1,39 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.core.wrapperInterfaces.block; + +/** + * @author James Seibel + * @version 11-20-2021 + */ +public interface IBlockShapeWrapper +{ + public boolean ofBlockToAvoid(); + + //-----------------// + //Avoidance getters// + //-----------------// + + public boolean isNonFull(); + + public boolean hasNoCollision(); + + public boolean isToAvoid(); +} \ No newline at end of file diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/chunk/AbstractChunkPosWrapper.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/chunk/AbstractChunkPosWrapper.java new file mode 100644 index 000000000..a19b8c964 --- /dev/null +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/chunk/AbstractChunkPosWrapper.java @@ -0,0 +1,52 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.core.wrapperInterfaces.chunk; + +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; + + +/** + * This is abstract instead of a interface so + * we can define its constructors. + * + * @author James Seibel + * @version 11-18-2021 + */ +public abstract class AbstractChunkPosWrapper +{ + public AbstractChunkPosWrapper(AbstractChunkPosWrapper newChunkPos) { } + public AbstractChunkPosWrapper(AbstractBlockPosWrapper blockPos) { } + public AbstractChunkPosWrapper(int chunkX, int chunkZ) { } + public AbstractChunkPosWrapper() { } + + + + public abstract int getX(); + public abstract int getZ(); + + public abstract int getMinBlockX(); + public abstract int getMinBlockZ(); + + public abstract int getRegionX(); + public abstract int getRegionZ(); + + public abstract AbstractBlockPosWrapper getWorldPosition(); + +} diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/chunk/IChunkWrapper.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/chunk/IChunkWrapper.java new file mode 100644 index 000000000..94d3312f0 --- /dev/null +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/chunk/IChunkWrapper.java @@ -0,0 +1,52 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.core.wrapperInterfaces.chunk; + +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.IBlockColorWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.IBlockShapeWrapper; +import com.seibel.lod.forge.wrappers.world.BiomeWrapper; + +/** + * @author James Seibel + * @version 11-17-2021 + */ +public interface IChunkWrapper +{ + public int getHeight(); + + public boolean isPositionInWater(AbstractBlockPosWrapper blockPos); + + public int getHeightMapValue(int xRel, int zRel); + + public BiomeWrapper getBiome(int xRel, int yAbs, int zRel); + + public IBlockColorWrapper getBlockColorWrapper(AbstractBlockPosWrapper blockPos); + + public IBlockShapeWrapper getBlockShapeWrapper(AbstractBlockPosWrapper blockPos); + + public AbstractChunkPosWrapper getPos(); + + public boolean isLightCorrect(); + + public boolean isWaterLogged(AbstractBlockPosWrapper blockPos); + + public int getEmittedBrightness(AbstractBlockPosWrapper blockPos); +} diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/config/ILodConfigWrapperSingleton.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/config/ILodConfigWrapperSingleton.java similarity index 95% rename from src/main/java/com/seibel/lod/core/wrapperAdapters/config/ILodConfigWrapperSingleton.java rename to src/main/java/com/seibel/lod/core/wrapperInterfaces/config/ILodConfigWrapperSingleton.java index 6f062d75d..1757e5dbb 100644 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/config/ILodConfigWrapperSingleton.java +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/config/ILodConfigWrapperSingleton.java @@ -1,4 +1,23 @@ -package com.seibel.lod.core.wrapperAdapters.config; +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.core.wrapperInterfaces.config; import com.seibel.lod.core.enums.config.BlocksToAvoid; import com.seibel.lod.core.enums.config.BufferRebuildTimes; @@ -18,8 +37,9 @@ import com.seibel.lod.core.objects.MinDefaultMax; import com.seibel.lod.core.util.LodUtil; /** - * This holds the config defaults and setters/getters - * that should be hooked into the host mod loader (Fabric, Forge, etc.). + * This holds the config defaults, setters/getters + * that should be hooked into the host mod loader (Fabric, Forge, etc.), and + * the options that should be implemented in a configWrapperSingleton. * * @author James Seibel * @version 11-16-2021 diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/minecraft/IMinecraftRenderWrapper.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/minecraft/IMinecraftRenderWrapper.java new file mode 100644 index 000000000..e84e8fa39 --- /dev/null +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/minecraft/IMinecraftRenderWrapper.java @@ -0,0 +1,64 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.core.wrapperInterfaces.minecraft; + +import java.util.HashSet; + +import com.seibel.lod.core.objects.math.Mat4f; +import com.seibel.lod.core.objects.math.Vec3d; +import com.seibel.lod.core.objects.math.Vec3f; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; + +/** + * Contains everything related to + * rendering in Minecraft. + * + * @author James Seibel + * @version 11-18-2021 + */ +public interface IMinecraftRenderWrapper +{ + public Vec3f getLookAtVector(); + + public AbstractBlockPosWrapper getCameraBlockPosition(); + + public boolean playerHasBlindnessEffect(); + + public Vec3d getCameraExactPosition(); + + public Mat4f getDefaultProjectionMatrix(float partialTicks); + + public double getGamma(); + + public double getFov(float partialTicks); + + /** Measured in chunks */ + public int getRenderDistance(); + + public int getScreenWidth(); + public int getScreenHeight(); + + /** + * This method returns the ChunkPos of all chunks that Minecraft + * is going to render this frame. + */ + public HashSet getRenderedChunks(); +} diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/minecraft/IMinecraftWrapper.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/minecraft/IMinecraftWrapper.java similarity index 87% rename from src/main/java/com/seibel/lod/core/wrapperAdapters/minecraft/IMinecraftWrapper.java rename to src/main/java/com/seibel/lod/core/wrapperInterfaces/minecraft/IMinecraftWrapper.java index d87ddd024..6fd49e28d 100644 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/minecraft/IMinecraftWrapper.java +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/minecraft/IMinecraftWrapper.java @@ -17,22 +17,21 @@ * along with this program. If not, see . */ -package com.seibel.lod.core.wrapperAdapters.minecraft; +package com.seibel.lod.core.wrapperInterfaces.minecraft; import java.awt.Color; import java.io.File; import java.util.ArrayList; import com.seibel.lod.core.enums.LodDirection; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; -import com.seibel.lod.core.wrapperAdapters.misc.ILightMapWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IDimensionTypeWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.misc.ILightMapWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IDimensionTypeWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; /** - * A singleton that wraps the Minecraft class - * to allow for easier movement between Minecraft versions. + * Contains everything related to the Minecraft object. * * @author James Seibel * @version 9-16-2021 diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/minecraft/IProfilerWrapper.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/minecraft/IProfilerWrapper.java new file mode 100644 index 000000000..702a2eb4c --- /dev/null +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/minecraft/IProfilerWrapper.java @@ -0,0 +1,33 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.core.wrapperInterfaces.minecraft; + +/** + * @author James Seibel + * @version 11-20-2021 + */ +public interface IProfilerWrapper +{ + public void push(String newSection); + + public void popPush(String newSection); + + public void pop(); +} diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/misc/ILightMapWrapper.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/misc/ILightMapWrapper.java new file mode 100644 index 000000000..7ec9d0cf0 --- /dev/null +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/misc/ILightMapWrapper.java @@ -0,0 +1,29 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.core.wrapperInterfaces.misc; + +/** + * @author James Seibel + * @version 11-20-2021 + */ +public interface ILightMapWrapper +{ + public int getLightValue(int skyLight, int blockLight); +} diff --git a/src/main/java/com/seibel/lod/core/wrapperAdapters/world/IBiomeColorWrapperSingleton.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IBiomeColorWrapperSingleton.java similarity index 85% rename from src/main/java/com/seibel/lod/core/wrapperAdapters/world/IBiomeColorWrapperSingleton.java rename to src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IBiomeColorWrapperSingleton.java index 023f10856..ddf8a2ad9 100644 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/world/IBiomeColorWrapperSingleton.java +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IBiomeColorWrapperSingleton.java @@ -17,14 +17,15 @@ * along with this program. If not, see . */ -package com.seibel.lod.core.wrapperAdapters.world; +package com.seibel.lod.core.wrapperInterfaces.world; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; /** + * Contains everything related to biome colors. * - * @author Cola? + * @author James Seibel * @version 11-15-2021 */ public interface IBiomeColorWrapperSingleton diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IBiomeWrapper.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IBiomeWrapper.java new file mode 100644 index 000000000..239518878 --- /dev/null +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IBiomeWrapper.java @@ -0,0 +1,37 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.core.wrapperInterfaces.world; + +/** + * @author James Seibel + * @version 11-15-2021 + */ +public interface IBiomeWrapper +{ + /** Returns a color int for the given biome. */ + public int getColorForBiome(int x, int z); + + public int getGrassTint(int x, int z); + + public int getFolliageTint(); + + public int getWaterTint(); + +} diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IDimensionTypeWrapper.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IDimensionTypeWrapper.java new file mode 100644 index 000000000..bc3b463c0 --- /dev/null +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IDimensionTypeWrapper.java @@ -0,0 +1,33 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.core.wrapperInterfaces.world; + +/** + * @author James Seibel + * @version 11-15-2021 + */ +public interface IDimensionTypeWrapper +{ + public String getDimensionName(); + + public boolean hasCeiling(); + + public boolean hasSkyLight(); +} diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IWorldWrapper.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IWorldWrapper.java new file mode 100644 index 000000000..ee7fd28bc --- /dev/null +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/world/IWorldWrapper.java @@ -0,0 +1,59 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.core.wrapperInterfaces.world; + +import java.io.File; + +import com.seibel.lod.core.enums.WorldType; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; + +/** + * Can be either a Server world or a Client world. + * + * @author James Seibel + * @version 11-20-2021 + */ +public interface IWorldWrapper +{ + public IDimensionTypeWrapper getDimensionType(); + + public WorldType getWorldType(); + + public int getBlockLight(AbstractBlockPosWrapper blockPos); + + public int getSkyLight(AbstractBlockPosWrapper blockPos); + + public IBiomeWrapper getBiome(AbstractBlockPosWrapper blockPos); + + public boolean hasCeiling(); + + public boolean hasSkyLight(); + + public boolean isEmpty(); + + public int getHeight(); + + public int getSeaLevel(); + + /** @throws UnsupportedOperationException if the WorldWrapper isn't for a ServerWorld */ + public File getSaveFolder() throws UnsupportedOperationException; + + +} diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/worldGeneration/AbstractWorldGeneratorWrapper.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/worldGeneration/AbstractWorldGeneratorWrapper.java new file mode 100644 index 000000000..f462bf0ab --- /dev/null +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/worldGeneration/AbstractWorldGeneratorWrapper.java @@ -0,0 +1,50 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.seibel.lod.core.wrapperInterfaces.worldGeneration; + +import com.seibel.lod.core.builders.lodBuilding.LodBuilder; +import com.seibel.lod.core.enums.config.DistanceGenerationMode; +import com.seibel.lod.core.objects.lod.LodDimension; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; + +/** + * This is used for generating chunks + * in a variety of detail and threading levels. + *

+ * Abstract instead of a interface so + * we can define its constructors. + * + * @author James Seibel + * @version 11-20-2021 + */ +public abstract class AbstractWorldGeneratorWrapper +{ + public AbstractWorldGeneratorWrapper(LodBuilder newLodBuilder, LodDimension newLodDimension, IWorldWrapper worldWrapper) { } + + + public abstract void generateBiomesOnly(AbstractChunkPosWrapper pos, DistanceGenerationMode generationMode); + + public abstract void generateSurface(AbstractChunkPosWrapper pos); + + public abstract void generateFeatures(AbstractChunkPosWrapper pos); + + public abstract void generateFull(AbstractChunkPosWrapper pos); +} diff --git a/src/main/java/com/seibel/lod/forge/ForgeClientProxy.java b/src/main/java/com/seibel/lod/forge/ForgeClientProxy.java index 4cbef841b..4ddf72131 100644 --- a/src/main/java/com/seibel/lod/forge/ForgeClientProxy.java +++ b/src/main/java/com/seibel/lod/forge/ForgeClientProxy.java @@ -20,7 +20,7 @@ package com.seibel.lod.forge; import com.seibel.lod.core.api.EventApi; -import com.seibel.lod.core.wrapperAdapters.chunk.IChunkWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.IChunkWrapper; import com.seibel.lod.forge.wrappers.chunk.ChunkWrapper; import com.seibel.lod.forge.wrappers.world.DimensionTypeWrapper; import com.seibel.lod.forge.wrappers.world.WorldWrapper; diff --git a/src/main/java/com/seibel/lod/forge/ForgeConfig.java b/src/main/java/com/seibel/lod/forge/ForgeConfig.java index b7afe6496..4bf59c8f9 100644 --- a/src/main/java/com/seibel/lod/forge/ForgeConfig.java +++ b/src/main/java/com/seibel/lod/forge/ForgeConfig.java @@ -43,15 +43,15 @@ import com.seibel.lod.core.enums.rendering.DebugMode; import com.seibel.lod.core.enums.rendering.FogDistance; import com.seibel.lod.core.enums.rendering.FogDrawOverride; import com.seibel.lod.core.objects.MinDefaultMax; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton.IClient.IAdvanced; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton.IClient.IAdvanced.IBuffers; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton.IClient.IAdvanced.IDebugging; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton.IClient.IAdvanced.IThreading; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton.IClient.IGraphics; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton.IClient.IGraphics.IAdvancedGraphics; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton.IClient.IGraphics.IFogQuality; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton.IClient.IGraphics.IQuality; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton.IClient.IWorldGenerator; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IAdvanced; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IGraphics; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IWorldGenerator; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IAdvanced.IBuffers; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IAdvanced.IDebugging; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IAdvanced.IThreading; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IGraphics.IAdvancedGraphics; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IGraphics.IFogQuality; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton.IClient.IGraphics.IQuality; import net.minecraftforge.common.ForgeConfigSpec; import net.minecraftforge.eventbus.api.SubscribeEvent; diff --git a/src/main/java/com/seibel/lod/forge/ForgeMain.java b/src/main/java/com/seibel/lod/forge/ForgeMain.java index c953dfa91..86d9c5ce5 100644 --- a/src/main/java/com/seibel/lod/forge/ForgeMain.java +++ b/src/main/java/com/seibel/lod/forge/ForgeMain.java @@ -20,7 +20,7 @@ package com.seibel.lod.forge; import com.seibel.lod.core.ModInfo; -import com.seibel.lod.forge.wrappers.DependencySetup; +import com.seibel.lod.forge.wrappers.ForgeDependencySetup; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -48,7 +48,7 @@ public class ForgeMain private void init(final FMLCommonSetupEvent event) { // make sure the dependencies are set up before the mod needs them - DependencySetup.createInitialBindings(); + ForgeDependencySetup.createInitialBindings(); ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, ForgeConfig.CLIENT_SPEC); } diff --git a/src/main/java/com/seibel/lod/forge/wrappers/DependencySetup.java b/src/main/java/com/seibel/lod/forge/wrappers/ForgeDependencySetup.java similarity index 70% rename from src/main/java/com/seibel/lod/forge/wrappers/DependencySetup.java rename to src/main/java/com/seibel/lod/forge/wrappers/ForgeDependencySetup.java index 3fbd42367..f5267f435 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/DependencySetup.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/ForgeDependencySetup.java @@ -1,13 +1,13 @@ package com.seibel.lod.forge.wrappers; +import com.seibel.lod.core.handlers.IReflectionHandler; import com.seibel.lod.core.handlers.ReflectionHandler; -import com.seibel.lod.core.wrapperAdapters.IWrapperFactory; -import com.seibel.lod.core.wrapperAdapters.SingletonHandler; -import com.seibel.lod.core.wrapperAdapters.block.IBlockColorSingletonWrapper; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton; -import com.seibel.lod.core.wrapperAdapters.handlers.IReflectionHandler; -import com.seibel.lod.core.wrapperAdapters.minecraft.IMinecraftRenderWrapper; -import com.seibel.lod.core.wrapperAdapters.minecraft.IMinecraftWrapper; +import com.seibel.lod.core.util.SingletonHandler; +import com.seibel.lod.core.wrapperInterfaces.IWrapperFactory; +import com.seibel.lod.core.wrapperInterfaces.block.IBlockColorSingletonWrapper; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper; import com.seibel.lod.forge.wrappers.block.BlockColorSingletonWrapper; import com.seibel.lod.forge.wrappers.config.LodConfigWrapperSingleton; import com.seibel.lod.forge.wrappers.minecraft.MinecraftRenderWrapper; @@ -22,7 +22,7 @@ import com.seibel.lod.forge.wrappers.minecraft.MinecraftWrapper; * @author James Seibel * @version 11-20-2021 */ -public class DependencySetup +public class ForgeDependencySetup { public static void createInitialBindings() { diff --git a/src/main/java/com/seibel/lod/forge/wrappers/McObjectConverter.java b/src/main/java/com/seibel/lod/forge/wrappers/McObjectConverter.java index f8df930a7..d0c08a9ea 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/McObjectConverter.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/McObjectConverter.java @@ -30,21 +30,12 @@ import net.minecraft.util.math.vector.Matrix4f; /** * This class converts to and from Minecraft objects (Ex: Matrix4f) * and objects we created (Ex: Mat4f). - * Since we don't want to deal with a bunch of tiny changes - * every time Minecraft renames a variable in Matrix4f or something. * * @author James Seibel - * @version 11-11-2021 + * @version 11-20-2021 */ public class McObjectConverter { - - public McObjectConverter() - { - - } - - /** 4x4 float matrix converter */ public static Mat4f Convert(Matrix4f mcMatrix) { diff --git a/src/main/java/com/seibel/lod/forge/wrappers/WrapperFactory.java b/src/main/java/com/seibel/lod/forge/wrappers/WrapperFactory.java index 8607bee86..fa27662ca 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/WrapperFactory.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/WrapperFactory.java @@ -1,12 +1,31 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.seibel.lod.forge.wrappers; import com.seibel.lod.core.builders.lodBuilding.LodBuilder; import com.seibel.lod.core.objects.lod.LodDimension; -import com.seibel.lod.core.wrapperAdapters.IWrapperFactory; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper; -import com.seibel.lod.core.wrapperAdapters.worldGeneration.AbstractWorldGeneratorWrapper; +import com.seibel.lod.core.wrapperInterfaces.IWrapperFactory; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; +import com.seibel.lod.core.wrapperInterfaces.worldGeneration.AbstractWorldGeneratorWrapper; import com.seibel.lod.forge.wrappers.block.BlockPosWrapper; import com.seibel.lod.forge.wrappers.chunk.ChunkPosWrapper; import com.seibel.lod.forge.wrappers.worldGeneration.WorldGeneratorWrapper; diff --git a/src/main/java/com/seibel/lod/forge/wrappers/WrapperUtil.java b/src/main/java/com/seibel/lod/forge/wrappers/WrapperUtil.java index 2384f431a..5f515d71f 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/WrapperUtil.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/WrapperUtil.java @@ -1,11 +1,35 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.seibel.lod.forge.wrappers; import net.minecraft.world.gen.Heightmap; +/** + * Stores any variables or code that + * may be shared between wrapper objects. + * + * @author James Seibel + * @version 11-20-2021 + */ public class WrapperUtil { - /** If we ever need to use a heightmap for any reason, use this one. */ - public static final Heightmap.Type DEFAULT_HEIGHTMAP = Heightmap.Type.WORLD_SURFACE_WG; - + public static final Heightmap.Type DEFAULT_HEIGHTMAP = Heightmap.Type.WORLD_SURFACE_WG; } diff --git a/src/main/java/com/seibel/lod/forge/wrappers/block/BlockColorSingletonWrapper.java b/src/main/java/com/seibel/lod/forge/wrappers/block/BlockColorSingletonWrapper.java index 68a6ad4cc..57eb0dbc4 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/block/BlockColorSingletonWrapper.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/block/BlockColorSingletonWrapper.java @@ -1,22 +1,42 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.seibel.lod.forge.wrappers.block; -import com.seibel.lod.core.wrapperAdapters.block.IBlockColorSingletonWrapper; -import com.seibel.lod.core.wrapperAdapters.block.IBlockColorWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.IBlockColorSingletonWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.IBlockColorWrapper; import net.minecraft.block.Blocks; /** - * This class wraps the minecraft Block class + * Contains methods that would have been static in BlockColorWrapper. + * Since interfaces can't create/implement static methods we have + * to split the object up in two. * - * @author ?? + * @author James Seibel * @version 11-17-2021 */ public class BlockColorSingletonWrapper implements IBlockColorSingletonWrapper { public static final BlockColorSingletonWrapper INSTANCE = new BlockColorSingletonWrapper(); - /** return base color of water (grey value) */ @Override public IBlockColorWrapper getWaterColor() { diff --git a/src/main/java/com/seibel/lod/forge/wrappers/block/BlockColorWrapper.java b/src/main/java/com/seibel/lod/forge/wrappers/block/BlockColorWrapper.java index 8568e0792..9bc8a9b68 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/block/BlockColorWrapper.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/block/BlockColorWrapper.java @@ -1,3 +1,22 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.seibel.lod.forge.wrappers.block; import java.util.List; @@ -7,7 +26,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import com.seibel.lod.core.util.ColorUtil; -import com.seibel.lod.core.wrapperAdapters.block.IBlockColorWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.IBlockColorWrapper; import com.seibel.lod.forge.wrappers.minecraft.MinecraftWrapper; import net.minecraft.block.AbstractPlantBlock; @@ -29,8 +48,6 @@ import net.minecraftforge.client.model.data.ModelDataMap; /** - * This class wraps the minecraft Block color class - * * @author ?? * @version 11-17-2021 */ diff --git a/src/main/java/com/seibel/lod/forge/wrappers/block/BlockPosWrapper.java b/src/main/java/com/seibel/lod/forge/wrappers/block/BlockPosWrapper.java index 0f38093bb..8939d209e 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/block/BlockPosWrapper.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/block/BlockPosWrapper.java @@ -1,12 +1,35 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.seibel.lod.forge.wrappers.block; import java.util.Objects; import com.seibel.lod.core.enums.LodDirection; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; import net.minecraft.util.math.BlockPos; +/** + * @author James Seibel + * @version 11-20-2021 + */ public class BlockPosWrapper extends AbstractBlockPosWrapper { private final BlockPos.Mutable blockPos; @@ -22,26 +45,31 @@ public class BlockPosWrapper extends AbstractBlockPosWrapper this.blockPos = new BlockPos.Mutable(x, y, z); } + @Override public void set(int x, int y, int z) { blockPos.set(x, y, z); } + @Override public int getX() { return blockPos.getX(); } + @Override public int getY() { return blockPos.getY(); } + @Override public int getZ() { return blockPos.getZ(); } + @Override public int get(LodDirection.Axis axis) { return axis.choose(getX(), getY(), getZ()); @@ -64,6 +92,7 @@ public class BlockPosWrapper extends AbstractBlockPosWrapper return Objects.hash(blockPos); } + @Override public BlockPosWrapper offset(int x, int y, int z) { blockPos.set(blockPos.getX() + x, blockPos.getY() + y, blockPos.getZ() + z); diff --git a/src/main/java/com/seibel/lod/forge/wrappers/block/BlockShapeWrapper.java b/src/main/java/com/seibel/lod/forge/wrappers/block/BlockShapeWrapper.java index 0a494a0e1..5a9d71f0b 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/block/BlockShapeWrapper.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/block/BlockShapeWrapper.java @@ -1,3 +1,21 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ package com.seibel.lod.forge.wrappers.block; @@ -5,9 +23,9 @@ import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.block.IBlockShapeWrapper; -import com.seibel.lod.core.wrapperAdapters.chunk.IChunkWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.IBlockShapeWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.IChunkWrapper; import com.seibel.lod.forge.wrappers.chunk.ChunkWrapper; import net.minecraft.block.Block; @@ -20,8 +38,6 @@ import net.minecraft.world.IBlockReader; /** - * This class wraps Minecraft's Block class - * * @author ?? * @version 11-18-2021 */ diff --git a/src/main/java/com/seibel/lod/forge/wrappers/chunk/ChunkPosWrapper.java b/src/main/java/com/seibel/lod/forge/wrappers/chunk/ChunkPosWrapper.java index 1c345246f..1442e8307 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/chunk/ChunkPosWrapper.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/chunk/ChunkPosWrapper.java @@ -1,9 +1,28 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.seibel.lod.forge.wrappers.chunk; import java.util.Objects; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; import com.seibel.lod.forge.wrappers.block.BlockPosWrapper; import net.minecraft.util.math.BlockPos; @@ -11,8 +30,6 @@ import net.minecraft.util.math.ChunkPos; /** - * This class wraps minecraft's ChunkPos class - * * @author James Seibel * @version 11-18-2021 */ diff --git a/src/main/java/com/seibel/lod/forge/wrappers/chunk/ChunkWrapper.java b/src/main/java/com/seibel/lod/forge/wrappers/chunk/ChunkWrapper.java index b26d866e3..cebaf940d 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/chunk/ChunkWrapper.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/chunk/ChunkWrapper.java @@ -1,9 +1,28 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.seibel.lod.forge.wrappers.chunk; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.block.IBlockColorWrapper; -import com.seibel.lod.core.wrapperAdapters.block.IBlockShapeWrapper; -import com.seibel.lod.core.wrapperAdapters.chunk.IChunkWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.IBlockColorWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.IBlockShapeWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.IChunkWrapper; import com.seibel.lod.forge.wrappers.WrapperUtil; import com.seibel.lod.forge.wrappers.block.BlockColorWrapper; import com.seibel.lod.forge.wrappers.block.BlockPosWrapper; @@ -17,7 +36,6 @@ import net.minecraft.state.properties.BlockStateProperties; import net.minecraft.world.chunk.IChunk; /** - * * @author ?? * @version 11-17-2021 */ diff --git a/src/main/java/com/seibel/lod/forge/wrappers/config/LodConfigWrapperSingleton.java b/src/main/java/com/seibel/lod/forge/wrappers/config/LodConfigWrapperSingleton.java index b35afe61e..ebbe7c444 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/config/LodConfigWrapperSingleton.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/config/LodConfigWrapperSingleton.java @@ -1,3 +1,22 @@ +/* + * This file is part of the Distant Horizon mod (formerly the LOD Mod), + * licensed under the GNU GPL v3 License. + * + * Copyright (C) 2020 James Seibel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + package com.seibel.lod.forge.wrappers.config; import com.seibel.lod.core.enums.config.BlocksToAvoid; @@ -14,13 +33,10 @@ import com.seibel.lod.core.enums.config.VerticalQuality; import com.seibel.lod.core.enums.rendering.DebugMode; import com.seibel.lod.core.enums.rendering.FogDistance; import com.seibel.lod.core.enums.rendering.FogDrawOverride; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; import com.seibel.lod.forge.ForgeConfig; /** - * This holds the config defaults and setters/getters - * that should be hooked into the host mod loader (Fabric, Forge, etc.). - * * @author James Seibel * @version 11-16-2021 */ diff --git a/src/main/java/com/seibel/lod/forge/wrappers/minecraft/MinecraftRenderWrapper.java b/src/main/java/com/seibel/lod/forge/wrappers/minecraft/MinecraftRenderWrapper.java index 3769c6d24..2e5737ee0 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/minecraft/MinecraftRenderWrapper.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/minecraft/MinecraftRenderWrapper.java @@ -5,9 +5,9 @@ import java.util.HashSet; import com.seibel.lod.core.objects.math.Mat4f; import com.seibel.lod.core.objects.math.Vec3d; import com.seibel.lod.core.objects.math.Vec3f; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; -import com.seibel.lod.core.wrapperAdapters.minecraft.IMinecraftRenderWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper; import com.seibel.lod.forge.wrappers.McObjectConverter; import com.seibel.lod.forge.wrappers.block.BlockPosWrapper; import com.seibel.lod.forge.wrappers.chunk.ChunkPosWrapper; diff --git a/src/main/java/com/seibel/lod/forge/wrappers/minecraft/MinecraftWrapper.java b/src/main/java/com/seibel/lod/forge/wrappers/minecraft/MinecraftWrapper.java index c53a94e86..557906bb5 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/minecraft/MinecraftWrapper.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/minecraft/MinecraftWrapper.java @@ -27,11 +27,11 @@ import com.seibel.lod.core.ModInfo; import com.seibel.lod.core.api.ClientApi; import com.seibel.lod.core.enums.LodDirection; import com.seibel.lod.core.util.LodUtil; -import com.seibel.lod.core.wrapperAdapters.minecraft.IMinecraftWrapper; -import com.seibel.lod.core.wrapperAdapters.minecraft.IProfilerWrapper; -import com.seibel.lod.core.wrapperAdapters.misc.ILightMapWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IDimensionTypeWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IProfilerWrapper; +import com.seibel.lod.core.wrapperInterfaces.misc.ILightMapWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IDimensionTypeWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; import com.seibel.lod.forge.wrappers.McObjectConverter; import com.seibel.lod.forge.wrappers.block.BlockPosWrapper; import com.seibel.lod.forge.wrappers.chunk.ChunkPosWrapper; diff --git a/src/main/java/com/seibel/lod/forge/wrappers/minecraft/ProfilerWrapper.java b/src/main/java/com/seibel/lod/forge/wrappers/minecraft/ProfilerWrapper.java index 9478cc200..78c9f4a7e 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/minecraft/ProfilerWrapper.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/minecraft/ProfilerWrapper.java @@ -1,6 +1,6 @@ package com.seibel.lod.forge.wrappers.minecraft; -import com.seibel.lod.core.wrapperAdapters.minecraft.IProfilerWrapper; +import com.seibel.lod.core.wrapperInterfaces.minecraft.IProfilerWrapper; import net.minecraft.profiler.IProfiler; diff --git a/src/main/java/com/seibel/lod/forge/wrappers/misc/LightMapWrapper.java b/src/main/java/com/seibel/lod/forge/wrappers/misc/LightMapWrapper.java index d445bc2c6..a5181b9e5 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/misc/LightMapWrapper.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/misc/LightMapWrapper.java @@ -1,6 +1,6 @@ package com.seibel.lod.forge.wrappers.misc; -import com.seibel.lod.core.wrapperAdapters.misc.ILightMapWrapper; +import com.seibel.lod.core.wrapperInterfaces.misc.ILightMapWrapper; import net.minecraft.client.renderer.texture.NativeImage; diff --git a/src/main/java/com/seibel/lod/forge/wrappers/world/BiomeColorWrapperSingleton.java b/src/main/java/com/seibel/lod/forge/wrappers/world/BiomeColorWrapperSingleton.java index f7c638b89..316b9c4b9 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/world/BiomeColorWrapperSingleton.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/world/BiomeColorWrapperSingleton.java @@ -19,16 +19,15 @@ package com.seibel.lod.forge.wrappers.world; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IBiomeColorWrapperSingleton; -import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IBiomeColorWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; import com.seibel.lod.forge.wrappers.block.BlockPosWrapper; import net.minecraft.world.biome.BiomeColors; /** - * * @author Cola? * @version 11-15-2021 */ diff --git a/src/main/java/com/seibel/lod/forge/wrappers/world/BiomeWrapper.java b/src/main/java/com/seibel/lod/forge/wrappers/world/BiomeWrapper.java index 8ebb4f10e..455af70af 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/world/BiomeWrapper.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/world/BiomeWrapper.java @@ -5,7 +5,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import com.seibel.lod.core.util.ColorUtil; -import com.seibel.lod.core.wrapperAdapters.world.IBiomeWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IBiomeWrapper; import com.seibel.lod.forge.wrappers.block.BlockColorSingletonWrapper; import com.seibel.lod.forge.wrappers.block.BlockColorWrapper; @@ -14,8 +14,6 @@ import net.minecraft.world.biome.Biome; /** - * This class wraps the minecraft BlockPos.Mutable (and BlockPos) class - * * @author James Seibel * @version 11-15-2021 */ @@ -45,6 +43,7 @@ public class BiomeWrapper implements IBiomeWrapper } + /** Returns a color int for the given biome. */ @Override public int getColorForBiome(int x, int z) diff --git a/src/main/java/com/seibel/lod/forge/wrappers/world/DimensionTypeWrapper.java b/src/main/java/com/seibel/lod/forge/wrappers/world/DimensionTypeWrapper.java index a9cd88d9e..13cdd0fd7 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/world/DimensionTypeWrapper.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/world/DimensionTypeWrapper.java @@ -3,12 +3,11 @@ package com.seibel.lod.forge.wrappers.world; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import com.seibel.lod.core.wrapperAdapters.world.IDimensionTypeWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IDimensionTypeWrapper; import net.minecraft.world.DimensionType; /** - * * @author ?? * @version 11-15-2021 */ diff --git a/src/main/java/com/seibel/lod/forge/wrappers/world/WorldWrapper.java b/src/main/java/com/seibel/lod/forge/wrappers/world/WorldWrapper.java index b4c2960a2..15dbdfa0e 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/world/WorldWrapper.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/world/WorldWrapper.java @@ -5,8 +5,8 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import com.seibel.lod.core.enums.WorldType; -import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper; +import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; import com.seibel.lod.forge.wrappers.block.BlockPosWrapper; import net.minecraft.client.world.ClientWorld; @@ -15,10 +15,9 @@ import net.minecraft.world.server.ServerChunkProvider; import net.minecraft.world.server.ServerWorld; /** - * * @author James Seibel * @author ?? - * @version 11-15-2021 + * @version 11-20-2021 */ public class WorldWrapper implements IWorldWrapper { @@ -61,6 +60,12 @@ public class WorldWrapper implements IWorldWrapper worldWrapperMap.clear(); } + @Override + public WorldType getWorldType() + { + return worldType; + } + @Override public DimensionTypeWrapper getDimensionType() { diff --git a/src/main/java/com/seibel/lod/forge/wrappers/worldGeneration/WorldGeneratorWrapper.java b/src/main/java/com/seibel/lod/forge/wrappers/worldGeneration/WorldGeneratorWrapper.java index f175fac3c..2eb0c95da 100644 --- a/src/main/java/com/seibel/lod/forge/wrappers/worldGeneration/WorldGeneratorWrapper.java +++ b/src/main/java/com/seibel/lod/forge/wrappers/worldGeneration/WorldGeneratorWrapper.java @@ -12,11 +12,11 @@ import com.seibel.lod.core.builders.lodBuilding.LodBuilderConfig; import com.seibel.lod.core.enums.config.DistanceGenerationMode; import com.seibel.lod.core.objects.lod.LodDimension; import com.seibel.lod.core.util.LodUtil; -import com.seibel.lod.core.wrapperAdapters.SingletonHandler; -import com.seibel.lod.core.wrapperAdapters.chunk.AbstractChunkPosWrapper; -import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton; -import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper; -import com.seibel.lod.core.wrapperAdapters.worldGeneration.AbstractWorldGeneratorWrapper; +import com.seibel.lod.core.util.SingletonHandler; +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; +import com.seibel.lod.core.wrapperInterfaces.worldGeneration.AbstractWorldGeneratorWrapper; import com.seibel.lod.forge.wrappers.WrapperUtil; import com.seibel.lod.forge.wrappers.chunk.ChunkPosWrapper; import com.seibel.lod.forge.wrappers.chunk.ChunkWrapper; @@ -39,9 +39,6 @@ import net.minecraft.world.server.ServerWorld; import net.minecraft.world.server.ServerWorldLightManager; /** - * This is used for generating chunks - * in a variety of detail and threading levels. - * * @author James Seibel * @version 11-13-2021 */