diff --git a/src/main/java/com/seibel/lod/builders/bufferBuilding/LodBufferBuilder.java b/src/main/java/com/seibel/lod/builders/bufferBuilding/LodBufferBuilder.java index 181303b91..0f669ff81 100644 --- a/src/main/java/com/seibel/lod/builders/bufferBuilding/LodBufferBuilder.java +++ b/src/main/java/com/seibel/lod/builders/bufferBuilding/LodBufferBuilder.java @@ -93,6 +93,7 @@ public class LodBufferBuilder */ public static final int DEFAULT_MEMORY_ALLOCATION = 1024; + // TODO this should be moved to LodUtil public static int skyLightPlayer = 15; /** diff --git a/src/main/java/com/seibel/lod/builders/bufferBuilding/lodTemplates/Box.java b/src/main/java/com/seibel/lod/builders/bufferBuilding/lodTemplates/Box.java index ecf81fe08..05ed0fa64 100644 --- a/src/main/java/com/seibel/lod/builders/bufferBuilding/lodTemplates/Box.java +++ b/src/main/java/com/seibel/lod/builders/bufferBuilding/lodTemplates/Box.java @@ -29,8 +29,8 @@ import com.seibel.lod.util.ColorUtil; import com.seibel.lod.util.DataPointUtil; import com.seibel.lod.util.LodUtil; import com.seibel.lod.wrappers.MinecraftWrapper; +import com.seibel.lod.wrappers.Block.BlockPosWrapper; -import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Vec3i; @@ -279,7 +279,7 @@ public class Box } /** determine which faces should be culled */ - public void setUpCulling(int cullingDistance, BlockPos playerPos) + public void setUpCulling(int cullingDistance, BlockPosWrapper playerPos) { for (Direction direction : DIRECTIONS) { diff --git a/src/main/java/com/seibel/lod/builders/bufferBuilding/lodTemplates/CubicLodTemplate.java b/src/main/java/com/seibel/lod/builders/bufferBuilding/lodTemplates/CubicLodTemplate.java index 677dc7c7d..6c18b608a 100644 --- a/src/main/java/com/seibel/lod/builders/bufferBuilding/lodTemplates/CubicLodTemplate.java +++ b/src/main/java/com/seibel/lod/builders/bufferBuilding/lodTemplates/CubicLodTemplate.java @@ -21,14 +21,14 @@ package com.seibel.lod.builders.bufferBuilding.lodTemplates; import java.util.Map; +import com.mojang.blaze3d.vertex.BufferBuilder; import com.seibel.lod.enums.DebugMode; import com.seibel.lod.util.ColorUtil; import com.seibel.lod.util.DataPointUtil; import com.seibel.lod.util.LodUtil; +import com.seibel.lod.wrappers.Block.BlockPosWrapper; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.Direction; /** * Builds LODs as rectangular prisms. @@ -44,7 +44,7 @@ public class CubicLodTemplate extends AbstractLodTemplate } @Override - public void addLodToBuffer(BufferBuilder buffer, BlockPos bufferCenterBlockPos, long data, Map adjData, + public void addLodToBuffer(BufferBuilder buffer, BlockPosWrapper bufferCenterBlockPos, long data, Map adjData, byte detailLevel, int posX, int posZ, Box box, DebugMode debugging, boolean[] adjShadeDisabled) { if (box == null) @@ -79,7 +79,7 @@ public class CubicLodTemplate extends AbstractLodTemplate private void generateBoundingBox(Box box, int height, int depth, int width, double xOffset, double yOffset, double zOffset, - BlockPos bufferCenterBlockPos, + BlockPosWrapper bufferCenterBlockPos, Map adjData, int color, int skyLight, diff --git a/src/main/java/com/seibel/lod/builders/bufferBuilding/lodTemplates/DynamicLodTemplate.java b/src/main/java/com/seibel/lod/builders/bufferBuilding/lodTemplates/DynamicLodTemplate.java index dd88744ab..b1c8a7193 100644 --- a/src/main/java/com/seibel/lod/builders/bufferBuilding/lodTemplates/DynamicLodTemplate.java +++ b/src/main/java/com/seibel/lod/builders/bufferBuilding/lodTemplates/DynamicLodTemplate.java @@ -21,12 +21,12 @@ package com.seibel.lod.builders.bufferBuilding.lodTemplates; import java.util.Map; +import com.mojang.blaze3d.vertex.BufferBuilder; import com.seibel.lod.enums.DebugMode; import com.seibel.lod.proxy.ClientProxy; +import com.seibel.lod.wrappers.Block.BlockPosWrapper; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.Direction; /** * TODO DynamicLodTemplate @@ -39,7 +39,7 @@ import net.minecraft.util.math.BlockPos; public class DynamicLodTemplate extends AbstractLodTemplate { @Override - public void addLodToBuffer(BufferBuilder buffer, BlockPos bufferCenterBlockPos, long data, Map adjData, + public void addLodToBuffer(BufferBuilder buffer, BlockPosWrapper bufferCenterBlockPos, long data, Map adjData, byte detailLevel, int posX, int posZ, Box box, DebugMode debugging, boolean[] adjShadeDisabled) { ClientProxy.LOGGER.error(DynamicLodTemplate.class.getSimpleName() + " is not implemented!"); diff --git a/src/main/java/com/seibel/lod/builders/bufferBuilding/lodTemplates/TriangularLodTemplate.java b/src/main/java/com/seibel/lod/builders/bufferBuilding/lodTemplates/TriangularLodTemplate.java index 765399455..f5340a1dd 100644 --- a/src/main/java/com/seibel/lod/builders/bufferBuilding/lodTemplates/TriangularLodTemplate.java +++ b/src/main/java/com/seibel/lod/builders/bufferBuilding/lodTemplates/TriangularLodTemplate.java @@ -21,12 +21,12 @@ package com.seibel.lod.builders.bufferBuilding.lodTemplates; import java.util.Map; +import com.mojang.blaze3d.vertex.BufferBuilder; import com.seibel.lod.enums.DebugMode; import com.seibel.lod.proxy.ClientProxy; +import com.seibel.lod.wrappers.Block.BlockPosWrapper; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.Direction; /** * TODO #21 TriangularLodTemplate @@ -37,7 +37,7 @@ import net.minecraft.util.math.BlockPos; public class TriangularLodTemplate extends AbstractLodTemplate { @Override - public void addLodToBuffer(BufferBuilder buffer, BlockPos bufferCenterBlockPos, long data, Map adjData, + public void addLodToBuffer(BufferBuilder buffer, BlockPosWrapper bufferCenterBlockPos, long data, Map adjData, byte detailLevel, int posX, int posZ, Box box, DebugMode debugging, boolean[] adjShadeDisabled) { ClientProxy.LOGGER.error(DynamicLodTemplate.class.getSimpleName() + " is not implemented!"); diff --git a/src/main/java/com/seibel/lod/util/DataPointUtil.java b/src/main/java/com/seibel/lod/util/DataPointUtil.java index f94a9e7e7..112ba9a50 100644 --- a/src/main/java/com/seibel/lod/util/DataPointUtil.java +++ b/src/main/java/com/seibel/lod/util/DataPointUtil.java @@ -21,10 +21,9 @@ package com.seibel.lod.util; import static com.seibel.lod.builders.bufferBuilding.LodBufferBuilder.skyLightPlayer; +import com.mojang.blaze3d.platform.NativeImage; import com.seibel.lod.enums.DistanceGenerationMode; -import net.minecraft.client.renderer.texture.NativeImage; - /** * * @author Leonardo Amato diff --git a/src/main/java/com/seibel/lod/wrappers/Block/BlockPosWrapper.java b/src/main/java/com/seibel/lod/wrappers/Block/BlockPosWrapper.java index ca1c43c60..e75da7ad4 100644 --- a/src/main/java/com/seibel/lod/wrappers/Block/BlockPosWrapper.java +++ b/src/main/java/com/seibel/lod/wrappers/Block/BlockPosWrapper.java @@ -3,6 +3,7 @@ package com.seibel.lod.wrappers.Block; import java.util.Objects; import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; //This class wraps the minecraft BlockPos.Mutable (and BlockPos) class @@ -43,6 +44,13 @@ public class BlockPosWrapper return blockPos.getZ(); } + + public int get(Direction.Axis axis) + { + return axis.choose(getX(), getY(), getZ()); + } + + public BlockPos.MutableBlockPos getBlockPos() { return blockPos; diff --git a/src/main/java/com/seibel/lod/wrappers/Block/BlockShapeWrapper.java b/src/main/java/com/seibel/lod/wrappers/Block/BlockShapeWrapper.java index ac2db3ab5..55db41be1 100644 --- a/src/main/java/com/seibel/lod/wrappers/Block/BlockShapeWrapper.java +++ b/src/main/java/com/seibel/lod/wrappers/Block/BlockShapeWrapper.java @@ -71,7 +71,7 @@ public class BlockShapeWrapper BlockPos blockPos = blockPosWrapper.getBlockPos(); boolean noCollisionSetted = false; boolean nonFullSetted = false; - if (!block.defaultBlockState().getFluidState().isEmpty() || block instanceof SixWayBlock) + if (!block.defaultBlockState().getFluidState().isEmpty())// || block instanceof SixWayBlock) { noCollisionSetted = true; nonFullSetted = true; 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 00879a0d2..679a1a56e 100644 --- a/src/main/java/com/seibel/lod/wrappers/Chunk/ChunkWrapper.java +++ b/src/main/java/com/seibel/lod/wrappers/Chunk/ChunkWrapper.java @@ -26,7 +26,7 @@ public class ChunkWrapper BlockState blockState = chunk.getBlockState(blockPos.getBlockPos()); //This type of block is always in water - if((blockState.getBlock() instanceof LiquidBlock) && !(blockState.getBlock() instanceof IWaterLoggable)) + if((blockState.getBlock() instanceof LiquidBlock))// && !(blockState.getBlock() instanceof IWaterLoggable)) return true; //This type of block could be in water @@ -77,9 +77,9 @@ public class ChunkWrapper { BlockState blockState = chunk.getBlockState(blockPos.getBlockPos()); - //This type of block is always in water - if((blockState.getBlock() instanceof ILiquidContainer) && !(blockState.getBlock() instanceof IWaterLoggable)) - return true; +// //This type of block is always in water +// if((blockState.getBlock() instanceof ILiquidContainer) && !(blockState.getBlock() instanceof IWaterLoggable)) +// return true; //This type of block could be in water if(blockState.getOptionalValue(BlockStateProperties.WATERLOGGED).isPresent() && blockState.getOptionalValue(BlockStateProperties.WATERLOGGED).get()) diff --git a/src/main/java/com/seibel/lod/wrappers/LigthMapWrapper.java b/src/main/java/com/seibel/lod/wrappers/LightMapWrapper.java similarity index 55% rename from src/main/java/com/seibel/lod/wrappers/LigthMapWrapper.java rename to src/main/java/com/seibel/lod/wrappers/LightMapWrapper.java index 4647e3752..a66590c9d 100644 --- a/src/main/java/com/seibel/lod/wrappers/LigthMapWrapper.java +++ b/src/main/java/com/seibel/lod/wrappers/LightMapWrapper.java @@ -1,15 +1,14 @@ package com.seibel.lod.wrappers; -import net.minecraft.client.renderer.texture.NativeImage; +import com.mojang.blaze3d.platform.NativeImage; - -public class LigthMapWrapper +public class LightMapWrapper { static NativeImage lightMap = null; - public static void setLightMap(NativeImage lightMap) + public static void setLightMap(NativeImage newLightMap) { - lightMap = lightMap; + lightMap = newLightMap; } public static int getLightValue(int skyLight, int blockLight) diff --git a/src/main/java/com/seibel/lod/wrappers/World/BiomeColorWrapper.java b/src/main/java/com/seibel/lod/wrappers/World/BiomeColorWrapper.java index 9ec7b0072..de7f32155 100644 --- a/src/main/java/com/seibel/lod/wrappers/World/BiomeColorWrapper.java +++ b/src/main/java/com/seibel/lod/wrappers/World/BiomeColorWrapper.java @@ -1,16 +1,8 @@ package com.seibel.lod.wrappers.World; -import com.seibel.lod.util.LodUtil; import com.seibel.lod.wrappers.Block.BlockPosWrapper; -import net.minecraft.block.Blocks; -import net.minecraft.block.material.MaterialColor; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.biome.BiomeColors; -import java.awt.*; -import java.util.Objects; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; +import net.minecraft.client.renderer.BiomeColors; public class BiomeColorWrapper diff --git a/src/main/java/com/seibel/lod/wrappers/World/BiomeWrapper.java b/src/main/java/com/seibel/lod/wrappers/World/BiomeWrapper.java index b465f9361..d7f626043 100644 --- a/src/main/java/com/seibel/lod/wrappers/World/BiomeWrapper.java +++ b/src/main/java/com/seibel/lod/wrappers/World/BiomeWrapper.java @@ -1,5 +1,7 @@ package com.seibel.lod.wrappers.World; +import java.awt.Color; +import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; @@ -8,7 +10,6 @@ import com.seibel.lod.util.LodUtil; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.MaterialColor; -import net.minecraftforge.client.event.RenderTooltipEvent.Color; //This class wraps the minecraft BlockPos.Mutable (and BlockPos) class public class BiomeWrapper