geforkt von Mirrors/FastAsyncWorldEdit
Did some minor Vector optimization.
Dieser Commit ist enthalten in:
Ursprung
2f71a32f64
Commit
da4480ab49
@ -1579,6 +1579,7 @@ public class EditSession {
|
|||||||
public int simulateSnow(Vector pos, int radius)
|
public int simulateSnow(Vector pos, int radius)
|
||||||
throws MaxChangedBlocksException {
|
throws MaxChangedBlocksException {
|
||||||
int affected = 0;
|
int affected = 0;
|
||||||
|
int radiusSq = (int)Math.pow(radius, 2);
|
||||||
|
|
||||||
int ox = pos.getBlockX();
|
int ox = pos.getBlockX();
|
||||||
int oy = pos.getBlockY();
|
int oy = pos.getBlockY();
|
||||||
@ -1589,7 +1590,7 @@ public class EditSession {
|
|||||||
|
|
||||||
for (int x = ox - radius; x <= ox + radius; x++) {
|
for (int x = ox - radius; x <= ox + radius; x++) {
|
||||||
for (int z = oz - radius; z <= oz + radius; z++) {
|
for (int z = oz - radius; z <= oz + radius; z++) {
|
||||||
if ((new Vector(x, oy, z)).distance(pos) > radius) {
|
if ((new Vector(x, oy, z)).distanceSq(pos) > radiusSq) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -446,6 +446,18 @@ public class Vector {
|
|||||||
Math.pow(pt.z - z, 2));
|
Math.pow(pt.z - z, 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the distance away from a point, squared.
|
||||||
|
*
|
||||||
|
* @param pt
|
||||||
|
* @return distance
|
||||||
|
*/
|
||||||
|
public double distanceSq(Vector pt) {
|
||||||
|
return Math.pow(pt.x - x, 2) +
|
||||||
|
Math.pow(pt.y - y, 2) +
|
||||||
|
Math.pow(pt.z - z, 2);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks to see if a vector is contained with another.
|
* Checks to see if a vector is contained with another.
|
||||||
*
|
*
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren