Updated core

This commit is contained in:
coolGi2007
2021-12-13 12:27:28 +00:00
parent 30d4bcd6a1
commit 8dcf30e776
3 changed files with 38 additions and 20 deletions
@@ -20,6 +20,7 @@ import net.minecraft.world.level.block.SimpleWaterloggedBlock;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.chunk.ChunkAccess;
import net.minecraft.world.level.chunk.LevelChunkSection;
import net.minecraft.world.level.levelgen.Heightmap;
/**
@@ -78,7 +79,9 @@ public class ChunkWrapper implements IChunkWrapper
@Override
public IBlockShapeWrapper getBlockShapeWrapper(int x, int y, int z)
{
Block block = chunk.getSections()[y >> CHUNK_SECTION_SHIFT].getBlockState(x & CHUNK_SIZE_MASK, y & CHUNK_SECTION_MASK, z & CHUNK_SIZE_MASK).getBlock();
LevelChunkSection section = chunk.getSections()[y >> CHUNK_SECTION_SHIFT];
if (section == null) return null;
Block block = section.getBlockState(x & CHUNK_SIZE_MASK, y & CHUNK_SECTION_MASK, z & CHUNK_SIZE_MASK).getBlock();
return BlockShapeWrapper.getBlockShapeWrapper(block, this, x, y, z);
}
@@ -140,9 +143,11 @@ public class ChunkWrapper implements IChunkWrapper
public boolean isWaterLogged(int x, int y, int z)
{
BlockState blockState = chunk.getSections()[y >> CHUNK_SECTION_SHIFT].getBlockState(x & CHUNK_SIZE_MASK, y & CHUNK_SECTION_MASK, z & CHUNK_SIZE_MASK);
LevelChunkSection section = chunk.getSections()[y >> CHUNK_SECTION_SHIFT];
if (section == null) return false;
BlockState blockState = section.getBlockState(x & CHUNK_SIZE_MASK, y & CHUNK_SECTION_MASK, z & CHUNK_SIZE_MASK);
// //This type of block is always in water
//This type of block is always in water
return (!(blockState.getBlock() instanceof LiquidBlockContainer) && (blockState.getBlock() instanceof SimpleWaterloggedBlock))
&& (blockState.hasProperty(BlockStateProperties.WATERLOGGED) && blockState.getValue(BlockStateProperties.WATERLOGGED));
}
@@ -5,6 +5,8 @@ import java.util.HashSet;
import com.mojang.blaze3d.platform.NativeImage;
import com.seibel.lod.common.wrappers.misc.LightMapWrapper;
import com.seibel.lod.core.handlers.IReflectionHandler;
import com.seibel.lod.core.handlers.ReflectionHandler;
import com.seibel.lod.core.util.LodUtil;
import net.minecraft.client.renderer.LightTexture;
import org.lwjgl.opengl.GL20;
@@ -35,12 +37,13 @@ import net.minecraft.world.phys.Vec3;
* related to rendering in Minecraft.
*
* @author James Seibel
* @version 12-05-2021
* @version 12-12-2021
*/
public class MinecraftRenderWrapper implements IMinecraftRenderWrapper
{
public static final MinecraftRenderWrapper INSTANCE = new MinecraftRenderWrapper();
public static final MinecraftWrapper MC_WRAPPER = MinecraftWrapper.INSTANCE;
private static final MinecraftWrapper MC_WRAPPER = MinecraftWrapper.INSTANCE;
private static final Minecraft MC = Minecraft.getInstance();
private static final GameRenderer GAME_RENDERER = MC.gameRenderer;
@@ -143,23 +146,33 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper
{
HashSet<AbstractChunkPosWrapper> loadedPos = new HashSet<>();
// Wow, those are some long names!
// TODO James needs to allow for circular references in the SingletonHandler
IReflectionHandler reflectionHandler = ReflectionHandler.instance;
// go through every RenderInfo to get the compiled chunks
LevelRenderer renderer = MC.levelRenderer;
/*
for (RenderChunkInfo worldRenderer$LocalRenderInformationContainer : renderer.renderChunks)
if (reflectionHandler.sodiumPresent())
{
CompiledChunk compiledChunk = worldRenderer$LocalRenderInformationContainer.chunk.getCompiledChunk();
if (!compiledChunk.hasNoRenderableLayers())
{
// add the ChunkPos for every rendered chunk
BlockPos bpos = worldRenderer$LocalRenderInformationContainer.chunk.getOrigin();
loadedPos.add(new ChunkPosWrapper(bpos));
}
loadedPos = reflectionHandler.getSodiumRenderedChunks();
}
else
{
// Wow, those are some long names!
// go through every RenderInfo to get the compiled chunks
/*
LevelRenderer renderer = MC.levelRenderer;
for (LevelRenderer.RenderChunkInfo worldRenderer$LocalRenderInformationContainer : renderer.renderChunks)
{
CompiledChunk compiledChunk = worldRenderer$LocalRenderInformationContainer.chunk.getCompiledChunk();
if (!compiledChunk.hasNoRenderableLayers())
{
// add the ChunkPos for every rendered chunk
BlockPos bpos = worldRenderer$LocalRenderInformationContainer.chunk.getOrigin();
loadedPos.add(new ChunkPosWrapper(bpos));
}
}
*/
}
*/
return loadedPos;
}
+1 -1
Submodule core updated: 9e882951ef...c811e6bad6