set block
This commit is contained in:
parent
762143e33f
commit
8148971db9
@ -208,6 +208,10 @@ core.removeBlock(x, y, floorId)
|
||||
否则将该点设置为禁用,以供以后可能的启用事件。
|
||||
|
||||
|
||||
core.setBlock(number, x, y, floorId)
|
||||
改变图块。number为要改变到的图块数字,x和y为坐标,floorId为楼层ID,可忽略表示当前楼层。
|
||||
|
||||
|
||||
core.useItem(itemId, callback)
|
||||
尝试使用某个道具。itemId为道具ID,callback为成功或失败后的回调。
|
||||
|
||||
|
||||
@ -687,6 +687,11 @@ core.prototype.removeBlockByIds = function (floorId, ids) {
|
||||
core.maps.removeBlockByIds(floorId, ids);
|
||||
}
|
||||
|
||||
////// 改变图块 //////
|
||||
core.prototype.setBlock = function (number, x, y, floorId) {
|
||||
core.maps.setBlock(number, x, y, floorId);
|
||||
}
|
||||
|
||||
////// 添加一个全局动画 //////
|
||||
core.prototype.addGlobalAnimate = function (block) {
|
||||
core.maps.addGlobalAnimate(block);
|
||||
|
||||
@ -396,24 +396,7 @@ events.prototype.doAction = function() {
|
||||
x=core.calValue(data.loc[0]);
|
||||
y=core.calValue(data.loc[1]);
|
||||
}
|
||||
var floorId = data.floorId||core.status.floorId;
|
||||
var originBlock=core.getBlock(x,y,floorId,false);
|
||||
var block = core.maps.initBlock(x,y,data.number);
|
||||
core.maps.addInfo(block);
|
||||
core.maps.addEvent(block,x,y,core.floors[floorId].events[x+","+y]);
|
||||
core.maps.addChangeFloor(block,x,y,core.floors[floorId].changeFloor[x+","+y]);
|
||||
if (core.isset(block.event)) {
|
||||
if (originBlock==null) {
|
||||
core.status.maps[floorId].blocks.push(block);
|
||||
}
|
||||
else {
|
||||
originBlock.block.id = data.number;
|
||||
originBlock.block.event = block.event;
|
||||
}
|
||||
if (floorId==core.status.floorId) {
|
||||
core.drawMap(floorId);
|
||||
}
|
||||
}
|
||||
core.setBlock(data.number, x, y, data.floorId);
|
||||
this.doAction();
|
||||
break;
|
||||
}
|
||||
@ -872,10 +855,16 @@ events.prototype.openDoor = function (id, x, y, needKey, callback) {
|
||||
core.stopAutomaticRoute();
|
||||
var speed=30;
|
||||
var doorId = id;
|
||||
if (!(doorId.substring(doorId.length-4)=="Door")) {
|
||||
if (doorId.length<4 || doorId.substring(doorId.length-4)!="Door") {
|
||||
doorId=doorId+"Door";
|
||||
speed=70;
|
||||
}
|
||||
// 不存在门
|
||||
if (!core.isset(core.material.icons.animates[doorId])) {
|
||||
if (core.isset(callback)) callback();
|
||||
return;
|
||||
}
|
||||
|
||||
var key = id.replace("Door", "Key");
|
||||
if (needKey && (key=="specialKey" || core.isset(core.material.items[key]))) {
|
||||
var key = id.replace("Door", "Key");
|
||||
|
||||
24
libs/maps.js
24
libs/maps.js
@ -774,6 +774,30 @@ maps.prototype.removeBlockByIds = function (floorId, ids) {
|
||||
});
|
||||
}
|
||||
|
||||
////// 改变图块 //////
|
||||
maps.prototype.setBlock = function (number, x, y, floorId) {
|
||||
floorId = floorId || core.status.floorId;
|
||||
if (!core.isset(number) || !core.isset(x) || !core.isset(y)) return;
|
||||
|
||||
var originBlock=core.getBlock(x,y,floorId,false);
|
||||
var block = core.maps.initBlock(x,y,number);
|
||||
core.maps.addInfo(block);
|
||||
core.maps.addEvent(block,x,y,core.floors[floorId].events[x+","+y]);
|
||||
core.maps.addChangeFloor(block,x,y,core.floors[floorId].changeFloor[x+","+y]);
|
||||
if (core.isset(block.event)) {
|
||||
if (originBlock==null) {
|
||||
core.status.maps[floorId].blocks.push(block);
|
||||
}
|
||||
else {
|
||||
originBlock.block.id = data.number;
|
||||
originBlock.block.event = block.event;
|
||||
}
|
||||
if (floorId==core.status.floorId) {
|
||||
core.drawMap(floorId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
////// 添加一个全局动画 //////
|
||||
maps.prototype.addGlobalAnimate = function (b) {
|
||||
if (main.mode=='editor' && main.editor.disableGlobalAnimate) return;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user