refactored to Array of tile
This commit is contained in:
parent
bed45a8310
commit
8db72d2dfd
@ -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.
|
||||
*/
|
||||
|
@ -868,18 +868,20 @@ ${escapedMessage}
|
||||
}));
|
||||
|
||||
this.iframeSubscriptionList.push(iframeListener.updateTileEvent.subscribe(event => {
|
||||
const layer = this.Layers.find(layer => layer.layer.name == event.layer)
|
||||
if (layer) {
|
||||
const tile = layer.getTileAt(event.x, event.y)
|
||||
if (typeof event.tile == "string") {
|
||||
const tileIndex = this.getIndexForTileType(event.tile);
|
||||
if (tileIndex) {
|
||||
tile.index = tileIndex
|
||||
for (const eventTile of event) {
|
||||
const layer = this.Layers.find(layer => layer.layer.name == eventTile.layer)
|
||||
if (layer) {
|
||||
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 {
|
||||
return
|
||||
tile.index = eventTile.tile
|
||||
}
|
||||
} else {
|
||||
tile.index = event.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 {
|
||||
|
Loading…
Reference in New Issue
Block a user