From 01d5601b5b085587a8cc1153790c2db07641e741 Mon Sep 17 00:00:00 2001 From: Jesse Boyd Date: Wed, 20 Apr 2016 09:03:50 +1000 Subject: [PATCH] Fix for CuboidClipboard rotation --- bukkit/build/resources/main/plugin.yml | 2 +- .../main/java/com/sk89q/worldedit/CuboidClipboard.java | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/bukkit/build/resources/main/plugin.yml b/bukkit/build/resources/main/plugin.yml index fa94cd5d..fa328351 100644 --- a/bukkit/build/resources/main/plugin.yml +++ b/bukkit/build/resources/main/plugin.yml @@ -1,6 +1,6 @@ name: FastAsyncWorldEdit main: com.boydti.fawe.bukkit.FaweBukkit -version: 3.3.16 +version: 3.3.17 description: Fast Async WorldEdit plugin authors: [Empire92] loadbefore: [WorldEdit] diff --git a/core/src/main/java/com/sk89q/worldedit/CuboidClipboard.java b/core/src/main/java/com/sk89q/worldedit/CuboidClipboard.java index 88735903..d60d8a2a 100644 --- a/core/src/main/java/com/sk89q/worldedit/CuboidClipboard.java +++ b/core/src/main/java/com/sk89q/worldedit/CuboidClipboard.java @@ -421,7 +421,7 @@ public class CuboidClipboard { final int shiftX = sizeRotated.getX() < 0 ? -sizeRotated.getBlockX() - 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]; @@ -437,10 +437,16 @@ public class CuboidClipboard { } if (reverse) { for (int i = 0; i < numRotations; ++i) { + if (block.hasWildcardData()) { + block = new BaseBlock(block); + } block.rotate90Reverse(); } } else { for (int i = 0; i < numRotations; ++i) { + if (block.hasWildcardData()) { + block = new BaseBlock(block); + } block.rotate90(); } } @@ -456,6 +462,8 @@ public class CuboidClipboard { Math.abs(sizeRotated.getBlockZ())); offset = offset.transform2D(angle, 0, 0, 0, 0) .subtract(shiftX, 0, shiftZ); + dx = cloned.dx; + dxz = cloned.dxz; } /**