From 443da5eede5063d181b781df6cf1d109048fcea3 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Thu, 7 Oct 2021 17:37:02 +0200 Subject: [PATCH] other config change, set roofed dimension max distance to 64 --- src/main/java/com/seibel/lod/enums/VerticalQuality.java | 2 +- src/main/java/com/seibel/lod/proxy/ClientProxy.java | 7 ++++++- src/main/java/com/seibel/lod/render/LodRenderer.java | 7 +++++-- src/main/java/com/seibel/lod/util/DetailDistanceUtil.java | 4 ++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/seibel/lod/enums/VerticalQuality.java b/src/main/java/com/seibel/lod/enums/VerticalQuality.java index 500bcf3be..a709854c4 100644 --- a/src/main/java/com/seibel/lod/enums/VerticalQuality.java +++ b/src/main/java/com/seibel/lod/enums/VerticalQuality.java @@ -22,7 +22,7 @@ package com.seibel.lod.enums; * multi_lod
* * @author Leonardo Amato - * @version 9-27-2021 + * @version 10-07-2021 */ public enum VerticalQuality { diff --git a/src/main/java/com/seibel/lod/proxy/ClientProxy.java b/src/main/java/com/seibel/lod/proxy/ClientProxy.java index aa410e3ef..19627cc8d 100644 --- a/src/main/java/com/seibel/lod/proxy/ClientProxy.java +++ b/src/main/java/com/seibel/lod/proxy/ClientProxy.java @@ -333,7 +333,12 @@ public class ClientProxy private void viewDistanceChangedEvent() { // calculate how wide the dimension(s) should be in regions - int chunksWide = LodConfig.CLIENT.graphics.lodChunkRenderDistance.get() * 2 + 1; + int chunksWide; + if(mc.getClientWorld().dimensionType().hasCeiling()) + chunksWide = Math.max(LodConfig.CLIENT.graphics.lodChunkRenderDistance.get(),64) * 2 + 1; + else + chunksWide = LodConfig.CLIENT.graphics.lodChunkRenderDistance.get() * 2 + 1; + int newWidth = (int) Math.ceil(chunksWide / (float) LodUtil.REGION_WIDTH_IN_CHUNKS); newWidth = (newWidth % 2 == 0) ? (newWidth += 1) : (newWidth += 2); // make sure we have a odd number of regions diff --git a/src/main/java/com/seibel/lod/render/LodRenderer.java b/src/main/java/com/seibel/lod/render/LodRenderer.java index 856a8bb7e..269661782 100644 --- a/src/main/java/com/seibel/lod/render/LodRenderer.java +++ b/src/main/java/com/seibel/lod/render/LodRenderer.java @@ -241,8 +241,11 @@ public class LodRenderer Matrix4f modelViewMatrix = offsetTheModelViewMatrix(mcMatrixStack, partialTicks); // required for setupFog and setupProjectionMatrix - farPlaneBlockDistance = LodConfig.CLIENT.graphics.lodChunkRenderDistance.get() * LodUtil.CHUNK_WIDTH; - + if(lodDim.dimension.hasCeiling()) + farPlaneBlockDistance = Math.max(LodConfig.CLIENT.graphics.lodChunkRenderDistance.get(), 64)* LodUtil.CHUNK_WIDTH; + else + farPlaneBlockDistance = LodConfig.CLIENT.graphics.lodChunkRenderDistance.get() * LodUtil.CHUNK_WIDTH; + setupProjectionMatrix(mcProjectionMatrix, partialTicks); // commented out until we can add shaders to handle lighting //setupLighting(lodDim, partialTicks); diff --git a/src/main/java/com/seibel/lod/util/DetailDistanceUtil.java b/src/main/java/com/seibel/lod/util/DetailDistanceUtil.java index ff8b66a66..f1b51f01d 100644 --- a/src/main/java/com/seibel/lod/util/DetailDistanceUtil.java +++ b/src/main/java/com/seibel/lod/util/DetailDistanceUtil.java @@ -13,7 +13,7 @@ public class DetailDistanceUtil private static int minDrawDetail = Math.max(LodConfig.CLIENT.graphics.drawResolution.get().detailLevel,LodConfig.CLIENT.worldGenerator.generationResolution.get().detailLevel); private static int maxDetail = LodUtil.REGION_DETAIL_LEVEL + 1; private static int minDistance = 0; - private static int maxDistance = LodConfig.CLIENT.graphics.lodChunkRenderDistance.get() * 16 * 2; + private static int maxDistance = Integer.MAX_VALUE; private static HorizontalResolution[] lodGenDetails = { @@ -34,7 +34,7 @@ public class DetailDistanceUtil public static void updateSettings(){ minGenDetail = LodConfig.CLIENT.worldGenerator.generationResolution.get().detailLevel; minDrawDetail = Math.max(LodConfig.CLIENT.graphics.drawResolution.get().detailLevel,LodConfig.CLIENT.worldGenerator.generationResolution.get().detailLevel); - maxDistance = LodConfig.CLIENT.graphics.lodChunkRenderDistance.get() * 16 * 8; + //maxDistance = LodConfig.CLIENT.graphics.lodChunkRenderDistance.get() * 16 * 8; } public static int baseDistanceFunction(int detail)