small fix to the generation

This commit is contained in:
Leonardo
2021-08-31 11:47:18 +02:00
parent 2c2c6d6785
commit 1428e72d46
2 changed files with 11 additions and 4 deletions
@@ -166,14 +166,20 @@ public class LodWorldGenerator
System.out.println(levelPos);
nodeToGenerate.remove(levelPos);
nodeToGenerateListNear.remove(levelPos);
nodeToGenerateListFar.remove(levelPos);
maxDistance = levelPos.maxDistance( playerBlockPosRounded.getX(), playerBlockPosRounded.getZ());
maxDistance = levelPos.maxDistance(
playerBlockPosRounded.getX(),
playerBlockPosRounded.getZ());
circle = DetailDistanceUtil.getDistanceGenerationInverse(maxDistance);
generationRequestList.add(new GenerationRequest(levelPos, DetailDistanceUtil.getDistanceGenerationMode(circle), DetailDistanceUtil.getLodDetail(circle)));
requesting--;
if (requestingFar > 0 && !nodeToGenerateListFar.isEmpty())
{
levelPos = nodeToGenerateListFar.first();
nodeToGenerate.remove(levelPos);
nodeToGenerateListNear.remove(levelPos);
nodeToGenerateListFar.remove(levelPos);
if (levelPos.detailLevel >= farDetail)
{
maxDistance = levelPos.maxDistance( playerBlockPosRounded.getX(), playerBlockPosRounded.getZ());
@@ -229,7 +229,7 @@ public class LodRegion implements Serializable
if (!doesDataExist(levelPos))
{
num++;
levelPos.changeParameters(levelPos.detailLevel, levelPos.posX + regionPosX * childSize, levelPos.posZ + regionPosZ * childSize);
levelPos.changeParameters((byte) (detailLevel - 1), childPosX + x + regionPosX * childSize, childPosZ + z + regionPosZ * childSize);
if(dataToGenerate.containsKey(levelPos)){
dataToGenerate.get(levelPos).setTrue();
}else
@@ -255,9 +255,11 @@ public class LodRegion implements Serializable
} else
//now we keep exploring the top right child
{
levelPos.changeParameters((byte) (detailLevel-1), levelPos.posX*2 + regionPosX * childSize, levelPos.posZ*2 + regionPosZ * childSize);
levelPos.changeParameters(detailLevel, posX, posZ);
levelPos.convert((byte) (detailLevel - 1));
if (!doesDataExist(levelPos))
{
levelPos.changeParameters(levelPos.detailLevel, levelPos.posX + regionPosX * childSize, levelPos.posZ + regionPosZ * childSize);
if(dataToGenerate.containsKey(levelPos)){
dataToGenerate.get(levelPos).setTrue();
}else
@@ -345,7 +347,6 @@ public class LodRegion implements Serializable
dataToRender.put(new LevelPos(detailLevel, posX + regionPosX * size, posZ + regionPosZ * size), new MutableBoolean(true));
}
}
return;
}