diff --git a/_server/editor_mappanel.js b/_server/editor_mappanel.js index 8dea8fc0..9e50b957 100644 --- a/_server/editor_mappanel.js +++ b/_server/editor_mappanel.js @@ -112,7 +112,7 @@ editor_mappanel_wrapper = function (editor) { editor.dom.euiCtx.clearRect(0, 0, core.__PIXELS__, core.__PIXELS__); editor.uivalues.stepPostfix = []; editor.uivalues.stepPostfix.push(pos); - editor.uifunctions.fillPos(pos); + if (editor.brushMod == 'line') editor.uifunctions.fillPos(pos); return false; } @@ -168,8 +168,21 @@ editor_mappanel_wrapper = function (editor) { if (pos) { pos.x += pos0.x; pos.y += pos0.y; + if (editor.brushMod == 'line') editor.uifunctions.fillPos(pos); + else { + var x0 = editor.uivalues.stepPostfix[0].x; + var y0 = editor.uivalues.stepPostfix[0].y; + var x1 = pos.x; + var y1 = pos.y; + if (x0 > x1) { x0 ^= x1; x1 ^= x0; x0 ^= x1; }//swap + if (y0 > y1) { y0 ^= y1; y1 ^= y0; y0 ^= y1; }//swap + // draw rect + editor.dom.euiCtx.clearRect(0, 0, editor.dom.euiCtx.canvas.width, editor.dom.euiCtx.canvas.height); + editor.dom.euiCtx.fillStyle = 'rgba(0, 127, 255, 0.4)'; + editor.dom.euiCtx.fillRect(32 * x0 - core.bigmap.offsetX, 32 * y0 - core.bigmap.offsetY, + 32 * (x1 - x0) + 32, 32 * (y1 - y0) + 32); + } editor.uivalues.stepPostfix.push(pos); - editor.uifunctions.fillPos(pos); } return false; } diff --git a/_server/editor_ui.js b/_server/editor_ui.js index 8c295a72..ba99f788 100644 --- a/_server/editor_ui.js +++ b/_server/editor_ui.js @@ -283,6 +283,9 @@ editor_ui_wrapper = function (editor) { uievent.elements.selectPointBox = document.getElementById('selectPointBox'); uievent.elements.body = document.getElementById('uieventBody'); uievent.elements.selectPointButtons = document.getElementById('selectPointButtons'); + uievent.elements.canvas = document.getElementById('uievent'); + uievent.elements.usedFlags = document.getElementById('uieventUsedFlags'); + uievent.elements.usedFlagList = document.getElementById('uieventUsedFlagList'); uievent.confirm = function () { var callback = uievent.values.callback, floorId = uievent.values.floorId, @@ -336,7 +339,12 @@ editor_ui_wrapper = function (editor) { uievent.elements.title.innerText = 'UI绘制预览'; uievent.elements.selectBackground.style.display = 'inline'; uievent.elements.selectBackground.value = 'thumbnail'; + uievent.elements.selectFloor.style.display = 'none'; uievent.elements.selectPointBox.style.display = 'none'; + uievent.elements.canvas.style.display = 'block'; + uievent.elements.usedFlags.style.display = 'none'; + uievent.elements.usedFlagList.style.display = 'none'; + uievent.elements.body.style.overflow = "hidden"; uievent.values.list = list; uievent.drawPreviewUI(); @@ -357,6 +365,10 @@ editor_ui_wrapper = function (editor) { uievent.elements.selectBackground.style.display = 'none'; uievent.elements.selectFloor.style.display = hideFloor ? 'none' : 'inline'; uievent.elements.selectPointBox.style.display = 'block'; + uievent.elements.canvas.style.display = 'block'; + uievent.elements.usedFlags.style.display = 'none'; + uievent.elements.usedFlagList.style.display = 'none'; + uievent.elements.body.style.overflow = "hidden"; // Append children var floors = ""; @@ -464,6 +476,45 @@ editor_ui_wrapper = function (editor) { uievent.setPoint(core.floorIds[index]); } + // ------ 搜索变量出现的位置,也放在uievent好了 ------ // + + uievent.searchUsedFlags = function () { + uievent.isOpen = true; + uievent.elements.div.style.display = 'block'; + uievent.mode = 'searchUsedFlags'; + uievent.elements.selectPoint.style.display = 'none'; + uievent.elements.yes.style.display = 'none'; + uievent.elements.title.innerText = '搜索变量出现的位置'; + uievent.elements.selectBackground.style.display = 'none'; + uievent.elements.selectFloor.style.display = 'none'; + uievent.elements.selectPointBox.style.display = 'none'; + uievent.elements.canvas.style.display = 'none'; + uievent.elements.usedFlags.style.display = 'inline'; + uievent.elements.usedFlagList.style.display = 'block'; + uievent.elements.body.style.overflow = "auto"; + + // build flags + var html = ""; + Object.keys(editor.used_flags).forEach(function (v) { + v = "flag:" + v; + html += ""; + }); + uievent.elements.usedFlags.innerHTML = html; + + uievent.doSearchUsedFlags(); + } + + uievent.doSearchUsedFlags = function () { + var flag = uievent.elements.usedFlags.value; + + var html = "

该变量出现的所有位置如下:

"; + uievent.elements.usedFlagList.innerHTML = html; + } + editor.constructor.prototype.uievent=uievent; } \ No newline at end of file diff --git a/editor.html b/editor.html index 38f0b559..7412a96c 100644 --- a/editor.html +++ b/editor.html @@ -208,12 +208,12 @@
- +
@@ -521,6 +521,7 @@ + @@ -528,6 +529,7 @@
+