Merge pull request #505 from thecodingmachine/fixFrameLocalStorage
Manage Local Storage customers player error
This commit is contained in:
commit
e5138e1c03
1
front/src/Exception/TextureError.ts
Normal file
1
front/src/Exception/TextureError.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export class TextureError extends Error{}
|
@ -3,6 +3,7 @@ import {SpeechBubble} from "./SpeechBubble";
|
|||||||
import BitmapText = Phaser.GameObjects.BitmapText;
|
import BitmapText = Phaser.GameObjects.BitmapText;
|
||||||
import Container = Phaser.GameObjects.Container;
|
import Container = Phaser.GameObjects.Container;
|
||||||
import Sprite = Phaser.GameObjects.Sprite;
|
import Sprite = Phaser.GameObjects.Sprite;
|
||||||
|
import {TextureError} from "../../Exception/TextureError";
|
||||||
|
|
||||||
export interface PlayerResourceDescriptionInterface {
|
export interface PlayerResourceDescriptionInterface {
|
||||||
name: string,
|
name: string,
|
||||||
@ -94,6 +95,9 @@ export abstract class Character extends Container {
|
|||||||
|
|
||||||
public addTextures(textures: string[], frame?: string | number): void {
|
public addTextures(textures: string[], frame?: string | number): void {
|
||||||
for (const texture of textures) {
|
for (const texture of textures) {
|
||||||
|
if(!this.scene.textures.exists(texture)){
|
||||||
|
throw new TextureError('texture not found');
|
||||||
|
}
|
||||||
const sprite = new Sprite(this.scene, 0, 0, texture, frame);
|
const sprite = new Sprite(this.scene, 0, 0, texture, frame);
|
||||||
sprite.setInteractive({useHandCursor: true});
|
sprite.setInteractive({useHandCursor: true});
|
||||||
this.add(sprite);
|
this.add(sprite);
|
||||||
@ -106,7 +110,9 @@ export abstract class Character extends Container {
|
|||||||
});
|
});
|
||||||
})
|
})
|
||||||
// Needed, otherwise, animations are not handled correctly.
|
// Needed, otherwise, animations are not handled correctly.
|
||||||
this.scene.sys.updateList.add(sprite);
|
if(this.scene) {
|
||||||
|
this.scene.sys.updateList.add(sprite);
|
||||||
|
}
|
||||||
this.sprites.set(texture, sprite);
|
this.sprites.set(texture, sprite);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -152,10 +158,7 @@ export abstract class Character extends Container {
|
|||||||
if (moving && (!sprite.anims.currentAnim || sprite.anims.currentAnim.key !== direction)) {
|
if (moving && (!sprite.anims.currentAnim || sprite.anims.currentAnim.key !== direction)) {
|
||||||
sprite.play(texture+'-'+direction, true);
|
sprite.play(texture+'-'+direction, true);
|
||||||
} else if (!moving) {
|
} else if (!moving) {
|
||||||
/*if (this.anims.currentAnim) {
|
sprite.anims.play(texture + '-' + direction, true);
|
||||||
this.anims.stop();
|
|
||||||
}*/
|
|
||||||
sprite.play(texture+'-'+direction, true);
|
|
||||||
sprite.anims.stop();
|
sprite.anims.stop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -229,7 +232,9 @@ export abstract class Character extends Container {
|
|||||||
this.scene.events.removeListener('postupdate', this.postupdate.bind(this));
|
this.scene.events.removeListener('postupdate', this.postupdate.bind(this));
|
||||||
}
|
}
|
||||||
for (const sprite of this.sprites.values()) {
|
for (const sprite of this.sprites.values()) {
|
||||||
this.scene.sys.updateList.remove(sprite);
|
if(this.scene) {
|
||||||
|
this.scene.sys.updateList.remove(sprite);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
super.destroy(fromScene);
|
super.destroy(fromScene);
|
||||||
this.playerName.destroy();
|
this.playerName.destroy();
|
||||||
|
@ -63,6 +63,8 @@ import {urlManager} from "../../Url/UrlManager";
|
|||||||
import {PresentationModeIcon} from "../Components/PresentationModeIcon";
|
import {PresentationModeIcon} from "../Components/PresentationModeIcon";
|
||||||
import {ChatModeIcon} from "../Components/ChatModeIcon";
|
import {ChatModeIcon} from "../Components/ChatModeIcon";
|
||||||
import {OpenChatIcon, openChatIconName} from "../Components/OpenChatIcon";
|
import {OpenChatIcon, openChatIconName} from "../Components/OpenChatIcon";
|
||||||
|
import {SelectCharacterScene, SelectCharacterSceneName} from "../Login/SelectCharacterScene";
|
||||||
|
import {TextureError} from "../../Exception/TextureError";
|
||||||
|
|
||||||
export interface GameSceneInitInterface {
|
export interface GameSceneInitInterface {
|
||||||
initPosition: PointInterface|null,
|
initPosition: PointInterface|null,
|
||||||
@ -670,8 +672,12 @@ export class GameScene extends ResizableScene implements CenterListener {
|
|||||||
|
|
||||||
public cleanupClosingScene(): void {
|
public cleanupClosingScene(): void {
|
||||||
// We are completely destroying the current scene to avoid using a half-backed instance when coming back to the same map.
|
// We are completely destroying the current scene to avoid using a half-backed instance when coming back to the same map.
|
||||||
this.connection.closeConnection();
|
if(this.connection) {
|
||||||
this.simplePeer.unregister();
|
this.connection.closeConnection();
|
||||||
|
}
|
||||||
|
if(this.simplePeer) {
|
||||||
|
this.simplePeer.unregister();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private switchLayoutMode(): void {
|
private switchLayoutMode(): void {
|
||||||
@ -818,16 +824,23 @@ export class GameScene extends ResizableScene implements CenterListener {
|
|||||||
createCurrentPlayer(){
|
createCurrentPlayer(){
|
||||||
//initialise player
|
//initialise player
|
||||||
//TODO create animation moving between exit and start
|
//TODO create animation moving between exit and start
|
||||||
this.CurrentPlayer = new Player(
|
try {
|
||||||
this,
|
this.CurrentPlayer = new Player(
|
||||||
this.startX,
|
this,
|
||||||
this.startY,
|
this.startX,
|
||||||
this.playerName,
|
this.startY,
|
||||||
this.characterLayers,
|
this.playerName,
|
||||||
PlayerAnimationNames.WalkDown,
|
this.characterLayers,
|
||||||
false,
|
PlayerAnimationNames.WalkDown,
|
||||||
this.userInputManager
|
false,
|
||||||
);
|
this.userInputManager
|
||||||
|
);
|
||||||
|
}catch (err){
|
||||||
|
if(err instanceof TextureError) {
|
||||||
|
gameManager.leaveGame(this, SelectCharacterSceneName, new SelectCharacterScene());
|
||||||
|
}
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
|
||||||
//create collision
|
//create collision
|
||||||
this.createCollisionWithPlayer();
|
this.createCollisionWithPlayer();
|
||||||
|
Loading…
Reference in New Issue
Block a user