workadventure/front/src/Phaser/Login/AbstractCharacterScene.ts

42 lines
1.6 KiB
TypeScript
Raw Normal View History

2021-09-06 14:27:54 +02:00
import { ResizableScene } from "./ResizableScene";
import { localUserStore } from "../../Connexion/LocalUserStore";
import type { BodyResourceDescriptionInterface } from "../Entity/PlayerTextures";
import { loadCustomTexture } from "../Entity/PlayerTexturesLoadingManager";
import type { CharacterTexture } from "../../Connexion/LocalUser";
2022-02-01 11:44:39 +01:00
import type CancelablePromise from "cancelable-promise";
export abstract class AbstractCharacterScene extends ResizableScene {
2021-09-06 14:27:54 +02:00
loadCustomSceneSelectCharacters(): Promise<BodyResourceDescriptionInterface[]> {
const textures = this.getTextures();
2022-02-01 11:44:39 +01:00
const promises: CancelablePromise<BodyResourceDescriptionInterface>[] = [];
if (textures) {
for (const texture of textures) {
if (texture.level === -1) {
continue;
}
promises.push(loadCustomTexture(this.load, texture));
}
}
2021-09-06 14:27:54 +02:00
return Promise.all(promises);
}
2021-09-06 14:27:54 +02:00
loadSelectSceneCharacters(): Promise<BodyResourceDescriptionInterface[]> {
const textures = this.getTextures();
2022-02-01 11:44:39 +01:00
const promises: CancelablePromise<BodyResourceDescriptionInterface>[] = [];
if (textures) {
for (const texture of textures) {
if (texture.level !== -1) {
continue;
}
promises.push(loadCustomTexture(this.load, texture));
}
}
2021-09-06 14:27:54 +02:00
return Promise.all(promises);
}
2021-09-06 14:27:54 +02:00
private getTextures(): CharacterTexture[] | undefined {
const localUser = localUserStore.getLocalUser();
return localUser?.textures;
}
}