getLevelToGenerate has been renamed getNodesToGenerate. Now it return node and not the complete level

This commit is contained in:
Leonardo
2021-07-19 11:32:20 +02:00
parent 359791ea58
commit 01183be383
3 changed files with 18 additions and 18 deletions
@@ -349,7 +349,7 @@ public class LodQuadTree {
* @param minDistance
* @return
*/
public List<AbstractMap.SimpleEntry<LodQuadTree, Integer>> getLevelToGenerate(int x, int z, byte targetLevel, DistanceGenerationMode complexityToGenerate, int maxDistance, int minDistance) {
public List<AbstractMap.SimpleEntry<LodQuadTreeNode, Integer>> getNodesToGenerate(int x, int z, byte targetLevel, DistanceGenerationMode complexityToGenerate, int maxDistance, int minDistance) {
List<Integer> distances = new ArrayList();
distances.add((int) Math.sqrt(Math.pow(x - lodNode.getStartX(), 2) + Math.pow(z - lodNode.getStartZ(), 2)));
@@ -359,11 +359,11 @@ public class LodQuadTree {
int min = distances.stream().mapToInt(Integer::intValue).min().getAsInt();
int max = distances.stream().mapToInt(Integer::intValue).max().getAsInt();
List<AbstractMap.SimpleEntry<LodQuadTree, Integer>> nodeList = new ArrayList<>();
List<AbstractMap.SimpleEntry<LodQuadTreeNode, Integer>> nodeList = new ArrayList<>();
if (targetLevel <= lodNode.level && ((min <= maxDistance && max >= minDistance) || isCoordinateInLevel(x, z))) {
if(!isThereAnyChild() || targetLevel == lodNode.level){
if (this.lodNode.getComplexity().compareTo(complexityToGenerate) <= 0) {
nodeList.add(new AbstractMap.SimpleEntry<>(this, min));
nodeList.add(new AbstractMap.SimpleEntry<>(this.getLodNodeData(), min));
}
}else {
for (int NS = 0; NS <= 1; NS++) {
@@ -372,7 +372,7 @@ public class LodQuadTree {
setChild(NS, WE);
}
LodQuadTree child = getChild(NS, WE);
nodeList.addAll(child.getLevelToGenerate(x, z, targetLevel, complexityToGenerate, maxDistance, minDistance));
nodeList.addAll(child.getNodesToGenerate(x, z, targetLevel, complexityToGenerate, maxDistance, minDistance));
}
}
}
@@ -363,13 +363,13 @@ public class LodQuadTreeDimension {
* method to get all the quadtree level that have to be generated based on the position of the player
* @return list of quadTrees
*/
public List<LodQuadTree> getNodeToGenerate(int x, int z, byte level, DistanceGenerationMode complexity, int maxDistance, int minDistance){
public List<LodQuadTreeNode> getNodesToGenerate(int x, int z, byte level, DistanceGenerationMode complexity, int maxDistance, int minDistance){
int n = regions.length;
int xIndex;
int zIndex;
LodQuadTree region;
List<Map.Entry<LodQuadTree,Integer>> listOfQuadTree = new ArrayList<>();
List<Map.Entry<LodQuadTreeNode,Integer>> listOfQuadTree = new ArrayList<>();
for(int xRegion=0; xRegion<n; xRegion++){
for(int zRegion=0; zRegion<n; zRegion++){
xIndex = (xRegion + centerX) - halfWidth;
@@ -379,7 +379,7 @@ public class LodQuadTreeDimension {
region = new LodQuadTree(xIndex, zIndex);
setRegion(region);
}
listOfQuadTree.addAll(region.getLevelToGenerate(x,z,level,complexity,maxDistance,minDistance));
listOfQuadTree.addAll(region.getNodesToGenerate(x,z,level,complexity,maxDistance,minDistance));
}
}
Collections.sort(listOfQuadTree,Map.Entry.comparingByValue());
@@ -106,17 +106,17 @@ public class QuadTreeImage extends JPanel {
int[] distances = {100000, 8000, 4000, 2000, 1000, 500, 250, 100, 50, 25};
for (int i = 0; i <= (9 - 2); i++) {
List<LodQuadTree> levelToGenerate = dim.getNodeToGenerate(playerX, playerZ, (byte) (9 - i), DistanceGenerationMode.SERVER, distances[i], 0);
List<LodQuadTreeNode> levelToGenerate = dim.getNodesToGenerate(playerX, playerZ, (byte) (9 - i), DistanceGenerationMode.SERVER, distances[i], 0);
//System.out.println(levelToGenerate);
for (LodQuadTree level : levelToGenerate) {
for (LodQuadTreeNode node : levelToGenerate) {
Color color;
int startX = level.getLodNodeData().startX;
int startZ = level.getLodNodeData().startZ;
int endX = level.getLodNodeData().endX;
int endZ = level.getLodNodeData().endZ;
int centerX = level.getLodNodeData().centerX;
int centerZ = level.getLodNodeData().centerZ;
int width = level.getLodNodeData().width;
int startX = node.startX;
int startZ = node.startZ;
int endX = node.endX;
int endZ = node.endZ;
int centerX = node.centerX;
int centerZ = node.centerZ;
int width = node.width;
byte otherLevel = LodQuadTreeNode.BLOCK_LEVEL;
int otherWidth = LodQuadTreeNode.BLOCK_WIDTH;
@@ -132,8 +132,8 @@ public class QuadTreeImage extends JPanel {
int posX = posXI.intValue();
int posZ = posZI.intValue();
color = BiomeColorsUtils.getColorFromBiomeManual(biomeSource.getBiome(posX, 0, posZ));
LodQuadTreeNode node = new LodQuadTreeNode(otherLevel, posX, posZ, new LodDataPoint(0, 0, color), DistanceGenerationMode.SERVER);
if (dim.addNode(node)) {
LodQuadTreeNode newNode = new LodQuadTreeNode(otherLevel, posX, posZ, new LodDataPoint(0, 0, color), DistanceGenerationMode.SERVER);
if (dim.addNode(newNode)) {
}
}
}