diff --git a/_server/editor.js b/_server/editor.js index fcc93f00..66cf7328 100644 --- a/_server/editor.js +++ b/_server/editor.js @@ -53,6 +53,7 @@ function editor() { lastUsedCtx: document.getElementById('lastUsed').getContext('2d'), lockMode: document.getElementById('lockMode'), gameInject: document.getElementById('gameInject'), + undoFloor: document.getElementById('undoFloor'), maps: ['bgmap', 'fgmap', 'map'], canvas: ['bg', 'fg'], }; @@ -107,6 +108,9 @@ function editor() { // 最近使用的图块 lastUsedType: null, lastUsed: [], + + // 最近访问的楼层 + recentFloors: [] }; window.onerror = function (msg, url, lineNo, columnNo, error) { diff --git a/_server/editor_listen.js b/_server/editor_listen.js index 12bba2a9..bfdaa38f 100644 --- a/_server/editor_listen.js +++ b/_server/editor_listen.js @@ -35,6 +35,7 @@ editor_listen_wrapper = function (editor) { editor.dom.pasteLoc.onmouseup = editor.uifunctions.pasteLoc_click editor.dom.clearEvent.onmouseup = editor.uifunctions.clearEvent_click editor.dom.clearLoc.onmouseup = editor.uifunctions.clearLoc_click + editor.dom.undoFloor.onclick = editor.uifunctions.undoFloor_click editor.dom.lastUsed.onmouseup = editor.uifunctions.lastUsed_click; editor.dom.lastUsed.oncontextmenu = function (e) { e.preventDefault(); } diff --git a/_server/editor_mappanel.js b/_server/editor_mappanel.js index 7e5d9292..9fdf7461 100644 --- a/_server/editor_mappanel.js +++ b/_server/editor_mappanel.js @@ -366,6 +366,7 @@ editor_mappanel_wrapper = function (editor) { editor_mode.onmode('nextChange'); editor_mode.onmode('floor'); editor.dom.selectFloor.value = toId; + editor.uivalues.recentFloors.push(editor.currentFloorId); editor.changeFloor(toId); } @@ -381,6 +382,16 @@ editor_mappanel_wrapper = function (editor) { return false; } + editor.uifunctions.undoFloor_click = function () { + var toId = editor.uivalues.recentFloors.pop(); + if (toId == null || toId == editor.currentFloorId) return; + + editor_mode.onmode('nextChange'); + editor_mode.onmode('floor'); + editor.dom.selectFloor.value = toId; + editor.changeFloor(toId); + } + /** * 显示右键菜单 */ @@ -809,6 +820,7 @@ editor_mappanel_wrapper = function (editor) { selectFloor.onchange = function () { editor_mode.onmode('nextChange'); editor_mode.onmode('floor'); + editor.uivalues.recentFloors.push(editor.currentFloorId); editor.changeFloor(selectFloor.value); } }); diff --git a/_server/editor_ui.js b/_server/editor_ui.js index 67f32555..79e9bb61 100644 --- a/_server/editor_ui.js +++ b/_server/editor_ui.js @@ -171,6 +171,7 @@ editor_ui_wrapper = function (editor) { editor_mode.onmode('nextChange'); editor_mode.onmode('floor'); document.getElementById('selectFloor').value = toId; + editor.uivalues.recentFloors.push(editor.currentFloorId); editor.changeFloor(toId); } return; diff --git a/editor-mobile.html b/editor-mobile.html index 25289e44..7f8a0d75 100644 --- a/editor-mobile.html +++ b/editor-mobile.html @@ -376,6 +376,7 @@ +