Bgmap & Fgmap events
This commit is contained in:
1 parent
8bc24c50c3
commit
095aedf1e1
9 files changed
+327
-74
No files matched your search
@@ -743,6 +743,11 @@ core.prototype.setBlock = function (number, x, y, floorId) {
|
||||
core.maps.setBlock(number, x, y, floorId);
|
||||
}
|
||||
|
||||
////// 改变图层块 //////
|
||||
core.prototype.setBgFgBlock = function (name, number, x, y, floorId) {
|
||||
core.maps.setBgFgBlock(name, number, x, y, floorId);
|
||||
}
|
||||
|
||||
////// 添加一个全局动画 //////
|
||||
core.prototype.addGlobalAnimate = function (block) {
|
||||
core.maps.addGlobalAnimate(block);
|
||||
|
||||
+32
-2
@@ -399,6 +399,16 @@ events.prototype.doAction = function() {
|
||||
}
|
||||
else this.doAction();
|
||||
break;
|
||||
case "setBlock": // 设置某图块
|
||||
{
|
||||
if (core.isset(data.loc)) {
|
||||
x=core.calValue(data.loc[0]);
|
||||
y=core.calValue(data.loc[1]);
|
||||
}
|
||||
core.setBlock(data.number, x, y, data.floorId);
|
||||
this.doAction();
|
||||
break;
|
||||
}
|
||||
case "showFloorImg": // 显示贴图
|
||||
if (!core.isset(data.loc))
|
||||
data.loc = [x,y];
|
||||
@@ -419,13 +429,33 @@ events.prototype.doAction = function() {
|
||||
core.events.doAction();
|
||||
})
|
||||
break;
|
||||
case "setBlock": // 设置某图块
|
||||
case "showBgFgMap": // 显示图层块
|
||||
if (!core.isset(data.loc))
|
||||
data.loc = [x,y];
|
||||
if ((typeof data.loc[0] == 'number' || typeof data.loc[0] == 'string')
|
||||
&& (typeof data.loc[1] == 'number' || typeof data.loc[1] == 'string'))
|
||||
data.loc = [[core.calValue(data.loc[0]), core.calValue(data.loc[1])]];
|
||||
core.maps.setBgFgMap("show", data.name, data.loc, data.floorId, function() {
|
||||
core.events.doAction();
|
||||
})
|
||||
break;
|
||||
case "hideBgFgMap": // 隐藏图层块
|
||||
if (!core.isset(data.loc))
|
||||
data.loc = [x,y];
|
||||
if ((typeof data.loc[0] == 'number' || typeof data.loc[0] == 'string')
|
||||
&& (typeof data.loc[1] == 'number' || typeof data.loc[1] == 'string'))
|
||||
data.loc = [[core.calValue(data.loc[0]), core.calValue(data.loc[1])]];
|
||||
core.maps.setBgFgMap("hide", data.name, data.loc, data.floorId, function() {
|
||||
core.events.doAction();
|
||||
})
|
||||
break;
|
||||
case "setBgFgBlock": // 设置图层块
|
||||
{
|
||||
if (core.isset(data.loc)) {
|
||||
x=core.calValue(data.loc[0]);
|
||||
y=core.calValue(data.loc[1]);
|
||||
}
|
||||
core.setBlock(data.number, x, y, data.floorId);
|
||||
core.setBgFgBlock(data.name, data.number, x, y, data.floorId);
|
||||
this.doAction();
|
||||
break;
|
||||
}
|
||||
|
||||
+35
-1
@@ -350,7 +350,7 @@ maps.prototype.drawBgFgMap = function (floorId, canvas, name) {
|
||||
var blockImage = core.material.images.terrains;
|
||||
|
||||
var getMapArray = function (name) {
|
||||
var arr = core.floors[floorId][name+"map"] || [];
|
||||
var arr = core.clone(core.floors[floorId][name+"map"] || []);
|
||||
for (var x = 0; x < width; x++) {
|
||||
for (var y = 0; y < height; y++) {
|
||||
arr[y] = arr[y] || [];
|
||||
@@ -992,6 +992,18 @@ maps.prototype.setBlock = function (number, x, y, floorId) {
|
||||
}
|
||||
}
|
||||
|
||||
////// 改变图层块 //////
|
||||
maps.prototype.setBgFgBlock = function (name, number, x, y, floorId) {
|
||||
floorId = floorId || core.status.floorId;
|
||||
if (!core.isset(number) || !core.isset(x) || !core.isset(y)) return;
|
||||
if (x<0 || x>=core.bigmap.width || y<0 || y>=core.bigmap.height) return;
|
||||
if (name!='bg' && name!='fg') return;
|
||||
|
||||
core.setFlag(name+"v_"+floorId+"_"+x+"_"+y, number);
|
||||
if (floorId == core.status.floorId)
|
||||
core.drawMap(floorId);
|
||||
}
|
||||
|
||||
////// 添加一个全局动画 //////
|
||||
maps.prototype.addGlobalAnimate = function (b) {
|
||||
if (main.mode=='editor' && main.editor.disableGlobalAnimate) return;
|
||||
@@ -1140,6 +1152,28 @@ maps.prototype.setFloorImage = function (type, loc, floorId, callback) {
|
||||
}
|
||||
}
|
||||
|
||||
maps.prototype.setBgFgMap = function (type, name, loc, floorId, callback) {
|
||||
if (type!='show') type='hide';
|
||||
if (name!='fg') name='bg';
|
||||
if (typeof loc[0] == 'number' && typeof loc[1] == 'number')
|
||||
loc = [loc];
|
||||
floorId = floorId||core.status.floorId;
|
||||
|
||||
if (loc.length==0) return;
|
||||
loc.forEach(function (t) {
|
||||
var x=t[0], y=t[1];
|
||||
var flag = name+"_"+floorId+"_"+x+"_"+y;
|
||||
core.setFlag(flag, type=='show'?false:true);
|
||||
})
|
||||
|
||||
if (floorId==core.status.floorId) {
|
||||
core.drawMap(floorId, callback);
|
||||
}
|
||||
else {
|
||||
if (core.isset(callback)) callback();
|
||||
}
|
||||
}
|
||||
|
||||
maps.prototype.resetMap = function(floorId) {
|
||||
var floorId = floorId||core.status.floorId;
|
||||
core.status.maps[floorId] = this.loadFloor(floorId);
|
||||
|
||||
Reference in new issue
Block a user