selectPoint fix bug

This commit is contained in:
ckcz123 2019-05-31 20:12:50 +08:00
parent b15782228a
commit 4391e8cd7d
2 changed files with 15 additions and 17 deletions

View File

@ -734,11 +734,11 @@ function omitedcheckUpdateFunction(event) {
// ------ select point ------
// id: [x, y, floorId]
// id: [x, y, floorId, forceFloor]
var selectPointBlocks = {
"changeFloor_m": ["Number_0", "Number_1", "IdString_0"],
"changeFloor_m": ["Number_0", "Number_1", "IdString_0", true],
"jumpHero_s": ["PosString_0", "PosString_1"],
"changeFloor_s": ["PosString_0", "PosString_1", "IdString_0"],
"changeFloor_s": ["PosString_0", "PosString_1", "IdString_0", true],
"changePos_0_s": ["PosString_0", "PosString_1"],
"battle_1_s": ["PosString_0", "PosString_1"],
"openDoor_s": ["PosString_0", "PosString_1", "IdString_0"],
@ -758,26 +758,23 @@ function omitedcheckUpdateFunction(event) {
}
editor_blockly.selectPoint = function () {
var block = Blockly.selected, x_area = null, y_area = null, floor_area = null;
var block = Blockly.selected, arr = null;
var floorId = editor.currentFloorId, pos = editor.pos, x = pos.x, y = pos.y;
if (block != null && block.type in selectPointBlocks) {
var arr = selectPointBlocks[block.type];
x_area = arr[0];
y_area = arr[1];
floor_area = arr[2];
var xv = parseInt(block.getFieldValue(x_area)), yv = parseInt(block.getFieldValue(y_area));
arr = selectPointBlocks[block.type];
var xv = parseInt(block.getFieldValue(arr[0])), yv = parseInt(block.getFieldValue(arr[1]));
if (!isNaN(xv)) x = xv;
if (!isNaN(yv)) y = yv;
if (floor_area != null) floorId = block.getFieldValue(floor_area) || floorId;
if (arr[2] != null) floorId = block.getFieldValue(arr[2]) || floorId;
}
uievent.selectPoint(floorId, x, y, floor_area == null, function (fv, xv, yv) {
if (x_area == null || y_area == null) return;
if (floor_area != null) {
if (fv != editor.currentFloorId) block.setFieldValue(fv, floor_area);
else block.setFieldValue("", floor_area);
uievent.selectPoint(floorId, x, y, arr && arr[2] == null, function (fv, xv, yv) {
if (!arr) return;
if (arr[2] != null) {
if (fv != editor.currentFloorId) block.setFieldValue(fv, arr[2]);
else block.setFieldValue(arr[3] ? fv : "", arr[2]);
}
block.setFieldValue(xv, x_area);
block.setFieldValue(yv, y_area);
block.setFieldValue(xv+"", arr[0]);
block.setFieldValue(yv+"", arr[1]);
});
}

View File

@ -483,6 +483,7 @@ uievent.updateSelectPoint = function (redraw) {
}
uievent.setPoint = function (floorId, x, y) {
if (core.floorIds.indexOf(floorId) == -1) floorId = editor.currentFloorId;
uievent.values.floorId = floorId;
uievent.elements.selectFloor.value = floorId;
uievent.values.x = x != null ? x : ( uievent.values.x || 0);