Parcourir la source

closes #1497

tags/v0.8.0
Shaun il y a 3 ans
Parent
révision
78897e086d
1 fichiers modifiés avec 39 ajouts et 26 suppressions
  1. +39
    -26
      src/server/world/map.js

+ 39
- 26
src/server/world/map.js Voir le fichier

@@ -311,34 +311,44 @@ module.exports = {
return cell + offset;
},

builders: {
getCellInfo: function (cell) {
let flipX = null;
getCellInfo: function (gid, x, y) {
const cellInfoMsg = {
mapName: this.name,
x,
y,
tilesets: mapFile.tilesets
};
events.emit('onBeforeGetCellInfo', cellInfoMsg);

if ((cell ^ 0x80000000) > 0) {
flipX = true;
cell = cell ^ 0x80000000;
}
const tilesets = cellInfoMsg.tilesets;

let firstGid = 0;
let sheetName = null;
for (let s = 0; s < mapFile.tilesets.length; s++) {
let tileset = mapFile.tilesets[s];
if (tileset.firstgid <= cell) {
sheetName = tileset.name;
firstGid = tileset.firstgid;
}
let flipX = null;

if ((gid ^ 0x80000000) > 0) {
flipX = true;
gid = gid ^ 0x80000000;
}

let firstGid = 0;
let sheetName = null;
for (let s = 0; s < tilesets.length; s++) {
let tileset = tilesets[s];
if (tileset.firstgid <= gid) {
sheetName = tileset.name;
firstGid = tileset.firstgid;
}
}

cell = cell - firstGid + 1;
gid = gid - firstGid + 1;

return {
sheetName,
cell,
flipX
};
},
return {
cell: gid,
sheetName,
flipX
};
},

builders: {
tile: function (info) {
let { x, y, cell, layer: layerName } = info;

@@ -349,7 +359,7 @@ module.exports = {
return;
}

let cellInfo = this.builders.getCellInfo(cell);
let cellInfo = this.getCellInfo(cell, x, y);
let sheetName = cellInfo.sheetName;

const offsetCell = this.getOffsetCellPos(sheetName, cellInfo.cell);
@@ -378,8 +388,11 @@ module.exports = {
cell.properties = objectifyProperties(cell.properties);
cell.polyline = cell.polyline || cell.polygon;

const x = cell.x / mapScale;
const y = (cell.y / mapScale) - 1;

let clientObj = (layerName === 'clientObjects');
let cellInfo = this.builders.getCellInfo(cell.gid);
let cellInfo = this.getCellInfo(cell.gid, x, y);

let name = (cell.name || '');
let objZoneName = name;
@@ -393,8 +406,8 @@ module.exports = {
clientObj: clientObj,
sheetName: cell.has('sheetName') ? cell.sheetName : cellInfo.sheetName,
cell: cell.has('cell') ? cell.cell : cellInfo.cell - 1,
x: cell.x / mapScale,
y: (cell.y / mapScale) - 1,
x,
y,
name: name,
properties: cell.properties || {},
layerName: layerName


Chargement…
Annuler
Enregistrer