From 2458f3cae5b22ba549ae385575d9d50a191add84 Mon Sep 17 00:00:00 2001 From: David Vierra Date: Sun, 31 Jan 2016 20:01:42 -1000 Subject: [PATCH] Close gaps in dragged brushes by drawing lines --- src/mcedit2/editortools/brush/__init__.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/mcedit2/editortools/brush/__init__.py b/src/mcedit2/editortools/brush/__init__.py index 7360b8d..62dca1a 100644 --- a/src/mcedit2/editortools/brush/__init__.py +++ b/src/mcedit2/editortools/brush/__init__.py @@ -18,6 +18,7 @@ from mcedit2.rendering.scenegraph.matrix import Translate from mcedit2.rendering.scenegraph.scenenode import Node from mcedit2.rendering.selection import SelectionBoxNode from mcedit2.ui.editortools.brush import Ui_brushWidget +from mcedit2.util import bresenham from mcedit2.util.showprogress import showProgress from mcedit2.util.worldloader import WorldLoader from mceditlib.geometry import Vector @@ -188,7 +189,13 @@ class BrushTool(EditorTool): def mouseDrag(self, event): pos = event.blockPosition vector = (event.blockFace.vector * self.hoverDistance) - self.dragPoints.append(pos + vector) + p2 = pos + vector + if len(self.dragPoints): + p1 = self.dragPoints.pop(-1) + points = list(bresenham.bresenham(p1, p2)) + self.dragPoints.extend(points) + else: + self.dragPoints.append(p2) def mouseRelease(self, event): dragPoints = sorted(set(self.dragPoints))