From f5e84005bb36131376f21e57b6aa35988f5b39d8 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Sat, 20 Nov 2021 12:03:48 -0600 Subject: [PATCH] Cleanup and remove some MC references in Core --- .../core/objects/PosToGenerateContainer.java | 1 - .../core/objects/PosToRenderContainer.java | 2 -- .../seibel/lod/core/objects/math/Vec3i.java | 10 +++---- .../com/seibel/lod/core/render/GlProxy.java | 6 ++--- .../seibel/lod/core/render/LodRenderer.java | 4 +-- .../lod/core/util/DetailDistanceUtil.java | 3 --- .../com/seibel/lod/core/util/LodUtil.java | 26 ------------------- .../wrapperAdapters/world/IWorldWrapper.java | 1 - .../com/seibel/lod/wrappers/WrapperUtil.java | 9 +++++++ .../lod/wrappers/chunk/ChunkWrapper.java | 4 +-- .../worldGeneration/LodServerWorld.java | 7 ++--- .../WorldGeneratorWrapper.java | 4 +-- 12 files changed, 22 insertions(+), 55 deletions(-) create mode 100644 src/main/java/com/seibel/lod/wrappers/WrapperUtil.java diff --git a/src/main/java/com/seibel/lod/core/objects/PosToGenerateContainer.java b/src/main/java/com/seibel/lod/core/objects/PosToGenerateContainer.java index 80ca0ec88..730c9d6cb 100644 --- a/src/main/java/com/seibel/lod/core/objects/PosToGenerateContainer.java +++ b/src/main/java/com/seibel/lod/core/objects/PosToGenerateContainer.java @@ -23,7 +23,6 @@ import com.seibel.lod.core.util.LevelPosUtil; /** * Holds the levelPos that need to be generated. - * TODO is that correct? * * @author Leonardo Amato * @version 9-27-2021 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 0a51c0176..158e68a77 100644 --- a/src/main/java/com/seibel/lod/core/objects/PosToRenderContainer.java +++ b/src/main/java/com/seibel/lod/core/objects/PosToRenderContainer.java @@ -36,8 +36,6 @@ public class PosToRenderContainer private int regionPosZ; private int numberOfPosToRender; private int[] posToRender; - /*TODO this population matrix could be converted to boolean to improve memory use - * no since bools are stored as bytes anyway - cola*/ private byte[][] population; public PosToRenderContainer(byte minDetail, int regionPosX, int regionPosZ) 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 b8033c3b9..3ba53c2a4 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 @@ -21,8 +21,6 @@ package com.seibel.lod.core.objects.math; import com.seibel.lod.core.util.LodUtil; -import net.minecraft.util.math.vector.Vector3i; - /** * A (almost) exact copy of Minecraft's 1.16.5 * implementation of a 3 element vector. @@ -153,11 +151,11 @@ public class Vec3i return (xAdd * xAdd) + (yAdd * yAdd) + (zAdd * zAdd); } - public int distManhattan(Vector3i otherVec) + public int distManhattan(Vec3i otherVec) { - float xSub = Math.abs(otherVec.getX() - this.x); - float ySub = Math.abs(otherVec.getY() - this.y); - float zSub = Math.abs(otherVec.getZ() - this.z); + float xSub = Math.abs(otherVec.x - this.x); + float ySub = Math.abs(otherVec.y - this.y); + float zSub = Math.abs(otherVec.z - this.z); return (int) (xSub + ySub + zSub); } 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 6e1173b57..b7591b44c 100644 --- a/src/main/java/com/seibel/lod/core/render/GlProxy.java +++ b/src/main/java/com/seibel/lod/core/render/GlProxy.java @@ -26,8 +26,6 @@ import org.lwjgl.opengl.GL20; import org.lwjgl.opengl.GL30; import org.lwjgl.opengl.GLCapabilities; -import com.mojang.blaze3d.systems.IRenderCall; -import com.mojang.blaze3d.systems.RenderSystem; import com.seibel.lod.api.lod.ClientApi; import com.seibel.lod.core.ModInfo; import com.seibel.lod.core.enums.rendering.GlProxyContext; @@ -92,7 +90,7 @@ public class GlProxy // getting Minecraft's context has to be done on the render thread, // where the GL context is - if (!RenderSystem.isOnRenderThread()) + if (GLFW.glfwGetCurrentContext() == 0L) throw new IllegalStateException(GlProxy.class.getSimpleName() + " was created outside the render thread!"); @@ -285,7 +283,7 @@ public class GlProxy * Useful for creating/destroying OpenGL objects in a thread * that doesn't normally have access to a OpenGL context. */ - public void recordOpenGlCall(IRenderCall renderCall) //(Runnable renderCall) + public void recordOpenGlCall(Runnable renderCall) //(Runnable renderCall) { // TODO this shouldn't rely on Minecraft's RenderSystem and should just run // on a executer thread with a separate context 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 b063a581d..d12304c21 100644 --- a/src/main/java/com/seibel/lod/core/render/LodRenderer.java +++ b/src/main/java/com/seibel/lod/core/render/LodRenderer.java @@ -83,7 +83,6 @@ public class LodRenderer */ public DebugMode previousDebugMode = DebugMode.OFF; - private IProfiler profiler; private int farPlaneBlockDistance; @@ -156,7 +155,7 @@ public class LodRenderer * @param mcProjectionMatrix * @param partialTicks how far into the current tick this method was called. */ - public void drawLODs(LodDimension lodDim, Mat4f mcModelViewMatrix, Mat4f mcProjectionMatrix, float partialTicks, IProfiler newProfiler) + public void drawLODs(LodDimension lodDim, Mat4f mcModelViewMatrix, Mat4f mcProjectionMatrix, float partialTicks, IProfiler profiler) { //=================================// // determine if LODs should render // @@ -221,7 +220,6 @@ public class LodRenderer // initial setup // //===============// - profiler = newProfiler; profiler.push("LOD setup"); GlProxy glProxy = GlProxy.getInstance(); 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 0f9137f43..eb0163b61 100644 --- a/src/main/java/com/seibel/lod/core/util/DetailDistanceUtil.java +++ b/src/main/java/com/seibel/lod/core/util/DetailDistanceUtil.java @@ -24,9 +24,7 @@ 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.wrapperAdapters.minecraft.IMinecraftWrapper; import com.seibel.lod.wrappers.minecraft.MinecraftRenderWrapper; -import com.seibel.lod.wrappers.minecraft.MinecraftWrapper; /** * @@ -36,7 +34,6 @@ import com.seibel.lod.wrappers.minecraft.MinecraftWrapper; public class DetailDistanceUtil { private static final ILodConfigWrapperSingleton CONFIG = SingletonHandler.get(ILodConfigWrapperSingleton.class); - private static final IMinecraftWrapper MC = SingletonHandler.get(IMinecraftWrapper.class); private static final MinecraftRenderWrapper MC_RENDER = MinecraftRenderWrapper.INSTANCE; private static final double genMultiplier = 1.0; 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 2b54fe580..584ab4334 100644 --- a/src/main/java/com/seibel/lod/core/util/LodUtil.java +++ b/src/main/java/com/seibel/lod/core/util/LodUtil.java @@ -41,10 +41,6 @@ import com.seibel.lod.core.wrapperAdapters.world.IDimensionTypeWrapper; import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper; import com.seibel.lod.wrappers.minecraft.MinecraftRenderWrapper; -import net.minecraft.world.chunk.ChunkSection; -import net.minecraft.world.chunk.IChunk; -import net.minecraft.world.gen.Heightmap; - /** * This class holds methods and constants that may be used in multiple places. * @@ -125,11 +121,6 @@ public class LodUtil public static final int REGION_WIDTH_IN_CHUNKS = REGION_WIDTH / CHUNK_WIDTH; - /** - * 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; - /** * This regex finds any characters that are invalid for use in a windows * (and by extension mac and linux) file path @@ -195,23 +186,6 @@ public class LodUtil return pos / (1 << (targetDetailLevel - currentDetailLevel)); } - /** - * Return whether the given chunk - * has any data in it. - */ - public static boolean chunkHasBlockData(IChunk chunk) - { - ChunkSection[] blockStorage = chunk.getSections(); - - for (ChunkSection section : blockStorage) - { - if (section != null && !section.isEmpty()) - return true; - } - - return false; - } - /** * If on single player this will return the name of the user's 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 index 48af03712..0ca5058a4 100644 --- a/src/main/java/com/seibel/lod/core/wrapperAdapters/world/IWorldWrapper.java +++ b/src/main/java/com/seibel/lod/core/wrapperAdapters/world/IWorldWrapper.java @@ -6,7 +6,6 @@ import com.seibel.lod.core.wrapperAdapters.block.AbstractBlockPosWrapper; /** * - * @author James Seibel * @author ?? * @version 11-15-2021 */ diff --git a/src/main/java/com/seibel/lod/wrappers/WrapperUtil.java b/src/main/java/com/seibel/lod/wrappers/WrapperUtil.java new file mode 100644 index 000000000..28076d695 --- /dev/null +++ b/src/main/java/com/seibel/lod/wrappers/WrapperUtil.java @@ -0,0 +1,9 @@ +package com.seibel.lod.wrappers; + +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; + +} diff --git a/src/main/java/com/seibel/lod/wrappers/chunk/ChunkWrapper.java b/src/main/java/com/seibel/lod/wrappers/chunk/ChunkWrapper.java index 0d28df7fa..c691d4723 100644 --- a/src/main/java/com/seibel/lod/wrappers/chunk/ChunkWrapper.java +++ b/src/main/java/com/seibel/lod/wrappers/chunk/ChunkWrapper.java @@ -1,10 +1,10 @@ package com.seibel.lod.wrappers.chunk; -import com.seibel.lod.core.util.LodUtil; 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.wrappers.WrapperUtil; import com.seibel.lod.wrappers.block.BlockColorWrapper; import com.seibel.lod.wrappers.block.BlockPosWrapper; import com.seibel.lod.wrappers.block.BlockShapeWrapper; @@ -45,7 +45,7 @@ public class ChunkWrapper implements IChunkWrapper @Override public int getHeightMapValue(int xRel, int zRel) { - return chunk.getOrCreateHeightmapUnprimed(LodUtil.DEFAULT_HEIGHTMAP).getFirstAvailable(xRel, zRel); + return chunk.getOrCreateHeightmapUnprimed(WrapperUtil.DEFAULT_HEIGHTMAP).getFirstAvailable(xRel, zRel); } @Override diff --git a/src/main/java/com/seibel/lod/wrappers/worldGeneration/LodServerWorld.java b/src/main/java/com/seibel/lod/wrappers/worldGeneration/LodServerWorld.java index 6d43c4ebd..26d6f8e83 100644 --- a/src/main/java/com/seibel/lod/wrappers/worldGeneration/LodServerWorld.java +++ b/src/main/java/com/seibel/lod/wrappers/worldGeneration/LodServerWorld.java @@ -26,16 +26,14 @@ import java.util.function.Predicate; import java.util.stream.Stream; import com.seibel.lod.core.util.LodUtil; +import com.seibel.lod.wrappers.WrapperUtil; -import net.minecraft.block.Block; import net.minecraft.block.BlockState; -import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.fluid.Fluid; import net.minecraft.fluid.FluidState; import net.minecraft.particles.IParticleData; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; import net.minecraft.util.SoundCategory; import net.minecraft.util.SoundEvent; import net.minecraft.util.math.AxisAlignedBB; @@ -54,7 +52,6 @@ import net.minecraft.world.chunk.AbstractChunkProvider; import net.minecraft.world.chunk.ChunkStatus; import net.minecraft.world.chunk.IChunk; import net.minecraft.world.gen.Heightmap; -import net.minecraft.world.gen.Heightmap.Type; import net.minecraft.world.gen.feature.structure.Structure; import net.minecraft.world.gen.feature.structure.StructureStart; import net.minecraft.world.lighting.WorldLightManager; @@ -97,7 +94,7 @@ public class LodServerWorld implements ISeedReader z = z % LodUtil.CHUNK_WIDTH; z = (z < 0) ? z + 16 : z; - return chunk.getOrCreateHeightmapUnprimed(LodUtil.DEFAULT_HEIGHTMAP).getFirstAvailable(x, z); + return chunk.getOrCreateHeightmapUnprimed(WrapperUtil.DEFAULT_HEIGHTMAP).getFirstAvailable(x, z); } @Override diff --git a/src/main/java/com/seibel/lod/wrappers/worldGeneration/WorldGeneratorWrapper.java b/src/main/java/com/seibel/lod/wrappers/worldGeneration/WorldGeneratorWrapper.java index d60d73ef3..d41451800 100644 --- a/src/main/java/com/seibel/lod/wrappers/worldGeneration/WorldGeneratorWrapper.java +++ b/src/main/java/com/seibel/lod/wrappers/worldGeneration/WorldGeneratorWrapper.java @@ -17,12 +17,12 @@ 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.wrappers.WrapperUtil; import com.seibel.lod.wrappers.chunk.ChunkPosWrapper; import com.seibel.lod.wrappers.chunk.ChunkWrapper; import com.seibel.lod.wrappers.world.WorldWrapper; import net.minecraft.util.palette.UpgradeData; -import net.minecraft.util.registry.Registry; import net.minecraft.world.biome.Biome; import net.minecraft.world.chunk.ChunkPrimer; import net.minecraft.world.chunk.ChunkStatus; @@ -103,7 +103,7 @@ public class WorldGeneratorWrapper extends AbstractWorldGeneratorWrapper boolean inTheEnd = false; // add fake heightmap data so our LODs aren't at height 0 - Heightmap heightmap = new Heightmap(chunk, LodUtil.DEFAULT_HEIGHTMAP); + Heightmap heightmap = new Heightmap(chunk, WrapperUtil.DEFAULT_HEIGHTMAP); for (int x = 0; x < LodUtil.CHUNK_WIDTH && !inTheEnd; x++) { for (int z = 0; z < LodUtil.CHUNK_WIDTH && !inTheEnd; z++)