diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/McObjectConverter.java b/common/src/main/java/com/seibel/lod/common/wrappers/McObjectConverter.java index 4a97b7aef..c0bda1689 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/McObjectConverter.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/McObjectConverter.java @@ -20,15 +20,18 @@ package com.seibel.lod.common.wrappers; import java.nio.FloatBuffer; +import java.util.function.BiConsumer; +import java.util.function.Consumer; import com.mojang.math.Matrix4f; -import com.seibel.lod.common.wrappers.block.BlockPosWrapper; import com.seibel.lod.core.enums.LodDirection; +import com.seibel.lod.core.objects.DHBlockPos; +import com.seibel.lod.core.objects.DHChunkPos; import com.seibel.lod.core.objects.math.Mat4f; -import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.world.level.ChunkPos; /** * This class converts to and from Minecraft objects (Ex: Matrix4f) @@ -63,11 +66,13 @@ public class McObjectConverter } } - public static BlockPos Convert(AbstractBlockPosWrapper wrappedPos) { - return new BlockPos(wrappedPos.getX(),wrappedPos.getY(), wrappedPos.getZ()); + public static BlockPos Convert(DHBlockPos wrappedPos) { + return new BlockPos(wrappedPos.x, wrappedPos.y, wrappedPos.z); } - - + public static ChunkPos Convert(DHChunkPos wrappedPos) { + return new ChunkPos(wrappedPos.x, wrappedPos.z); + } + public static Direction Convert(LodDirection lodDirection) { return directions[lodDirection.ordinal()]; @@ -76,4 +81,22 @@ public class McObjectConverter { return lodDirections[direction.ordinal()]; } + public static void DebugCheckAllPackers() { + BiConsumer func = (x, z) -> DHChunkPos._DebugCheckPacker(x,z,ChunkPos.asLong(x,z)); + func.accept(0,0); + func.accept(12345,134); + func.accept(-12345,-134); + func.accept(-30000000/16,30000000/16); + func.accept(30000000/16,-30000000/16); + func.accept(30000000/16,30000000/16); + func.accept(-30000000/16,-30000000/16); + Consumer func2 = (p) -> DHBlockPos._DebugCheckPacker(p.getX(),p.getY(),p.getZ(),p.asLong()); + func2.accept(new BlockPos(0,0,0)); + func2.accept(new BlockPos(12345,134,123)); + func2.accept(new BlockPos(-12345,-134,-80)); + func2.accept(new BlockPos(-30000000, 2047, 30000000)); + func2.accept(new BlockPos(30000000, -2048, -30000000)); + func2.accept(new BlockPos(30000000, 2047, 30000000)); + func2.accept(new BlockPos(-30000000, -2048, -30000000)); + } } diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/WrapperFactory.java b/common/src/main/java/com/seibel/lod/common/wrappers/WrapperFactory.java index b4d8fe6f3..07a2301b5 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/WrapperFactory.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/WrapperFactory.java @@ -22,12 +22,10 @@ package com.seibel.lod.common.wrappers; import com.seibel.lod.core.builders.lodBuilding.LodBuilder; import com.seibel.lod.core.objects.lod.LodDimension; 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.AbstractBatchGenerationEnvionmentWrapper; -import com.seibel.lod.common.wrappers.block.BlockPosWrapper; -import com.seibel.lod.common.wrappers.chunk.ChunkPosWrapper; +import com.seibel.lod.core.objects.DHBlockPos; +import com.seibel.lod.core.objects.DHChunkPos; import com.seibel.lod.common.wrappers.worldGeneration.BatchGenerationEnvironment; /** @@ -39,53 +37,7 @@ import com.seibel.lod.common.wrappers.worldGeneration.BatchGenerationEnvironment public class WrapperFactory implements IWrapperFactory { public static final WrapperFactory INSTANCE = new WrapperFactory(); - - - @Override - public AbstractBlockPosWrapper createBlockPos() - { - return new BlockPosWrapper(); - } - - @Override - public AbstractBlockPosWrapper createBlockPos(int x, int y, int z) - { - return new BlockPosWrapper(x, y, z); - } - - - - - @Override - public AbstractChunkPosWrapper createChunkPos() - { - return new ChunkPosWrapper(); - } - - @Override - public AbstractChunkPosWrapper createChunkPos(long xAndZPositionCombined) - { - return new ChunkPosWrapper(xAndZPositionCombined); - } - - @Override - public AbstractChunkPosWrapper createChunkPos(int x, int z) - { - return new ChunkPosWrapper(x, z); - } - - @Override - public AbstractChunkPosWrapper createChunkPos(AbstractChunkPosWrapper newChunkPos) - { - return new ChunkPosWrapper(newChunkPos); - } - - @Override - public AbstractChunkPosWrapper createChunkPos(AbstractBlockPosWrapper blockPos) - { - return new ChunkPosWrapper(blockPos); - } - + public AbstractBatchGenerationEnvionmentWrapper createBatchGenerator(LodBuilder newLodBuilder, LodDimension newLodDimension, IWorldWrapper worldWrapper) { diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/block/BlockDetailWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/block/BlockDetailWrapper.java index f45dd8438..ff4c80a03 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/block/BlockDetailWrapper.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/block/BlockDetailWrapper.java @@ -27,8 +27,8 @@ import com.seibel.lod.common.wrappers.McObjectConverter; import com.seibel.lod.common.wrappers.chunk.ChunkWrapper; import com.seibel.lod.core.enums.LodDirection; import com.seibel.lod.core.handlers.dependencyInjection.SingletonHandler; +import com.seibel.lod.core.objects.DHBlockPos; import com.seibel.lod.core.util.ColorUtil; -import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; import com.seibel.lod.core.wrapperInterfaces.block.IBlockDetailWrapper; import com.seibel.lod.core.wrapperInterfaces.chunk.IChunkWrapper; @@ -271,7 +271,7 @@ public class BlockDetailWrapper extends IBlockDetailWrapper } @Override - public int getAndResolveFaceColor(LodDirection dir, IChunkWrapper chunk, AbstractBlockPosWrapper blockPos) + public int getAndResolveFaceColor(LodDirection dir, IChunkWrapper chunk, DHBlockPos blockPos) { // FIXME: impl per-face colors resolveColors(); diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/block/BlockPosWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/block/BlockPosWrapper.java deleted file mode 100644 index a7a1d582f..000000000 --- a/common/src/main/java/com/seibel/lod/common/wrappers/block/BlockPosWrapper.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * This file is part of the Distant Horizons mod (formerly the LOD Mod), - * licensed under the GNU LGPL v3 License. - * - * Copyright (C) 2020-2022 James Seibel - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser 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 Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - */ - -package com.seibel.lod.common.wrappers.block; - -import java.util.Objects; - -import com.seibel.lod.core.enums.LodDirection; -import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; - -import net.minecraft.core.BlockPos; - - -/** - * @author James Seibel - * @version 11-21-2021 - */ -public class BlockPosWrapper extends AbstractBlockPosWrapper -{ - private final BlockPos.MutableBlockPos blockPos; - - - public BlockPosWrapper() - { - this.blockPos = new BlockPos.MutableBlockPos(0,0,0); - } - - public BlockPosWrapper(int x, int y, int z) - { - this.blockPos = new BlockPos.MutableBlockPos(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()); - } - - public BlockPos.MutableBlockPos getBlockPos() - { - return blockPos; - } - - @Override public boolean equals(Object o) - { - return blockPos.equals(o); - } - - @Override public int hashCode() - { - 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); - return this; - } - -} diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/chunk/ChunkPosWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/chunk/ChunkPosWrapper.java deleted file mode 100644 index e75ff6c60..000000000 --- a/common/src/main/java/com/seibel/lod/common/wrappers/chunk/ChunkPosWrapper.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * This file is part of the Distant Horizons mod (formerly the LOD Mod), - * licensed under the GNU LGPL v3 License. - * - * Copyright (C) 2020-2022 James Seibel - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser 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 Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - */ - -package com.seibel.lod.common.wrappers.chunk; - -import java.util.Objects; - -import com.seibel.lod.core.util.LevelPosUtil; -import com.seibel.lod.core.util.LodUtil; -import com.seibel.lod.core.wrapperInterfaces.block.AbstractBlockPosWrapper; -import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; -import com.seibel.lod.common.wrappers.block.BlockPosWrapper; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.ChunkPos; - - -/** - * @author James Seibel - * @version 11-21-2021 - */ -public class ChunkPosWrapper extends AbstractChunkPosWrapper -{ - private final net.minecraft.world.level.ChunkPos chunkPos; - - public ChunkPosWrapper() - { - this.chunkPos = new ChunkPos(0, 0); - } - - public ChunkPosWrapper(BlockPos blockPos) - { - this.chunkPos = new ChunkPos(blockPos); - } - - public ChunkPosWrapper(AbstractChunkPosWrapper newChunkPos) - { - this.chunkPos = ((ChunkPosWrapper) newChunkPos).chunkPos; - } - - public ChunkPosWrapper(AbstractBlockPosWrapper blockPos) - { - this.chunkPos = new ChunkPos(((BlockPosWrapper) blockPos).getBlockPos()); - } - - public ChunkPosWrapper(int chunkX, int chunkZ) - { - this.chunkPos = new ChunkPos(chunkX, chunkZ); - } - - public ChunkPosWrapper(long l) { - this.chunkPos = new ChunkPos(l); - } - - - public ChunkPosWrapper(ChunkPos pos) - { - this.chunkPos = pos; - } - - - - - @Override - public int getX() - { - return chunkPos.x; - } - - @Override - public int getZ() - { - return chunkPos.z; - } - - @Override - public int getMinBlockX() - { - return chunkPos.getMinBlockX(); - } - - @Override - public int getMinBlockZ() - { - return chunkPos.getMinBlockZ(); - } - - @Override - public int getRegionX() - { - return LevelPosUtil.convert(LodUtil.CHUNK_DETAIL_LEVEL, chunkPos.x, LodUtil.REGION_DETAIL_LEVEL); - } - - @Override - public int getRegionZ() - { - return LevelPosUtil.convert(LodUtil.CHUNK_DETAIL_LEVEL, chunkPos.z, LodUtil.REGION_DETAIL_LEVEL); - } - - @Override - public long getLong() { - return chunkPos.toLong(); - } - - public ChunkPos getChunkPos() - { - return chunkPos; - } - - @Override - public boolean equals(Object o) - { - // If the object is compared with itself then return true - if (o == this) { - return true; - } - // Check if o is an instance of RegionPos or not - if (!(o instanceof ChunkPosWrapper)) { - return false; - } - ChunkPosWrapper c = (ChunkPosWrapper) o; - return c.chunkPos.equals(chunkPos); - } - - @Override - public int hashCode() - { - return Objects.hash(chunkPos); - } - - @Override - public AbstractBlockPosWrapper getWorldPosition() - { - // the parameter here is the y position - #if PRE_MC_1_17_1 - BlockPos blockPos = chunkPos.getWorldPosition(); - #else - BlockPos blockPos = chunkPos.getMiddleBlockPosition(0); - #endif - return new BlockPosWrapper(blockPos.getX(), blockPos.getY(), blockPos.getZ()); - } - -} diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftClientWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftClientWrapper.java index a4278ef96..3c4531205 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftClientWrapper.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftClientWrapper.java @@ -26,7 +26,6 @@ import java.util.ArrayList; import com.mojang.blaze3d.platform.NativeImage; import com.mojang.blaze3d.platform.Window; import com.seibel.lod.core.ModInfo; -import com.seibel.lod.core.api.internal.InternalApiShared; import com.seibel.lod.core.enums.LodDirection; import com.seibel.lod.core.logging.DhLoggerBuilder; import com.seibel.lod.core.util.LodUtil; @@ -35,8 +34,8 @@ import com.seibel.lod.core.wrapperInterfaces.minecraft.IProfilerWrapper; import com.seibel.lod.core.wrapperInterfaces.world.IDimensionTypeWrapper; import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; import com.seibel.lod.common.wrappers.McObjectConverter; -import com.seibel.lod.common.wrappers.block.BlockPosWrapper; -import com.seibel.lod.common.wrappers.chunk.ChunkPosWrapper; +import com.seibel.lod.core.objects.DHBlockPos; +import com.seibel.lod.core.objects.DHChunkPos; import com.seibel.lod.common.wrappers.world.DimensionTypeWrapper; import com.seibel.lod.common.wrappers.world.WorldWrapper; @@ -181,21 +180,21 @@ public class MinecraftClientWrapper implements IMinecraftClientWrapper } @Override - public BlockPosWrapper getPlayerBlockPos() + public DHBlockPos getPlayerBlockPos() { BlockPos playerPos = getPlayer().blockPosition(); - return new BlockPosWrapper(playerPos.getX(), playerPos.getY(), playerPos.getZ()); + return new DHBlockPos(playerPos.getX(), playerPos.getY(), playerPos.getZ()); } @Override - public ChunkPosWrapper getPlayerChunkPos() + public DHChunkPos getPlayerChunkPos() { #if PRE_MC_1_17_1 ChunkPos playerPos = new ChunkPos(getPlayer().blockPosition()); #else ChunkPos playerPos = getPlayer().chunkPosition(); #endif - return new ChunkPosWrapper(playerPos.x, playerPos.z); + return new DHChunkPos(playerPos.x, playerPos.z); } public Options getOptions() diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftRenderWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftRenderWrapper.java index 91fd797f6..589eba6ad 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftRenderWrapper.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftRenderWrapper.java @@ -28,8 +28,8 @@ import java.util.stream.Collectors; import com.mojang.blaze3d.pipeline.RenderTarget; import com.mojang.blaze3d.platform.NativeImage; import com.mojang.blaze3d.systems.RenderSystem; +import com.seibel.lod.core.objects.DHChunkPos; import com.seibel.lod.common.wrappers.misc.LightMapWrapper; -import com.seibel.lod.core.api.internal.InternalApiShared; import com.seibel.lod.core.handlers.dependencyInjection.ModAccessorHandler; import com.seibel.lod.core.logging.DhLoggerBuilder; @@ -40,14 +40,12 @@ 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.IWrapperFactory; -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.core.wrapperInterfaces.modAccessor.IOptifineAccessor; import com.seibel.lod.core.wrapperInterfaces.modAccessor.ISodiumAccessor; import com.seibel.lod.common.wrappers.McObjectConverter; import com.seibel.lod.common.wrappers.WrapperFactory; -import com.seibel.lod.common.wrappers.block.BlockPosWrapper; +import com.seibel.lod.core.objects.DHBlockPos; import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; @@ -97,11 +95,11 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper } @Override - public AbstractBlockPosWrapper getCameraBlockPosition() + public DHBlockPos getCameraBlockPosition() { Camera camera = GAME_RENDERER.getMainCamera(); BlockPos blockPos = camera.getBlockPosition(); - return new BlockPosWrapper(blockPos.getX(), blockPos.getY(), blockPos.getZ()); + return new DHBlockPos(blockPos.getX(), blockPos.getY(), blockPos.getZ()); } @Override @@ -219,14 +217,14 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper public boolean usingBackupGetVanillaRenderedChunks = false; @Override - public HashSet getVanillaRenderedChunks() { + public HashSet getVanillaRenderedChunks() { ISodiumAccessor sodium = ModAccessorHandler.get(ISodiumAccessor.class); if (sodium != null) { return sodium.getNormalRenderedChunks(); } IOptifineAccessor optifine = ModAccessorHandler.get(IOptifineAccessor.class); if (optifine != null) { - HashSet pos = optifine.getNormalRenderedChunks(); + HashSet pos = optifine.getNormalRenderedChunks(); if (pos == null) pos = getMaximumRenderedChunks(); return pos; @@ -242,7 +240,7 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper AABB chunkBoundingBox = #if PRE_MC_1_18_2 chunk.chunk.bb; #else chunk.chunk.getBoundingBox(); #endif - return FACTORY.createChunkPos(Math.floorDiv((int) chunkBoundingBox.minX, 16), + return new DHChunkPos(Math.floorDiv((int) chunkBoundingBox.minX, 16), Math.floorDiv((int) chunkBoundingBox.minZ, 16)); }).collect(Collectors.toCollection(HashSet::new))); } catch (LinkageError e) { diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/world/WorldWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/world/WorldWrapper.java index e208494ed..6df000f7b 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/world/WorldWrapper.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/world/WorldWrapper.java @@ -23,8 +23,8 @@ import java.io.File; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import com.seibel.lod.core.objects.DHChunkPos; import com.seibel.lod.core.enums.WorldType; -import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; import com.seibel.lod.core.wrapperInterfaces.chunk.IChunkWrapper; import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; import com.seibel.lod.common.wrappers.chunk.ChunkWrapper; @@ -174,7 +174,7 @@ public class WorldWrapper implements IWorldWrapper } @Override - public IChunkWrapper tryGetChunk(AbstractChunkPosWrapper pos) { + public IChunkWrapper tryGetChunk(DHChunkPos pos) { ChunkAccess chunk = world.getChunk(pos.getX(), pos.getZ(), ChunkStatus.EMPTY, false); if (chunk == null) return null; return new ChunkWrapper(chunk, world); diff --git a/core b/core index 5ddf4f6dd..b4bad7181 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 5ddf4f6ddffc16ac436abe795dfe79115f3288b1 +Subproject commit b4bad7181321bfe4a7c1d7c67d7e11a1360e0adf diff --git a/fabric/src/main/java/com/seibel/lod/fabric/wrappers/modAccessor/OptifineAccessor.java b/fabric/src/main/java/com/seibel/lod/fabric/wrappers/modAccessor/OptifineAccessor.java index 855fd975d..35d8f5ca3 100644 --- a/fabric/src/main/java/com/seibel/lod/fabric/wrappers/modAccessor/OptifineAccessor.java +++ b/fabric/src/main/java/com/seibel/lod/fabric/wrappers/modAccessor/OptifineAccessor.java @@ -21,7 +21,7 @@ package com.seibel.lod.fabric.wrappers.modAccessor; import java.util.HashSet; -import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.objects.DHChunkPos; import com.seibel.lod.core.wrapperInterfaces.modAccessor.IOptifineAccessor; public class OptifineAccessor implements IOptifineAccessor @@ -34,7 +34,7 @@ public class OptifineAccessor implements IOptifineAccessor } @Override - public HashSet getNormalRenderedChunks() + public HashSet getNormalRenderedChunks() { // TODO: Impl proper methods here return null; diff --git a/fabric/src/main/java/com/seibel/lod/fabric/wrappers/modAccessor/SodiumAccessor.java b/fabric/src/main/java/com/seibel/lod/fabric/wrappers/modAccessor/SodiumAccessor.java index d97a9b0a0..417bf6c0a 100644 --- a/fabric/src/main/java/com/seibel/lod/fabric/wrappers/modAccessor/SodiumAccessor.java +++ b/fabric/src/main/java/com/seibel/lod/fabric/wrappers/modAccessor/SodiumAccessor.java @@ -22,9 +22,9 @@ package com.seibel.lod.fabric.wrappers.modAccessor; import java.util.HashSet; import java.util.stream.Collectors; +import com.seibel.lod.core.objects.DHChunkPos; import com.seibel.lod.core.handlers.dependencyInjection.SingletonHandler; import com.seibel.lod.core.wrapperInterfaces.IWrapperFactory; -import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper; import com.seibel.lod.core.wrapperInterfaces.modAccessor.ISodiumAccessor; @@ -53,7 +53,7 @@ public class SodiumAccessor implements ISodiumAccessor { #if POST_MC_1_17_1 @Override - public HashSet getNormalRenderedChunks() { + public HashSet getNormalRenderedChunks() { SodiumWorldRenderer renderer = SodiumWorldRenderer.instance(); LevelHeightAccessor height = Minecraft.getInstance().level; @@ -62,12 +62,10 @@ public class SodiumAccessor implements ISodiumAccessor { return renderer.getChunkTracker().getChunks(0b00).filter( (long l) -> { return true; - }).mapToObj((long l) -> { - return (AbstractChunkPosWrapper)factory.createChunkPos(l); - }).collect(Collectors.toCollection(HashSet::new)); + }).mapToObj(DHChunkPos::new).collect(Collectors.toCollection(HashSet::new)); #else // TODO: Maybe use a mixin to make this more efficient, and maybe ignore changes behind the camera - return MC_RENDER.getMaximumRenderedChunks().stream().filter((AbstractChunkPosWrapper chunk) -> { + return MC_RENDER.getMaximumRenderedChunks().stream().filter((DHChunkPos chunk) -> { return (renderer.isBoxVisible( chunk.getMinBlockX()+1, height.getMinBuildHeight()+1, chunk.getMinBlockZ()+1, chunk.getMinBlockX()+15, height.getMaxBuildHeight()-1, chunk.getMinBlockZ()+15)); @@ -76,11 +74,11 @@ public class SodiumAccessor implements ISodiumAccessor { } #else @Override - public HashSet getNormalRenderedChunks() { + public HashSet getNormalRenderedChunks() { SodiumWorldRenderer renderer = SodiumWorldRenderer.getInstance(); LevelAccessor height = Minecraft.getInstance().level; // TODO: Maybe use a mixin to make this more efficient - return MC_RENDER.getMaximumRenderedChunks().stream().filter((AbstractChunkPosWrapper chunk) -> { + return MC_RENDER.getMaximumRenderedChunks().stream().filter((DHChunkPos chunk) -> { FakeChunkEntity AABB = new FakeChunkEntity(chunk.getX(), chunk.getZ(), height.getMaxBuildHeight()); return (renderer.isEntityVisible(AABB)); }).collect(Collectors.toCollection(HashSet::new)); diff --git a/forge/src/main/java/com/seibel/lod/forge/wrappers/modAccessor/OptifineAccessor.java b/forge/src/main/java/com/seibel/lod/forge/wrappers/modAccessor/OptifineAccessor.java index cac515d5e..705cbf70a 100644 --- a/forge/src/main/java/com/seibel/lod/forge/wrappers/modAccessor/OptifineAccessor.java +++ b/forge/src/main/java/com/seibel/lod/forge/wrappers/modAccessor/OptifineAccessor.java @@ -21,7 +21,7 @@ package com.seibel.lod.forge.wrappers.modAccessor; import java.util.HashSet; -import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; +import com.seibel.lod.core.objects.DHChunkPos; import com.seibel.lod.core.wrapperInterfaces.modAccessor.IOptifineAccessor; public class OptifineAccessor implements IOptifineAccessor @@ -34,7 +34,7 @@ public class OptifineAccessor implements IOptifineAccessor } @Override - public HashSet getNormalRenderedChunks() + public HashSet getNormalRenderedChunks() { // TODO: Impl proper methods here return null; diff --git a/gradle.properties b/gradle.properties index 84a50ac43..3f93252e7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,4 +20,4 @@ manifold_version=2022.1.11 mcVersions=1.16.5,1.17.1,1.18.1,1.18.2 ##### FOR IDE SUPPORT AND TELL IDE TO USE CERTIAN MC VERSION: SWITCH THIS: -mcVer=1.18.2 \ No newline at end of file +mcVer=1.16.5 \ No newline at end of file