From 12aec1ad6bae2bf0c18699ab1711a359bd2610d2 Mon Sep 17 00:00:00 2001 From: Brendan Robert Date: Sat, 7 May 2016 22:05:25 -0500 Subject: [PATCH] Code cleanup for copy selection handling and added copy/paste in map editor --- .../org/badvision/outlaweditor/MapEditor.java | 177 ++++++++++++------ .../outlaweditor/TransferHelper.java | 14 +- .../outlaweditor/apple/AppleImageEditor.java | 50 +++-- 3 files changed, 153 insertions(+), 88 deletions(-) diff --git a/OutlawEditor/src/main/java/org/badvision/outlaweditor/MapEditor.java b/OutlawEditor/src/main/java/org/badvision/outlaweditor/MapEditor.java index e89d4930..29c55288 100644 --- a/OutlawEditor/src/main/java/org/badvision/outlaweditor/MapEditor.java +++ b/OutlawEditor/src/main/java/org/badvision/outlaweditor/MapEditor.java @@ -7,9 +7,9 @@ * ANY KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ - package org.badvision.outlaweditor; +import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -22,6 +22,7 @@ import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; import javafx.beans.value.ObservableValue; import javafx.event.EventHandler; +import javafx.scene.Cursor; import javafx.scene.Group; import javafx.scene.ImageCursor; import javafx.scene.Scene; @@ -38,7 +39,6 @@ import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.input.MouseEvent; import javafx.scene.input.ScrollEvent; -import javafx.scene.layout.AnchorPane; import javafx.scene.layout.Pane; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; @@ -93,9 +93,17 @@ public class MapEditor extends Editor implements EventH @Override public void setDrawMode(DrawMode drawMode) { this.drawMode = drawMode; - if (drawMode == DrawMode.Eraser) { - ImageCursor cursor = new ImageCursor(new Image("images/eraser.png")); - drawCanvas.setCursor(cursor); + switch (drawMode) { + case Eraser: + ImageCursor cursor = new ImageCursor(new Image("images/eraser.png")); + drawCanvas.setCursor(cursor); + break; + case Select: + drawCanvas.setCursor(Cursor.CROSSHAIR); + break; + default: + setCurrentTile(getCurrentTile()); + break; } } @@ -118,13 +126,13 @@ public class MapEditor extends Editor implements EventH String category = null; if (currentTile != null) { category = currentTile.getCategory(); - } + } if (this.equals(Application.getInstance().getController().getVisibleEditor())) { - UIAction.showTileSelectModal((AnchorPane) anchorPane, category, this::setCurrentTile); + UIAction.showTileSelectModal(anchorPane, category, this::setCurrentTile); } } } - + public void initCanvas() { if (drawCanvas != null) { anchorPane.getChildren().remove(drawCanvas); @@ -146,7 +154,7 @@ public class MapEditor extends Editor implements EventH drawCanvas.setOnMouseDragReleased(this); drawCanvas.setOnMouseReleased(this); anchorPane.getChildren().add(0, drawCanvas); - cursorAssistant = new Rectangle(tileWidth, tileHeight, new Color(0.2,0.2,1.0,0.4)); + cursorAssistant = new Rectangle(tileWidth, tileHeight, new Color(0.2, 0.2, 1.0, 0.4)); cursorAssistant.setMouseTransparent(true); cursorAssistant.setEffect(new Glow(1.0)); anchorPane.getChildren().add(cursorAssistant); @@ -277,9 +285,9 @@ public class MapEditor extends Editor implements EventH public void clearCanvas() { boolean oddEvenColumn = false; boolean oddEven; - for (int x=0; x < drawCanvas.getWidth(); x += 10) { + for (int x = 0; x < drawCanvas.getWidth(); x += 10) { oddEven = oddEvenColumn; - for (int y=0; y < drawCanvas.getHeight(); y += 10) { + for (int y = 0; y < drawCanvas.getHeight(); y += 10) { drawCanvas.getGraphicsContext2D().setFill(oddEven ? Color.BLACK : Color.NAVY); drawCanvas.getGraphicsContext2D().fillRect(x, y, 10, 10); oddEven = !oddEven; @@ -293,12 +301,10 @@ public class MapEditor extends Editor implements EventH double yy = y * tileHeight; if (tile != null) { drawCanvas.getGraphicsContext2D().drawImage(TileUtils.getImage(tile, currentPlatform), xx, yy, tileWidth, tileHeight); - } else { -// drawCanvas.getGraphicsContext2D().clearRect(xx, yy, tileWidth, tileHeight); } } - private static final int dashLength = 3; + private static final int DASH_LENGTH = 3; private final Set