Move distance calculations into the Region object
This commit is contained in:
parent
3421a6e267
commit
b7119d774e
@ -40,4 +40,11 @@ public class Region {
|
|||||||
public String name() {
|
public String name() {
|
||||||
return m_name;
|
return m_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An alternative to Location.distance() which doesn't use floating point math.
|
||||||
|
*/
|
||||||
|
public int distanceTo(Location loc) {
|
||||||
|
return Math.abs((m_location.getBlockX()-loc.getBlockX())+Math.abs(m_location.getBlockZ()-loc.getBlockZ()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -116,7 +116,7 @@ public class RegionManager {
|
|||||||
Region nearest = null;
|
Region nearest = null;
|
||||||
int minDistance = -1;
|
int minDistance = -1;
|
||||||
for(Region r : regions) {
|
for(Region r : regions) {
|
||||||
int check = distance(loc, r.location());
|
int check = r.distanceTo(loc);
|
||||||
if (minDistance == -1 || check < minDistance) {
|
if (minDistance == -1 || check < minDistance) {
|
||||||
nearest = r;
|
nearest = r;
|
||||||
minDistance = check;
|
minDistance = check;
|
||||||
@ -186,11 +186,4 @@ public class RegionManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* An alternative to Location.distance() which doesn't use floating point math.
|
|
||||||
*/
|
|
||||||
private static int distance(Location l1, Location l2) {
|
|
||||||
return Math.abs((l1.getBlockX()-l2.getBlockX())+Math.abs(l1.getBlockZ()-l2.getBlockZ()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user