From e36520f68b588cfcf8a24ee8a00ee6445187e12f Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Fri, 26 Aug 2016 16:09:44 +1000 Subject: [PATCH] Fix some /paste not working with scale and /replace should not be affected by /scale. (Thanks goodlyay) --- Drawing/DrawOps/ReplaceDrawOp.cs | 2 ++ Drawing/Transform/SimpleTransforms.cs | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Drawing/DrawOps/ReplaceDrawOp.cs b/Drawing/DrawOps/ReplaceDrawOp.cs index 8bf64c7ba..1cdc81a3f 100644 --- a/Drawing/DrawOps/ReplaceDrawOp.cs +++ b/Drawing/DrawOps/ReplaceDrawOp.cs @@ -30,6 +30,7 @@ namespace MCGalaxy.Drawing.Ops { } public override string Name { get { return "Replace"; } } + public override bool AffectedByTransform { get { return false; } } public override long GetBlocksAffected(Level lvl, Vec3S32[] marks) { return (Max.X - Min.X + 1) * (Max.Y - Min.Y + 1) * (Max.Z - Min.Z + 1); @@ -59,6 +60,7 @@ namespace MCGalaxy.Drawing.Ops { } public override string Name { get { return "ReplaceNot"; } } + public override bool AffectedByTransform { get { return false; } } public override long GetBlocksAffected(Level lvl, Vec3S32[] marks) { return (Max.X - Min.X + 1) * (Max.Y - Min.Y + 1) * (Max.Z - Min.Z + 1); diff --git a/Drawing/Transform/SimpleTransforms.cs b/Drawing/Transform/SimpleTransforms.cs index ab96a9217..2909dc5c1 100644 --- a/Drawing/Transform/SimpleTransforms.cs +++ b/Drawing/Transform/SimpleTransforms.cs @@ -53,9 +53,9 @@ namespace MCGalaxy.Drawing.Transforms { // Guess the direction in which we should be scaling - // for simplicity we assume we are scaling in positive direction P = op.Origin; - dirX = (P.X == op.Max.X || op.Min.X == op.Max.X) ? -1 : 1; - dirY = (P.Y == op.Max.Y || op.Min.Y == op.Max.Y) ? -1 : 1; - dirZ = (P.Z == op.Max.Z || op.Min.Z == op.Max.Z) ? -1 : 1; + dirX = op.Min.X == op.Max.X ? 1 : (P.X == op.Max.X ? -1 : 1); + dirY = op.Min.Y == op.Max.Y ? 1 : (P.Y == op.Max.Y ? -1 : 1); + dirZ = op.Min.Z == op.Max.Z ? 1 : (P.Z == op.Max.Z ? -1 : 1); } foreach (DrawOpBlock b in op.Perform(marks, p, lvl, brush)) {