Updated /ascend, /descend, and /unstuck to detect pass-through blocks better.

This commit is contained in:
sk89q 2010-11-06 21:50:05 -07:00
parent 363372b160
commit 835a8ee617

View File

@ -76,7 +76,7 @@ public void findFreePosition(Vector searchPos) {
byte free = 0;
while (y <= 129) {
if (etc.getServer().getBlockIdAt(x, y, z) == 0) {
if (BlockType.canPassThrough(etc.getServer().getBlockIdAt(x, y, z))) {
free++;
} else {
free = 0;
@ -118,7 +118,7 @@ public boolean ascendLevel() {
byte spots = 0;
while (y <= 129) {
if (ServerInterface.getBlockType(new Vector(x, y, z)) == 0) {
if (BlockType.canPassThrough(ServerInterface.getBlockType(new Vector(x, y, z)))) {
free++;
} else {
free = 0;
@ -159,7 +159,7 @@ public boolean descendLevel() {
byte free = 0;
while (y >= 1) {
if (ServerInterface.getBlockType(new Vector(x, y, z)) == 0) {
if (BlockType.canPassThrough(ServerInterface.getBlockType(new Vector(x, y, z)))) {
free++;
} else {
free = 0;
@ -211,7 +211,7 @@ public boolean ascendToCeiling(int clearance) {
while (y <= 127) {
// Found a ceiling!
if (ServerInterface.getBlockType(new Vector(x, y, z)) != 0) {
if (!BlockType.canPassThrough(ServerInterface.getBlockType(new Vector(x, y, z)))) {
int platformY = Math.max(initialY, y - 3 - clearance);
ServerInterface.setBlockType(new Vector(x, platformY, z),
BlockType.GLASS.getID());