Moving back to using ScenePlugin and adding EntryScene

This commit is contained in:
David Négrier 2020-10-12 18:59:49 +02:00
parent 2852f204f5
commit 0731bd39e5
6 changed files with 65 additions and 32 deletions

View file

@ -14,18 +14,10 @@ export class GameManager {
private playerName!: string;
private characterLayers!: string[];
private startRoom!:Room;
private sceneManager!: Phaser.Scenes.SceneManager;
public async init(sceneManager: Phaser.Scenes.SceneManager) {
this.sceneManager = sceneManager;
try {
this.startRoom = await connectionManager.initGameConnexion();
} catch (e) {
this.sceneManager.start(FourOFourSceneName, {
url: window.location.pathname.toString()
});
}
this.loadMap(this.startRoom.url, this.startRoom.ID);
public async init(scenePlugin: Phaser.Scenes.ScenePlugin) {
this.startRoom = await connectionManager.initGameConnexion();
this.loadMap(this.startRoom.url, this.startRoom.ID, scenePlugin);
}
public setPlayerName(name: string): void {
@ -49,12 +41,13 @@ export class GameManager {
}
public loadMap(mapUrl: string, roomID: string): void {
public loadMap(mapUrl: string, roomID: string, scenePlugin: Phaser.Scenes.ScenePlugin): void {
console.log('Loading map '+roomID+' at url '+mapUrl);
const gameIndex = this.sceneManager.getIndex(roomID);
const gameIndex = scenePlugin.getIndex(mapUrl);
if(gameIndex === -1){
const game : Phaser.Scene = GameScene.createFromUrl(mapUrl, roomID);
this.sceneManager.add(roomID, game, false);
console.log('Adding scene '+mapUrl);
scenePlugin.add(mapUrl, game, false);
}
}
@ -65,8 +58,9 @@ export class GameManager {
return mapUrlStart.substring(startPos, endPos);
}
public async goToStartingMap() {
this.sceneManager.start(this.startRoom.ID, {startLayerName: 'global'});
public async goToStartingMap(scenePlugin: Phaser.Scenes.ScenePlugin) {
console.log('Starting scene '+this.startRoom.url);
scenePlugin.start(this.startRoom.url, {startLayerName: 'global'});
}
}