Skip to content

Commit 5068c65

Browse files
committed
findNearestRegionId has been optimized to reduce overhead costs.
1 parent 6600281 commit 5068c65

1 file changed

Lines changed: 17 additions & 3 deletions

File tree

src/Oneblock/IslandCoordinateCalculator.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,24 @@ public static int findNearestRegionId(Location loc) {
1414

1515
int halfStoSquared = (Oneblock.offset / 2) * (Oneblock.offset / 2);
1616

17+
int X = 0, Z = 0;
18+
1719
for (int i = 0; i < size; i++) {
18-
int[] coord = Oneblock.plugin.getIslandCoordinates(i);
19-
int dx = coord[0] - locX;
20-
int dz = coord[1] - locZ;
20+
if (!Oneblock.CircleMode) {
21+
if (X > Z)
22+
if (X > -Z)
23+
Z--;
24+
else
25+
X--;
26+
else if (-X > Z || X == Z && Z < 0)
27+
Z++;
28+
else
29+
X++;
30+
}
31+
else X = i;
32+
33+
int dx = (X * Oneblock.offset + Oneblock.x) - locX;
34+
int dz = (Z * Oneblock.offset + Oneblock.z) - locZ;
2135
int distSq = dx * dx + dz * dz;
2236

2337
if (distSq < minDistSq) {

0 commit comments

Comments
 (0)