From afcdce46671e1be989046e1712e7dc9feab87116 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Thu, 26 Aug 2021 20:17:00 +0200 Subject: [PATCH] Small fix to LevelPos --- .../com/seibel/lod/objects/LevelPos/LevelPos.java | 12 +++++++----- src/main/java/com/seibel/lod/objects/LodRegion.java | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/seibel/lod/objects/LevelPos/LevelPos.java b/src/main/java/com/seibel/lod/objects/LevelPos/LevelPos.java index 32efbea38..46e273789 100644 --- a/src/main/java/com/seibel/lod/objects/LevelPos/LevelPos.java +++ b/src/main/java/com/seibel/lod/objects/LevelPos/LevelPos.java @@ -265,9 +265,9 @@ public class LevelPos implements Cloneable, ImmutableLevelPos, MutableLevelPos } @Override - public int compare(Map.Entry first, Map.Entry second) + public int compare(LevelPos first, LevelPos second) { - return Integer.compare(first.getValue(), second.getValue()); + return Integer.compare(first.getRegionModuleLevelPos().minDistance(playerPosX,playerPosZ), second.getRegionModuleLevelPos().minDistance(playerPosX,playerPosZ)); } } @@ -281,12 +281,14 @@ public class LevelPos implements Cloneable, ImmutableLevelPos, MutableLevelPos } @Override - public int compare(Map.Entry first, Map.Entry second) + public int compare(LevelPos first, LevelPos second) { - int compareResult = Integer.compare(first.getKey().detailLevel, second.getKey().detailLevel); + int compareResult = Integer.compare(first.detailLevel, second.detailLevel); if (compareResult != 0) { - compareResult = Integer.compare(first.getValue(), second.getValue()); + compareResult = Integer.compare( + first.getRegionModuleLevelPos().minDistance(playerPosX,playerPosZ), + second.getRegionModuleLevelPos().minDistance(playerPosX,playerPosZ)); } return compareResult; } diff --git a/src/main/java/com/seibel/lod/objects/LodRegion.java b/src/main/java/com/seibel/lod/objects/LodRegion.java index 07d889eb4..cf219f5c5 100644 --- a/src/main/java/com/seibel/lod/objects/LodRegion.java +++ b/src/main/java/com/seibel/lod/objects/LodRegion.java @@ -203,7 +203,7 @@ public class LodRegion implements Serializable LevelPos min; for (int i = 0; i < dataNumber; i++) { - min = Collections.min(levelPosList, LevelPos.getPosComparator()); + min = Collections.min(levelPosList, LevelPos.getPosComparator(playerPosX,playerPosZ)); levelPosList.remove(min); levelMinPosList.add(min); }