UI for adding rows and columns.

This commit is contained in:
Mal
2020-02-09 00:29:46 +01:00
parent de3c73a508
commit d43cd56d65
14 changed files with 317 additions and 12 deletions

View File

@@ -14,6 +14,10 @@ import WidgetBar from "./menu/WidgetBar.js";
import EntrancePointWidget from "./menu/EntrancePointWidget.js";
import Brush from "./Brush.js";
import BrushMode from "./BrushMode.js";
import DialogAddRows from "./dialog/DialogAddRows.js";
import DialogAddColumns from "./dialog/DialogAddColumns.js";
import TilorswiftAddRowsClickedEvent from "./events/TilorswiftAddRowsClickedEvent.js";
import TilorswiftAddColumnsClickedEvent from "./events/TilorswiftAddColumnsClickedEvent.js";
let loader = new FileLoader('../levels/level.json');
let image = new Image();
@@ -24,10 +28,10 @@ image.onload = function () {
let map = document.getElementById('map');
map.appendChild(terrain.getElement());
terrain.addColumns(200, 1);
let brush = new Brush();
let tileset = new Tileset(image, 8, 3);
let widgetBar = new WidgetBar('widget-bar');
let tilesetPicker = new TilesetPickerWidget(tileset, brush);
@@ -35,10 +39,10 @@ image.onload = function () {
let entrancePicker = new EntrancePointWidget(widgetBar, brush);
widgetBar.addWidget(entrancePicker);
document.body.appendChild(widgetBar.getElement());
let mouse = new Mouse();
let mainbar = new MainMenu('mainbar');
let menuFile = new MenuGroup('Datei');
@@ -48,6 +52,11 @@ image.onload = function () {
mainbar.addMenuGroup(menuFile);
let menuEdit = new MenuGroup('Bearbeiten');
menuEdit.addMenuEntry(new MainMenuEntry('Zeilen einfügen...', TilorswiftAddRowsClickedEvent));
menuEdit.addMenuEntry(new MainMenuEntry('Spalten einfügen...', TilorswiftAddColumnsClickedEvent));
mainbar.addMenuGroup(menuEdit);
document.body.appendChild(mainbar.getElement());
window.addEventListener(
@@ -91,7 +100,35 @@ image.onload = function () {
}
);
/* Prevent Firefox's default drag and drop for images */
window.addEventListener(
TilorswiftEvent.ADD_ROWS_CLICKED,
() => {
new DialogAddRows();
}
);
window.addEventListener(
TilorswiftEvent.ADD_COLUMNS_CLICKED,
() => {
new DialogAddColumns();
}
);
window.addEventListener(
TilorswiftEvent.ADD_ROWS,
function (event) {
terrain.addRows(event.beforeRow, event.rowCount);
}
);
window.addEventListener(
TilorswiftEvent.ADD_COLUMNS,
function (event) {
terrain.addColumns(event.beforeColumn, event.columnCount);
}
);
/* Prevents Firefox's annoying default drag and drop behavior for images */
document.addEventListener(
'dragstart',
function (event) {
@@ -102,8 +139,9 @@ image.onload = function () {
window.addEventListener(
TilorswiftEvent.MENU_SAVE_CLICKED,
function () {
Tilorswift.saveTerrainToFile(terrain);
window.dispatchEvent(new TilorswiftSavedEvent());
if (Tilorswift.saveTerrainToFile(terrain)) {
window.dispatchEvent(new TilorswiftSavedEvent());
}
}
);
};