diff --git a/OutlawEditor/src/main/java/org/badvision/outlaweditor/MapEditor.java b/OutlawEditor/src/main/java/org/badvision/outlaweditor/MapEditor.java index 7556d462..b49d4516 100644 --- a/OutlawEditor/src/main/java/org/badvision/outlaweditor/MapEditor.java +++ b/OutlawEditor/src/main/java/org/badvision/outlaweditor/MapEditor.java @@ -460,6 +460,11 @@ public class MapEditor extends Editor implements EventH } } + public void removeScript(Script script) { + getCurrentMap().removeScriptFromMap(script); + redraw(); + } + public static enum DrawMode { Pencil1px, Pencil3px, Pencil5px, FilledRect, Eraser diff --git a/OutlawEditor/src/main/java/org/badvision/outlaweditor/data/TileMap.java b/OutlawEditor/src/main/java/org/badvision/outlaweditor/data/TileMap.java index f4259ed9..d7215fdf 100644 --- a/OutlawEditor/src/main/java/org/badvision/outlaweditor/data/TileMap.java +++ b/OutlawEditor/src/main/java/org/badvision/outlaweditor/data/TileMap.java @@ -213,4 +213,12 @@ public class TileMap extends ArrayList> implements Serializable public static boolean isNullTile(String tileId) { return tileId.equalsIgnoreCase(NULL_TILE_ID); } + + public void removeScriptFromMap(Script script) { + script.getLocationTrigger().clear(); + locationScripts.values().stream().filter((scripts) -> !(scripts == null)).forEach((scripts) -> { + scripts.remove(script); + }); + backingMap.getScripts().getScript().remove(script); + } } diff --git a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/GlobalEditorTabControllerImpl.java b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/GlobalEditorTabControllerImpl.java index b1184ea1..cd537fd0 100644 --- a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/GlobalEditorTabControllerImpl.java +++ b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/GlobalEditorTabControllerImpl.java @@ -28,8 +28,14 @@ public class GlobalEditorTabControllerImpl extends GlobalEditorTabController { protected void onScriptDeletePressed(ActionEvent event) { Script script = globalScriptList.getSelectionModel().getSelectedItem(); if (script != null) { - getCurrentEditor().removeScript(script); - redrawGlobalScripts(); + UIAction.confirm( + "Are you sure you want to delete the script " + + script.getName() + + "? There is no undo for this!", + () -> { + getCurrentEditor().removeScript(script); + redrawGlobalScripts(); + }, null); } } diff --git a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/MapEditorTabControllerImpl.java b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/MapEditorTabControllerImpl.java index fa85a010..053f6020 100644 --- a/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/MapEditorTabControllerImpl.java +++ b/OutlawEditor/src/main/java/org/badvision/outlaweditor/ui/impl/MapEditorTabControllerImpl.java @@ -195,7 +195,18 @@ public class MapEditorTabControllerImpl extends MapEditorTabController { @Override public void onMapScriptDeletePressed(ActionEvent event) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + Script script = mapScriptsList.getSelectionModel().getSelectedItem(); + if (script != null) { + UIAction.confirm( + "Are you sure you want to delete the script " + + script.getName() + + "? There is no undo for this!", + () -> { + getCurrentEditor().removeScript(script); + redrawMapScripts(); + }, + null); + }; } @Override @@ -288,8 +299,10 @@ public class MapEditorTabControllerImpl extends MapEditorTabController { bind(mapNameField.textProperty(), stringProp(m, "name")); // bind(mapWidthField.textProperty(), intProp(m, "width")); // bind(mapWrapAround.selectedProperty(),boolProp(m, "wrap")); + } catch (NoSuchMethodException ex) { - Logger.getLogger(ApplicationUIControllerImpl.class.getName()).log(Level.SEVERE, null, ex); + Logger.getLogger(ApplicationUIControllerImpl.class + .getName()).log(Level.SEVERE, null, ex); } MapEditor e = new MapEditor(); e.setEntity(m); @@ -386,7 +399,7 @@ public class MapEditorTabControllerImpl extends MapEditorTabController { @Override public ListCell