small changes
This commit is contained in:
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user