refactored to Array of tile

This commit is contained in:
jonny 2021-05-10 01:21:37 +02:00
parent bed45a8310
commit 8db72d2dfd
2 changed files with 17 additions and 14 deletions

View File

@ -3,13 +3,14 @@ import * as tg from "generic-type-guard";
export const updateTile = "updateTile"
export const isUpdateTileEvent =
export const isUpdateTileEvent = tg.isArray(
new tg.IsInterface().withProperties({
x: tg.isNumber,
y: tg.isNumber,
tile: tg.isUnion(tg.isNumber, tg.isString),
layer: tg.isUnion(tg.isNumber, tg.isString)
}).get();
}).get()
);
/**
* A message sent from the game to the iFrame when a user enters or leaves a zone marked with the "zone" property.
*/

View File

@ -868,18 +868,20 @@ ${escapedMessage}
}));
this.iframeSubscriptionList.push(iframeListener.updateTileEvent.subscribe(event => {
const layer = this.Layers.find(layer => layer.layer.name == event.layer)
for (const eventTile of event) {
const layer = this.Layers.find(layer => layer.layer.name == eventTile.layer)
if (layer) {
const tile = layer.getTileAt(event.x, event.y)
if (typeof event.tile == "string") {
const tileIndex = this.getIndexForTileType(event.tile);
const tile = layer.getTileAt(eventTile.x, eventTile.y)
if (typeof eventTile.tile == "string") {
const tileIndex = this.getIndexForTileType(eventTile.tile);
if (tileIndex) {
tile.index = tileIndex
} else {
return
}
} else {
tile.index = event.tile
tile.index = eventTile.tile
}
}
this.scene.scene.sys.game.events.emit("contextrestored")
}
@ -898,7 +900,7 @@ ${escapedMessage}
}
private getIndexForTileType(tileType: string): number | undefined {
private getIndexForTileType(tileType: string): number | null {
for (const tileset of this.mapFile.tilesets) {
if (tileset.tiles) {
for (const tilesetTile of tileset.tiles) {
@ -908,7 +910,7 @@ ${escapedMessage}
}
}
}
return undefined
return null
}
private getMapDirUrl(): string {