geforkt von Mirrors/FastAsyncWorldEdit
Changed //cyl and //hcyl to respect boundaries.
Dieser Commit ist enthalten in:
Ursprung
3031480b38
Commit
3ad6577be6
@ -887,6 +887,19 @@ public class EditSession {
|
|||||||
int d = (5 - radius * 4) / 4;
|
int d = (5 - radius * 4) / 4;
|
||||||
int affected = 0;
|
int affected = 0;
|
||||||
|
|
||||||
|
if (height == 0) {
|
||||||
|
return 0;
|
||||||
|
} else if (height < 0) {
|
||||||
|
height = -height;
|
||||||
|
pos = pos.subtract(0, height, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pos.getBlockY() - height - 1 < 0) {
|
||||||
|
height = pos.getBlockY() + 1;
|
||||||
|
} else if (pos.getBlockY() + height - 1 > 127) {
|
||||||
|
height = 127 - pos.getBlockY() + 1;
|
||||||
|
}
|
||||||
|
|
||||||
affected += makeHCylinderPoints(pos, x, z, height, block);
|
affected += makeHCylinderPoints(pos, x, z, height, block);
|
||||||
|
|
||||||
while (x < z) {
|
while (x < z) {
|
||||||
@ -961,6 +974,19 @@ public class EditSession {
|
|||||||
int d = (5 - radius * 4) / 4;
|
int d = (5 - radius * 4) / 4;
|
||||||
int affected = 0;
|
int affected = 0;
|
||||||
|
|
||||||
|
if (height == 0) {
|
||||||
|
return 0;
|
||||||
|
} else if (height < 0) {
|
||||||
|
height = -height;
|
||||||
|
pos = pos.subtract(0, height, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pos.getBlockY() - height - 1 < 0) {
|
||||||
|
height = pos.getBlockY() + 1;
|
||||||
|
} else if (pos.getBlockY() + height - 1 > 127) {
|
||||||
|
height = 127 - pos.getBlockY() + 1;
|
||||||
|
}
|
||||||
|
|
||||||
affected += makeCylinderPoints(pos, x, z, height, block);
|
affected += makeCylinderPoints(pos, x, z, height, block);
|
||||||
|
|
||||||
while (x < z) {
|
while (x < z) {
|
||||||
|
@ -411,7 +411,7 @@ public class WorldEdit {
|
|||||||
checkArgs(split, 2, 3, split[0]);
|
checkArgs(split, 2, 3, split[0]);
|
||||||
BaseBlock block = getBlock(split[1]);
|
BaseBlock block = getBlock(split[1]);
|
||||||
int radius = Math.max(1, Integer.parseInt(split[2]));
|
int radius = Math.max(1, Integer.parseInt(split[2]));
|
||||||
int height = split.length > 3 ? Math.max(1, Integer.parseInt(split[3])) : 1;
|
int height = split.length > 3 ? Integer.parseInt(split[3]) : 1;
|
||||||
|
|
||||||
Vector pos = session.getPlacementPosition(player);
|
Vector pos = session.getPlacementPosition(player);
|
||||||
int affected = editSession.makeHollowCylinder(pos, block, radius, height);
|
int affected = editSession.makeHollowCylinder(pos, block, radius, height);
|
||||||
@ -424,7 +424,7 @@ public class WorldEdit {
|
|||||||
checkArgs(split, 2, 3, split[0]);
|
checkArgs(split, 2, 3, split[0]);
|
||||||
BaseBlock block = getBlock(split[1]);
|
BaseBlock block = getBlock(split[1]);
|
||||||
int radius = Math.max(1, Integer.parseInt(split[2]));
|
int radius = Math.max(1, Integer.parseInt(split[2]));
|
||||||
int height = split.length > 3 ? Math.max(1, Integer.parseInt(split[3])) : 1;
|
int height = split.length > 3 ? Integer.parseInt(split[3]) : 1;
|
||||||
|
|
||||||
Vector pos = session.getPlacementPosition(player);
|
Vector pos = session.getPlacementPosition(player);
|
||||||
int affected = editSession.makeCylinder(pos, block, radius, height);
|
int affected = editSession.makeCylinder(pos, block, radius, height);
|
||||||
|
@ -99,6 +99,26 @@ public class Vector {
|
|||||||
return (int)Math.round(x);
|
return (int)Math.round(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set X.
|
||||||
|
*
|
||||||
|
* @param x
|
||||||
|
* @return new vector
|
||||||
|
*/
|
||||||
|
public Vector setX(double x) {
|
||||||
|
return new Vector(x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set X.
|
||||||
|
*
|
||||||
|
* @param x
|
||||||
|
* @return new vector
|
||||||
|
*/
|
||||||
|
public Vector setX(int x) {
|
||||||
|
return new Vector(x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the y
|
* @return the y
|
||||||
*/
|
*/
|
||||||
@ -113,6 +133,26 @@ public class Vector {
|
|||||||
return (int)Math.round(y);
|
return (int)Math.round(y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set Y.
|
||||||
|
*
|
||||||
|
* @param y
|
||||||
|
* @return new vector
|
||||||
|
*/
|
||||||
|
public Vector setY(double y) {
|
||||||
|
return new Vector(x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set Y.
|
||||||
|
*
|
||||||
|
* @param y
|
||||||
|
* @return new vector
|
||||||
|
*/
|
||||||
|
public Vector setY(int y) {
|
||||||
|
return new Vector(x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the z
|
* @return the z
|
||||||
*/
|
*/
|
||||||
@ -127,6 +167,26 @@ public class Vector {
|
|||||||
return (int)Math.round(z);
|
return (int)Math.round(z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set Z.
|
||||||
|
*
|
||||||
|
* @param z
|
||||||
|
* @return new vector
|
||||||
|
*/
|
||||||
|
public Vector setZ(double z) {
|
||||||
|
return new Vector(x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set Z.
|
||||||
|
*
|
||||||
|
* @param z
|
||||||
|
* @return new vector
|
||||||
|
*/
|
||||||
|
public Vector setZ(int z) {
|
||||||
|
return new Vector(x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds two points.
|
* Adds two points.
|
||||||
*
|
*
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren