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 updateTile = "updateTile"
|
||||||
|
|
||||||
|
|
||||||
export const isUpdateTileEvent =
|
export const isUpdateTileEvent = tg.isArray(
|
||||||
new tg.IsInterface().withProperties({
|
new tg.IsInterface().withProperties({
|
||||||
x: tg.isNumber,
|
x: tg.isNumber,
|
||||||
y: tg.isNumber,
|
y: tg.isNumber,
|
||||||
tile: tg.isUnion(tg.isNumber, tg.isString),
|
tile: tg.isUnion(tg.isNumber, tg.isString),
|
||||||
layer: 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.
|
* 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 => {
|
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) {
|
if (layer) {
|
||||||
const tile = layer.getTileAt(event.x, event.y)
|
const tile = layer.getTileAt(eventTile.x, eventTile.y)
|
||||||
if (typeof event.tile == "string") {
|
if (typeof eventTile.tile == "string") {
|
||||||
const tileIndex = this.getIndexForTileType(event.tile);
|
const tileIndex = this.getIndexForTileType(eventTile.tile);
|
||||||
if (tileIndex) {
|
if (tileIndex) {
|
||||||
tile.index = tileIndex
|
tile.index = tileIndex
|
||||||
} else {
|
} else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
tile.index = event.tile
|
tile.index = eventTile.tile
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.scene.scene.sys.game.events.emit("contextrestored")
|
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) {
|
for (const tileset of this.mapFile.tilesets) {
|
||||||
if (tileset.tiles) {
|
if (tileset.tiles) {
|
||||||
for (const tilesetTile of tileset.tiles) {
|
for (const tilesetTile of tileset.tiles) {
|
||||||
@ -908,7 +910,7 @@ ${escapedMessage}
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return undefined
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
private getMapDirUrl(): string {
|
private getMapDirUrl(): string {
|
||||||
|
Loading…
Reference in New Issue
Block a user