public void Draw(IPaint paint, Point newPoint, decimal scale) { Connector.Do("moveTools", paint, Location, newPoint); if (Connector.Config["AutoChangePosition"].Boolean && paint.Equals(Drawer.CurrentLayer)) { var sprite = Drawer.CurrentLayer.Tag as Sprite; if (sprite != null && paint is Core.Draw.Paint.Canvas canvas) { var album = sprite.Parent; var index = sprite.Index; var location = canvas.RealLocation; if (canvas.RealPosition) { location = location.Minus(sprite.Location); canvas.Location = Point.Empty; } var x = location.X; var y = location.Y; Connector.Do("changePosition", album, new int[] { index }, new int[] { x, y, 0, 0 }, new bool[] { true, true, false, false, canvas.RealPosition }); } } }