diff --git a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/transformers/FullDataToRenderDataTransformer.java b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/transformers/FullDataToRenderDataTransformer.java
index 3f0e29f52..c2b09d258 100644
--- a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/transformers/FullDataToRenderDataTransformer.java
+++ b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/transformers/FullDataToRenderDataTransformer.java
@@ -32,6 +32,7 @@ import com.seibel.distanthorizons.core.pos.DhBlockPos;
import com.seibel.distanthorizons.core.pos.DhSectionPos;
import com.seibel.distanthorizons.core.util.ColorUtil;
import com.seibel.distanthorizons.core.util.FullDataPointUtil;
+import com.seibel.distanthorizons.core.util.LodUtil;
import com.seibel.distanthorizons.core.util.RenderDataPointUtil;
import com.seibel.distanthorizons.core.wrapperInterfaces.IWrapperFactory;
import com.seibel.distanthorizons.core.wrapperInterfaces.block.IBlockStateWrapper;
@@ -236,7 +237,7 @@ public class FullDataToRenderDataTransformer
// solid block check
- if (avoidSolidBlocks && !block.isSolid() && !block.isLiquid() && block.getOpacity() != IBlockStateWrapper.FULLY_OPAQUE)
+ if (avoidSolidBlocks && !block.isSolid() && !block.isLiquid() && block.getOpacity() != LodUtil.BLOCK_FULLY_OPAQUE)
{
if (colorBelowWithAvoidedBlocks)
{
diff --git a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/transformers/LodDataBuilder.java b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/transformers/LodDataBuilder.java
index e2dc80925..1fbf49e02 100644
--- a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/transformers/LodDataBuilder.java
+++ b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/transformers/LodDataBuilder.java
@@ -297,7 +297,7 @@ public class LodDataBuilder
// this block isn't on a chunk boundary, check if it is next to a transparent/air block
IBlockStateWrapper blockState = chunkWrapper.getBlockState(testBlockPos);
- return blockState.isAir() || blockState.getOpacity() != IBlockStateWrapper.FULLY_OPAQUE;
+ return blockState.isAir() || blockState.getOpacity() != LodUtil.BLOCK_FULLY_OPAQUE;
}
diff --git a/core/src/main/java/com/seibel/distanthorizons/core/generation/DhLightingEngine.java b/core/src/main/java/com/seibel/distanthorizons/core/generation/DhLightingEngine.java
index 34f1cec9b..c160ef482 100644
--- a/core/src/main/java/com/seibel/distanthorizons/core/generation/DhLightingEngine.java
+++ b/core/src/main/java/com/seibel/distanthorizons/core/generation/DhLightingEngine.java
@@ -26,7 +26,6 @@ import com.seibel.distanthorizons.core.pos.DhChunkPos;
import com.seibel.distanthorizons.core.util.LodUtil;
import com.seibel.distanthorizons.core.wrapperInterfaces.block.IBlockStateWrapper;
import com.seibel.distanthorizons.core.wrapperInterfaces.chunk.IChunkWrapper;
-import com.seibel.distanthorizons.coreapi.util.BitShiftUtil;
import org.apache.logging.log4j.Logger;
import java.util.*;
@@ -152,7 +151,7 @@ public class DhLightingEngine
for (int y = maxY; y >= minY; y--)
{
IBlockStateWrapper block = chunk.getBlockState(relX, y, relZ);
- if (block != null && block.getOpacity() != IBlockStateWrapper.FULLY_TRANSPARENT)
+ if (block != null && block.getOpacity() != LodUtil.BLOCK_FULLY_TRANSPARENT)
{
// keep moving down until we find a non-transparent block
break;
diff --git a/core/src/main/java/com/seibel/distanthorizons/core/util/LodUtil.java b/core/src/main/java/com/seibel/distanthorizons/core/util/LodUtil.java
index 7b43cf6a8..08ec41d1e 100644
--- a/core/src/main/java/com/seibel/distanthorizons/core/util/LodUtil.java
+++ b/core/src/main/java/com/seibel/distanthorizons/core/util/LodUtil.java
@@ -19,7 +19,9 @@
package com.seibel.distanthorizons.core.util;
+import java.util.Arrays;
import java.util.Iterator;
+import java.util.List;
import java.util.concurrent.CancellationException;
import java.util.concurrent.CompletionException;
import java.util.concurrent.RejectedExecutionException;
@@ -33,6 +35,7 @@ import com.seibel.distanthorizons.core.render.vertexFormat.DefaultLodVertexForma
import com.seibel.distanthorizons.core.render.vertexFormat.LodVertexFormat;
import com.seibel.distanthorizons.core.util.gridList.EdgeDistanceBooleanGrid;
import com.seibel.distanthorizons.core.util.objects.UncheckedInterruptedException;
+import com.seibel.distanthorizons.core.wrapperInterfaces.block.IBlockStateWrapper;
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper;
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper;
import com.seibel.distanthorizons.core.wrapperInterfaces.world.IDimensionTypeWrapper;
@@ -66,9 +69,6 @@ public class LodUtil
- /** The maximum number of LODs that can be rendered vertically */
- public static final int MAX_NUMBER_OF_VERTICAL_LODS = 32;
-
/**
* alpha used when drawing chunks in debug mode
*/
@@ -123,6 +123,23 @@ public class LodUtil
/** lowest possible light level handled by Minecraft */
public static final byte MIN_MC_LIGHT = 0;
+ /** the opacity value returned by {@link IBlockStateWrapper#getOpacity()} if a block is fully transparent */
+ public static final int BLOCK_FULLY_TRANSPARENT = 0;
+ /** the opacity value returned by {@link IBlockStateWrapper#getOpacity()} if a block is fully opaque */
+ public static final int BLOCK_FULLY_OPAQUE = 16;
+
+ /**
+ * List of every block that can be used in a beacon's base.
+ * Should be all lowercase
+ */
+ public static final List BEACON_BASE_BLOCK_NAME_LIST = Arrays.asList(
+ "iron_block",
+ "gold_block",
+ "diamond_block",
+ "emerald_block",
+ "netherite_block"
+ );
+
/**
diff --git a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/block/IBlockStateWrapper.java b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/block/IBlockStateWrapper.java
index 8ddef3213..d2a442008 100644
--- a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/block/IBlockStateWrapper.java
+++ b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/block/IBlockStateWrapper.java
@@ -20,10 +20,9 @@
package com.seibel.distanthorizons.core.wrapperInterfaces.block;
import com.seibel.distanthorizons.api.interfaces.block.IDhApiBlockStateWrapper;
+import com.seibel.distanthorizons.core.util.LodUtil;
import java.awt.*;
-import java.util.Arrays;
-import java.util.List;
/** A Minecraft version independent way of handling Blocks. */
public interface IBlockStateWrapper extends IDhApiBlockStateWrapper
@@ -32,18 +31,6 @@ public interface IBlockStateWrapper extends IDhApiBlockStateWrapper
// constants //
//===========//
- int FULLY_TRANSPARENT = 0;
- int FULLY_OPAQUE = 16;
-
- /** should be all lowercase */
- List BEACON_BASE_BLOCK_NAME_LIST = Arrays.asList(
- "iron_block",
- "gold_block",
- "diamond_block",
- "emerald_block",
- "netherite_block"
- );
-
/** contains the indices used by Iris to determine how different block types should be rendered */
class IrisBlockMaterial
{
@@ -81,8 +68,8 @@ public interface IBlockStateWrapper extends IDhApiBlockStateWrapper
* Returning a value of 0 means the block is completely transparent. = IBlockStateWrapper.FULLY_OPAQUE)
+ if (opacity >= LodUtil.BLOCK_FULLY_OPAQUE)
{
opacity = 3;
}