Mirror von
https://github.com/IntellectualSites/FastAsyncWorldEdit.git
synchronisiert 2024-12-26 02:50:06 +01:00
Add more directionals
- Fixes #1122 - Levers and buttons can be flipped/rotated vertically
Dieser Commit ist enthalten in:
Ursprung
0d26dad397
Commit
0be8746c11
@ -91,6 +91,7 @@ public class BlockTransformExtent extends ResettableExtent {
|
||||
PropertyKey.ROTATION,
|
||||
PropertyKey.AXIS,
|
||||
PropertyKey.FACING,
|
||||
PropertyKey.FACE,
|
||||
PropertyKey.SHAPE,
|
||||
PropertyKey.NORTH,
|
||||
PropertyKey.EAST,
|
||||
@ -166,24 +167,21 @@ public class BlockTransformExtent extends ResettableExtent {
|
||||
} else {
|
||||
List values = property.getValues();
|
||||
PropertyKey key = property.getKey();
|
||||
if (key == PropertyKey.HALF || values.contains("top")) {
|
||||
switch (key.getName().toLowerCase()) {
|
||||
case "half": {
|
||||
return adapt(UP, DOWN);
|
||||
}
|
||||
if (values.contains("left")) {
|
||||
if (key == PropertyKey.SHAPE) {
|
||||
return adapt(combine(EAST, WEST), combine(NORTH, SOUTH));
|
||||
} else if (key == PropertyKey.HINGE) {
|
||||
return adapt(combine(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST), combine(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST));
|
||||
case "type": {
|
||||
return adapt(combine(UP), combine(DOWN), 0L);
|
||||
}
|
||||
}
|
||||
if (key == PropertyKey.ROTATION) {
|
||||
case "rotation": {
|
||||
List<Direction> directions = new ArrayList<>();
|
||||
for (Object value : values) {
|
||||
directions.add(Direction.fromRotationIndex((Integer) value).get());
|
||||
}
|
||||
return adapt(directions.toArray(new Direction[0]));
|
||||
}
|
||||
if (key == PropertyKey.AXIS) {
|
||||
case "axis": {
|
||||
switch (property.getValues().size()) {
|
||||
case 3:
|
||||
return adapt(combine(EAST, WEST), combine(UP, DOWN), combine(SOUTH, NORTH));
|
||||
@ -194,14 +192,26 @@ public class BlockTransformExtent extends ResettableExtent {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
if (key == PropertyKey.FACING) {
|
||||
case "facing": {
|
||||
List<Direction> directions = new ArrayList<>();
|
||||
for (Object value : values) {
|
||||
directions.add(Direction.valueOf(value.toString().toUpperCase(Locale.ROOT)));
|
||||
}
|
||||
return adapt(directions.toArray(new Direction[0]));
|
||||
}
|
||||
if (key == PropertyKey.SHAPE) {
|
||||
case "face": {
|
||||
if (values.size() == 3) {
|
||||
return adapt(combine(UP), combine(NORTH, EAST, SOUTH, WEST), combine(DOWN));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
case "hinge": {
|
||||
return adapt(combine(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST), combine(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST));
|
||||
}
|
||||
case "shape": {
|
||||
if (values.contains("left")) {
|
||||
return adapt(combine(EAST, WEST), combine(NORTH, SOUTH));
|
||||
}
|
||||
if (values.contains("straight")) {
|
||||
ArrayList<Long> result = new ArrayList<>();
|
||||
for (Object value : values) {
|
||||
@ -271,6 +281,7 @@ public class BlockTransformExtent extends ResettableExtent {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren