From daf2a911429d956ea36a906867bfaf5b9c15d91c Mon Sep 17 00:00:00 2001 From: David Vierra Date: Sun, 31 Jan 2016 13:33:15 -1000 Subject: [PATCH] Brush tool is now draggable --- src/mcedit2/editortools/brush/__init__.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/mcedit2/editortools/brush/__init__.py b/src/mcedit2/editortools/brush/__init__.py index 69d9ccd..82d61bd 100644 --- a/src/mcedit2/editortools/brush/__init__.py +++ b/src/mcedit2/editortools/brush/__init__.py @@ -133,6 +133,9 @@ class BrushTool(EditorTool): self.toolWidget.xSpinSlider.setValue(self.brushSize[0]) self.toolWidget.ySpinSlider.setValue(self.brushSize[1]) self.toolWidget.zSpinSlider.setValue(self.brushSize[2]) + self.toolWidget.hoverSpinSlider.setValue(1) + + self.dragPoints = [] @property def hoverDistance(self): @@ -173,10 +176,7 @@ class BrushTool(EditorTool): self.updateCursor() def mousePress(self, event): - pos = event.blockPosition - vector = (event.blockFace.vector * self.hoverDistance) - command = BrushCommand(self.editorSession, [pos + vector], self.options) - self.editorSession.pushCommand(command) + self.dragPoints[:] = [] def mouseMove(self, event): if event.blockPosition: @@ -184,6 +184,17 @@ class BrushTool(EditorTool): assert isinstance(vector, Vector), "vector isa %s" % type(vector) self.cursorTranslate.translateOffset = event.blockPosition + vector + def mouseDrag(self, event): + pos = event.blockPosition + vector = (event.blockFace.vector * self.hoverDistance) + self.dragPoints.append(pos + vector) + + def mouseRelease(self, event): + dragPoints = sorted(set(self.dragPoints)) + self.dragPoints[:] = [] + command = BrushCommand(self.editorSession, dragPoints, self.options) + self.editorSession.pushCommand(command) + @property def options(self): options = {'brushSize': self.brushSize,