getLevelToGenerate has been renamed getNodesToGenerate. Now it return node and not the complete level
This commit is contained in:
@@ -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)) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user