first step to change tile
This commit is contained in:
parent
9cd3ff1d31
commit
6dcb0d3750
5 changed files with 334 additions and 21 deletions
|
@ -1,12 +1,14 @@
|
|||
import * as tg from "generic-type-guard";
|
||||
|
||||
export const isChangeTileEvent =
|
||||
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();
|
||||
tg.isArray(
|
||||
new tg.IsInterface().withProperties({
|
||||
x: tg.isNumber,
|
||||
y: tg.isNumber,
|
||||
tile: tg.isUnion(tg.isNumber, tg.isString),
|
||||
layer: tg.isString
|
||||
}).get()
|
||||
);
|
||||
/**
|
||||
* A message sent from the game to the iFrame when a user enters or leaves a zone marked with the "zone" property.
|
||||
*/
|
||||
|
|
|
@ -890,19 +890,12 @@ ${escapedMessage}
|
|||
this.userInputManager.restoreControls();
|
||||
}))
|
||||
|
||||
/* this.iframeSubscriptionList.push(iframeListener.loadPageStream.subscribe((url: string) => {
|
||||
this.loadNextGame(url).then(() => {
|
||||
this.events.once(EVENT_TYPE.POST_UPDATE, () => {
|
||||
this.onMapExit(url);
|
||||
})
|
||||
})
|
||||
}))*/
|
||||
|
||||
this.iframeSubscriptionList.push(iframeListener.updateTileEvent.subscribe(event => {
|
||||
this.iframeSubscriptionList.push(iframeListener.changeTileStream.subscribe(event => {
|
||||
for (const eventTile of event) {
|
||||
const layer = this.gameMap.findPhaserLayer(eventTile.layer);
|
||||
if (layer) {
|
||||
const tile = layer.getTileAt(eventTile.x, eventTile.y)
|
||||
console.log('layer : ', layer);
|
||||
const tile = layer.getTileAt(eventTile.x, eventTile.y, true)
|
||||
if (typeof eventTile.tile == "string") {
|
||||
const tileIndex = this.getIndexForTileType(eventTile.tile);
|
||||
if (tileIndex) {
|
||||
|
@ -911,11 +904,11 @@ ${escapedMessage}
|
|||
return
|
||||
}
|
||||
} else {
|
||||
tile.index = eventTile.tile
|
||||
tile.index = eventTile.tile //+ firsrtgid du layer
|
||||
}
|
||||
}
|
||||
}
|
||||
this.scene.scene.sys.game.events.emit("contextrestored")
|
||||
//this.dirty = true;
|
||||
}))
|
||||
|
||||
let scriptedBubbleSprite: Sprite;
|
||||
|
|
|
@ -44,9 +44,10 @@ interface WorkAdventureApi {
|
|||
displayBubble(): void;
|
||||
removeBubble(): void;
|
||||
loadSound(url : string): Sound;
|
||||
registerMenuCommand(commandDescriptor: string, callback: (commandDescriptor: string) => void): void
|
||||
getCurrentUser(): Promise<User>
|
||||
getCurrentRoom(): Promise<Room>
|
||||
registerMenuCommand(commandDescriptor: string, callback: (commandDescriptor: string) => void): void;
|
||||
getCurrentUser(): Promise<User>;
|
||||
getCurrentRoom(): Promise<Room>;
|
||||
changeTile(tiles: TileDescriptor[]): void;
|
||||
//loadTileset(name: string, imgUrl : string, tilewidth : number, tileheight : number, margin : number, spacing : number): void;
|
||||
|
||||
onPlayerMove(callback: (playerMovedEvent: HasPlayerMovedEvent) => void): void
|
||||
|
@ -65,6 +66,13 @@ interface Room {
|
|||
startLayer: string | null
|
||||
}
|
||||
|
||||
interface TileDescriptor {
|
||||
x: number
|
||||
y: number
|
||||
tile: number | string
|
||||
layer: string
|
||||
}
|
||||
|
||||
declare global {
|
||||
// eslint-disable-next-line no-var
|
||||
var WA: WorkAdventureApi
|
||||
|
@ -221,6 +229,13 @@ window.WA = {
|
|||
})
|
||||
},
|
||||
|
||||
changeTile(tiles: TileDescriptor[]) {
|
||||
postToParent({
|
||||
type: 'changeTile',
|
||||
data: tiles
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* Send a message in the chat.
|
||||
* Only the local user will receive this message.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue