coverted property map to object
This commit is contained in:
parent
27ccdf165c
commit
c1d9b2c9ed
@ -12,10 +12,7 @@ export class GameMap {
|
|||||||
private lastProperties = new Map<string, string | boolean | number>();
|
private lastProperties = new Map<string, string | boolean | number>();
|
||||||
private callbacks = new Map<string, Array<PropertyChangeCallback>>();
|
private callbacks = new Map<string, Array<PropertyChangeCallback>>();
|
||||||
|
|
||||||
/**
|
private tileSetPropertyMap: { [tilset_firstgid: number]: { [tile_id: number]: Array<ITiledMapLayerProperty> } } = {}
|
||||||
* tileset.firstgid => (Map<tileid,Array<ITiledMapLayerProperty>>)
|
|
||||||
*/
|
|
||||||
private tileSetPropertyMap = new Map<number, Map<number, Array<ITiledMapLayerProperty>>>()
|
|
||||||
public readonly layersIterator: LayersIterator;
|
public readonly layersIterator: LayersIterator;
|
||||||
|
|
||||||
public exitUrls: Array<string> = []
|
public exitUrls: Array<string> = []
|
||||||
@ -24,12 +21,12 @@ export class GameMap {
|
|||||||
this.layersIterator = new LayersIterator(map);
|
this.layersIterator = new LayersIterator(map);
|
||||||
|
|
||||||
for (const tileset of map.tilesets) {
|
for (const tileset of map.tilesets) {
|
||||||
if (!this.tileSetPropertyMap.has(tileset.firstgid)) {
|
if (!this.tileSetPropertyMap[tileset.firstgid]) {
|
||||||
this.tileSetPropertyMap.set(tileset.firstgid, new Map())
|
this.tileSetPropertyMap[tileset.firstgid] = {}
|
||||||
}
|
}
|
||||||
tileset?.tiles?.forEach(tile => {
|
tileset?.tiles?.forEach(tile => {
|
||||||
if (tile.properties) {
|
if (tile.properties) {
|
||||||
this.tileSetPropertyMap.get(tileset.firstgid)?.set(tile.id, tile.properties)
|
this.tileSetPropertyMap[tileset.firstgid][tile.id] = tile.properties
|
||||||
tile.properties.forEach(prop => {
|
tile.properties.forEach(prop => {
|
||||||
if (prop.name == "exitUrl" && typeof prop.value == "string") {
|
if (prop.name == "exitUrl" && typeof prop.value == "string") {
|
||||||
this.exitUrls.push(prop.value);
|
this.exitUrls.push(prop.value);
|
||||||
@ -106,7 +103,7 @@ export class GameMap {
|
|||||||
if (tileIndex) {
|
if (tileIndex) {
|
||||||
const tileset = this.map.tilesets.find(tileset => tileset.firstgid + tileset.tilecount > (tileIndex as number))
|
const tileset = this.map.tilesets.find(tileset => tileset.firstgid + tileset.tilecount > (tileIndex as number))
|
||||||
if (tileset) {
|
if (tileset) {
|
||||||
const tileProperties = this.tileSetPropertyMap.get(tileset?.firstgid)?.get(tileIndex - tileset.firstgid)
|
const tileProperties = this.tileSetPropertyMap[tileset?.firstgid][tileIndex - tileset.firstgid]
|
||||||
if (tileProperties) {
|
if (tileProperties) {
|
||||||
for (const property of tileProperties) {
|
for (const property of tileProperties) {
|
||||||
if (property.value) {
|
if (property.value) {
|
||||||
|
Loading…
Reference in New Issue
Block a user