set block

This commit is contained in:
ckcz123 2018-05-25 16:34:47 +08:00
parent 762143e33f
commit 8148971db9
4 changed files with 41 additions and 19 deletions

View File

@ -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为道具IDcallback为成功或失败后的回调。

View File

@ -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);

View File

@ -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");

View File

@ -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;