small changes

This commit is contained in:
Leonardo
2021-09-19 21:32:13 +02:00
parent ebe2c22a28
commit 7b807bcea2
2 changed files with 22 additions and 18 deletions
@@ -225,14 +225,18 @@ public class LodBufferBuilder
if (LodConfig.CLIENT.worldGenerator.lodQualityMode.get() == LodQualityMode.HEIGHTMAP)
{
maxVerticalData = 1;
}else{
} else
{
maxVerticalData = DetailDistanceUtil.getMaxVerticalData(0);
}
adjData.put(Direction.WEST, new long[maxVerticalData]);
adjData.put(Direction.EAST, new long[maxVerticalData]);
adjData.put(Direction.SOUTH, new long[maxVerticalData]);
adjData.put(Direction.NORTH, new long[maxVerticalData]);
for (Direction direction : Box.ADJ_DIRECTIONS)
{
if (adjData.containsKey(direction) && LodConfig.CLIENT.worldGenerator.lodQualityMode.get() == LodQualityMode.MULTI_LOD)
{
adjData.put(direction, new long[DetailDistanceUtil.getMaxVerticalData(0)]);
}
}
//previous setToRender chache
if (setsToRender[xR][zR] == null)
{
@@ -285,7 +289,6 @@ public class LodBufferBuilder
{
for (Direction direction : Box.ADJ_DIRECTIONS)
{
xAdj = posX + direction.getNormal().getX();
zAdj = posZ + direction.getNormal().getZ();
chunkXdist = LevelPosUtil.getChunkPos(detailLevel, xAdj) - playerChunkPos.x;
@@ -300,8 +303,8 @@ public class LodBufferBuilder
adjData.get(direction)[0] = lodDim.getSingleData(detailLevel, xAdj, zAdj);
} else
{
for(int verticalIndex = 0; verticalIndex < lodDim.getMaxVerticalData(detailLevel, xAdj, zAdj); verticalIndex++)
adjData.get(direction)[verticalIndex] = lodDim.getData(detailLevel, xAdj, zAdj,verticalIndex);
for (int verticalIndex = 0; verticalIndex < lodDim.getMaxVerticalData(detailLevel, xAdj, zAdj); verticalIndex++)
adjData.get(direction)[verticalIndex] = lodDim.getData(detailLevel, xAdj, zAdj, verticalIndex);
}
} else
@@ -323,8 +326,8 @@ public class LodBufferBuilder
adjData.get(direction)[0] = lodDim.getSingleData(detailLevel, xAdj, zAdj);
} else
{
for(int verticalIndex = 0; verticalIndex < lodDim.getMaxVerticalData(detailLevel, xAdj, zAdj); verticalIndex++)
adjData.get(direction)[verticalIndex] = lodDim.getData(detailLevel, xAdj, zAdj,verticalIndex);
for (int verticalIndex = 0; verticalIndex < lodDim.getMaxVerticalData(detailLevel, xAdj, zAdj); verticalIndex++)
adjData.get(direction)[verticalIndex] = lodDim.getData(detailLevel, xAdj, zAdj, verticalIndex);
}
} else
{
@@ -351,13 +354,14 @@ public class LodBufferBuilder
} else if (region.getLodQualityMode() == LodQualityMode.MULTI_LOD)
{
int verticalIndex = 0;
long data = lodDim.getData(detailLevel, posX, posZ, verticalIndex);
while(!(DataPointUtil.isItVoid(data) || DataPointUtil.doesItExist(data)))
long data;
for (int verticalIndex = 0; verticalIndex < lodDim.getMaxVerticalData(detailLevel, posX, posZ); verticalIndex++)
{
data = lodDim.getData(detailLevel, posX, posZ, verticalIndex);
if (DataPointUtil.isItVoid(data) || DataPointUtil.doesItExist(data))
break;
LodConfig.CLIENT.graphics.lodTemplate.get().template.addLodToBuffer(currentBuffer, playerBlockPosRounded, data, adjData,
detailLevel, posX, posZ, boxCache[xR][zR], renderer.previousDebugMode, renderer.lightMap);
verticalIndex++;
}
}
@@ -105,8 +105,8 @@ public class VerticalLevelContainer implements LevelContainer
public void updateData(LevelContainer lowerLevelContainer, int posX, int posZ)
{
//We reset the array
//long[] dataToMerge = ThreadMapUtil.getVerticalUpdateArray();
long[] dataToMerge = new long[4*maxVerticalData];
//long[] dataToMerge = ThreadMapUtil.getVerticalUpdateArray(maxVerticalData);
long[] dataToMerge = new long[4*lowerLevelContainer.getMaxVerticalData()];
int childPosX;
int childPosZ;
@@ -119,8 +119,8 @@ public class VerticalLevelContainer implements LevelContainer
{
childPosX = 2 * posX + x;
childPosZ = 2 * posZ + z;
for(int y = 0; y < maxVerticalData; y++)
dataToMerge[(z*2+x)*maxVerticalData + y] = lowerLevelContainer.getData(childPosX, childPosZ, y);
for(int verticalIndex = 0; verticalIndex < maxVerticalData; verticalIndex++)
dataToMerge[(z*2+x)*maxVerticalData + verticalIndex] = lowerLevelContainer.getData(childPosX, childPosZ, verticalIndex);
}
}
data = DataPointUtil.mergeMultiData(dataToMerge, lowerLevelContainer.getDetailLevel());