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 eef7db4d7..208075d64 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 @@ -179,6 +179,8 @@ public class LodBuilder if (MC.getWrappedClientWorld() == null) return false; + if (!chunk.isLightCorrect()) return false; + // determine how many LODs to generate vertically //VerticalQuality verticalQuality = LodConfig.CLIENT.graphics.qualityOption.verticalQuality.get(); region.isWriting++; @@ -209,6 +211,7 @@ public class LodBuilder } finally { region.isWriting--; } + return true; //executeTime = System.currentTimeMillis() - executeTime; //if (executeTime > 0) ClientApi.LOGGER.info("generateLodNodeFromChunk level: " + detailLevel + " time ms: " + executeTime); diff --git a/src/main/java/com/seibel/lod/core/handlers/IReflectionHandler.java b/src/main/java/com/seibel/lod/core/handlers/IReflectionHandler.java index 6caae1548..091ae0d00 100644 --- a/src/main/java/com/seibel/lod/core/handlers/IReflectionHandler.java +++ b/src/main/java/com/seibel/lod/core/handlers/IReflectionHandler.java @@ -46,4 +46,6 @@ public interface IReflectionHandler /** @returns if Sodium (or a sodium like) mod is present. Attempts to find the "SodiumWorldRenderer" class. */ boolean sodiumPresent(); + + boolean optifinePresent(); } 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 c0c67921e..774ad6811 100644 --- a/src/main/java/com/seibel/lod/core/handlers/ReflectionHandler.java +++ b/src/main/java/com/seibel/lod/core/handlers/ReflectionHandler.java @@ -46,6 +46,7 @@ public class ReflectionHandler implements IReflectionHandler private final Object mcOptionsObject; private Boolean sodiumPresent = null; + private boolean optifinePresent = false; @@ -87,6 +88,7 @@ public class ReflectionHandler implements IReflectionHandler { if (field.getName().equals("ofFogType")) { + optifinePresent = true; ofFogField = field; return; } @@ -158,7 +160,11 @@ public class ReflectionHandler implements IReflectionHandler } return false; } - + @Override + public boolean optifinePresent() + { + return optifinePresent; + } diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/modAccessor/IOptifineAccessor.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/modAccessor/IOptifineAccessor.java new file mode 100644 index 000000000..baf465347 --- /dev/null +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/modAccessor/IOptifineAccessor.java @@ -0,0 +1,12 @@ +package com.seibel.lod.core.wrapperInterfaces.modAccessor; + +import java.util.HashSet; +import java.util.Optional; + +import com.seibel.lod.core.wrapperInterfaces.chunk.AbstractChunkPosWrapper; + +public interface IOptifineAccessor extends IModAccessor +{ + // Can be null + HashSet getNormalRenderedChunks(); +}