From 258bdc11b09de24f0d5a945f561a2109fa043a1e Mon Sep 17 00:00:00 2001 From: TomyLobo Date: Mon, 5 Dec 2011 23:21:51 +0100 Subject: [PATCH] Fixed //stack -s only shifting by 1 block, regardless of the selection size. --- .../com/sk89q/worldedit/commands/RegionCommands.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/sk89q/worldedit/commands/RegionCommands.java b/src/main/java/com/sk89q/worldedit/commands/RegionCommands.java index b49ad4a60..61915c97b 100644 --- a/src/main/java/com/sk89q/worldedit/commands/RegionCommands.java +++ b/src/main/java/com/sk89q/worldedit/commands/RegionCommands.java @@ -290,9 +290,12 @@ public class RegionCommands { if (args.hasFlag('s')) { try { - Region region = session.getSelection(player.getWorld()); - region.expand(dir.multiply(count)); - region.contract(dir.multiply(count)); + final Region region = session.getSelection(player.getWorld()); + final Vector size = region.getMaximumPoint().subtract(region.getMinimumPoint()); + + final Vector shiftVector = dir.multiply(count * Math.abs(size.dot(size))); + region.expand(shiftVector); + region.contract(shiftVector); session.getRegionSelector().learnChanges(); session.getRegionSelector().explainRegionAdjust(player, session);