Fix for CuboidClipboard rotation

This commit is contained in:
Jesse Boyd 2016-04-20 09:03:50 +10:00
parent 03a2dfec3f
commit 01d5601b5b
2 changed files with 10 additions and 2 deletions

View File

@ -1,6 +1,6 @@
name: FastAsyncWorldEdit name: FastAsyncWorldEdit
main: com.boydti.fawe.bukkit.FaweBukkit main: com.boydti.fawe.bukkit.FaweBukkit
version: 3.3.16 version: 3.3.17
description: Fast Async WorldEdit plugin description: Fast Async WorldEdit plugin
authors: [Empire92] authors: [Empire92]
loadbefore: [WorldEdit] loadbefore: [WorldEdit]

View File

@ -421,7 +421,7 @@ public class CuboidClipboard {
final int shiftX = sizeRotated.getX() < 0 ? -sizeRotated.getBlockX() - 1 : 0; final int shiftX = sizeRotated.getX() < 0 ? -sizeRotated.getBlockX() - 1 : 0;
final int shiftZ = sizeRotated.getZ() < 0 ? -sizeRotated.getBlockZ() - 1 : 0; final int shiftZ = sizeRotated.getZ() < 0 ? -sizeRotated.getBlockZ() - 1 : 0;
CuboidClipboard cloned = new CuboidClipboard(sizeRotated); CuboidClipboard cloned = new CuboidClipboard(sizeRotated.positive().round());
BaseBlock air = FaweCache.CACHE_BLOCK[0]; BaseBlock air = FaweCache.CACHE_BLOCK[0];
@ -437,10 +437,16 @@ public class CuboidClipboard {
} }
if (reverse) { if (reverse) {
for (int i = 0; i < numRotations; ++i) { for (int i = 0; i < numRotations; ++i) {
if (block.hasWildcardData()) {
block = new BaseBlock(block);
}
block.rotate90Reverse(); block.rotate90Reverse();
} }
} else { } else {
for (int i = 0; i < numRotations; ++i) { for (int i = 0; i < numRotations; ++i) {
if (block.hasWildcardData()) {
block = new BaseBlock(block);
}
block.rotate90(); block.rotate90();
} }
} }
@ -456,6 +462,8 @@ public class CuboidClipboard {
Math.abs(sizeRotated.getBlockZ())); Math.abs(sizeRotated.getBlockZ()));
offset = offset.transform2D(angle, 0, 0, 0, 0) offset = offset.transform2D(angle, 0, 0, 0, 0)
.subtract(shiftX, 0, shiftZ); .subtract(shiftX, 0, shiftZ);
dx = cloned.dx;
dxz = cloned.dxz;
} }
/** /**