little cleanup, added reject for Character snapshot
This commit is contained in:
parent
fb188578da
commit
e43b7a255a
@ -119,19 +119,21 @@ export abstract class Character extends Container {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async getSnapshot(): Promise<HTMLImageElement> {
|
public async getSnapshot(): Promise<HTMLImageElement> {
|
||||||
const bounds = this.getBounds();
|
|
||||||
const rt = this.scene.make.renderTexture({}, false);
|
const rt = this.scene.make.renderTexture({}, false);
|
||||||
for (const sprite of this.sprites.values()) {
|
for (const sprite of this.sprites.values()) {
|
||||||
rt.draw(sprite, sprite.displayWidth * 0.5, sprite.displayHeight * 0.5);
|
rt.draw(sprite, sprite.displayWidth * 0.5, sprite.displayHeight * 0.5);
|
||||||
}
|
}
|
||||||
// TODO: Any way for this to fail? What fallback?
|
return new Promise<HTMLImageElement>((resolve, reject) => {
|
||||||
return new Promise<HTMLImageElement>((resolve) => {
|
try {
|
||||||
rt.snapshot((url) => {
|
rt.snapshot((url) => {
|
||||||
resolve(url as HTMLImageElement); // P.H. NOTE: Exclude Color type
|
resolve(url as HTMLImageElement);
|
||||||
// rt.destroy();
|
rt.destroy();
|
||||||
},
|
},
|
||||||
'image/png',
|
'image/png',
|
||||||
1);
|
1);
|
||||||
|
} catch (error) {
|
||||||
|
reject(error);
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,54 @@
|
|||||||
import type { Subscription } from "rxjs";
|
import type { Subscription } from "rxjs";
|
||||||
|
import AnimatedTiles from "phaser-animated-tiles";
|
||||||
|
import { Queue } from "queue-typescript";
|
||||||
|
import { get } from "svelte/store";
|
||||||
|
|
||||||
|
import { userMessageManager } from "../../Administration/UserMessageManager";
|
||||||
|
import { connectionManager } from "../../Connexion/ConnectionManager";
|
||||||
|
import { CoWebsite, coWebsiteManager } from "../../WebRtc/CoWebsiteManager";
|
||||||
|
import { urlManager } from "../../Url/UrlManager";
|
||||||
|
import { mediaManager } from "../../WebRtc/MediaManager";
|
||||||
|
import { UserInputManager } from "../UserInput/UserInputManager";
|
||||||
|
import { gameManager } from "./GameManager";
|
||||||
|
import { touchScreenManager } from "../../Touch/TouchScreenManager";
|
||||||
|
import { PinchManager } from "../UserInput/PinchManager";
|
||||||
|
import { waScaleManager } from "../Services/WaScaleManager";
|
||||||
|
import { EmoteManager } from "./EmoteManager";
|
||||||
|
import { soundManager } from "./SoundManager";
|
||||||
|
import { SharedVariablesManager } from "./SharedVariablesManager";
|
||||||
|
import { EmbeddedWebsiteManager } from "./EmbeddedWebsiteManager";
|
||||||
|
|
||||||
|
import { lazyLoadPlayerCharacterTextures, loadCustomTexture } from "../Entity/PlayerTexturesLoadingManager";
|
||||||
|
import { lazyLoadCompanionResource } from "../Companion/CompanionTexturesLoadingManager";
|
||||||
|
import { Box, ON_ACTION_TRIGGER_BUTTON } from "../../WebRtc/LayoutManager";
|
||||||
|
import { iframeListener } from "../../Api/IframeListener";
|
||||||
|
import { DEBUG_MODE, JITSI_PRIVATE_MODE, MAX_PER_GROUP, POSITION_DELAY } from "../../Enum/EnvironmentVariable";
|
||||||
|
import { ProtobufClientUtils } from "../../Network/ProtobufClientUtils";
|
||||||
|
import { Room } from "../../Connexion/Room";
|
||||||
|
import { jitsiFactory } from "../../WebRtc/JitsiFactory";
|
||||||
|
import { TextureError } from "../../Exception/TextureError";
|
||||||
|
import { localUserStore } from "../../Connexion/LocalUserStore";
|
||||||
|
import { HtmlUtils } from "../../WebRtc/HtmlUtils";
|
||||||
|
import { SimplePeer } from "../../WebRtc/SimplePeer";
|
||||||
|
import { Loader } from "../Components/Loader";
|
||||||
|
import { RemotePlayer } from "../Entity/RemotePlayer";
|
||||||
|
import { SelectCharacterScene, SelectCharacterSceneName } from "../Login/SelectCharacterScene";
|
||||||
|
import { PlayerAnimationDirections } from "../Player/Animation";
|
||||||
|
import { hasMovedEventName, Player, requestEmoteEventName } from "../Player/Player";
|
||||||
|
import { ErrorSceneName } from "../Reconnecting/ErrorScene";
|
||||||
|
import { ReconnectingSceneName } from "../Reconnecting/ReconnectingScene";
|
||||||
|
import { GameMap } from "./GameMap";
|
||||||
|
import { PlayerMovement } from "./PlayerMovement";
|
||||||
|
import { PlayersPositionInterpolator } from "./PlayersPositionInterpolator";
|
||||||
|
import { worldFullMessageStream } from "../../Connexion/WorldFullMessageStream";
|
||||||
|
import { DirtyScene } from "./DirtyScene";
|
||||||
|
import { TextUtils } from "../Components/TextUtils";
|
||||||
|
import { joystickBaseImg, joystickBaseKey, joystickThumbImg, joystickThumbKey } from "../Components/MobileJoystick";
|
||||||
|
import { StartPositionCalculator } from "./StartPositionCalculator";
|
||||||
|
import { PropertyUtils } from "../Map/PropertyUtils";
|
||||||
|
import { GameMapPropertiesListener } from "./GameMapPropertiesListener";
|
||||||
|
import { analyticsClient } from "../../Administration/AnalyticsClient";
|
||||||
|
import { GameMapProperties } from "./GameMapProperties";
|
||||||
import type {
|
import type {
|
||||||
GroupCreatedUpdatedMessageInterface,
|
GroupCreatedUpdatedMessageInterface,
|
||||||
MessageUserJoined,
|
MessageUserJoined,
|
||||||
@ -18,81 +68,28 @@ import type { AddPlayerInterface } from "./AddPlayerInterface";
|
|||||||
import type { HasPlayerMovedEvent } from "../../Api/Events/HasPlayerMovedEvent";
|
import type { HasPlayerMovedEvent } from "../../Api/Events/HasPlayerMovedEvent";
|
||||||
import type { Character } from '../Entity/Character';
|
import type { Character } from '../Entity/Character';
|
||||||
|
|
||||||
import { userMessageManager } from "../../Administration/UserMessageManager";
|
import { peerStore } from "../../Stores/PeerStore";
|
||||||
import { iframeListener } from "../../Api/IframeListener";
|
import { biggestAvailableAreaStore } from "../../Stores/BiggestAvailableAreaStore";
|
||||||
import { connectionManager } from "../../Connexion/ConnectionManager";
|
import { layoutManagerActionStore } from "../../Stores/LayoutManagerStore";
|
||||||
import { DEBUG_MODE, JITSI_PRIVATE_MODE, MAX_PER_GROUP, POSITION_DELAY } from "../../Enum/EnvironmentVariable";
|
import { playersStore } from "../../Stores/PlayersStore";
|
||||||
import { Queue } from "queue-typescript";
|
import { userWokaPictureStore } from "../../Stores/UserWokaPictureStore";
|
||||||
import { Box, ON_ACTION_TRIGGER_BUTTON } from "../../WebRtc/LayoutManager";
|
import { emoteStore, emoteMenuStore } from "../../Stores/EmoteStore";
|
||||||
import { CoWebsite, coWebsiteManager } from "../../WebRtc/CoWebsiteManager";
|
import { userIsAdminStore } from "../../Stores/GameStore";
|
||||||
import { ProtobufClientUtils } from "../../Network/ProtobufClientUtils";
|
import { contactPageStore } from "../../Stores/MenuStore";
|
||||||
import { Room } from "../../Connexion/Room";
|
import {
|
||||||
import { jitsiFactory } from "../../WebRtc/JitsiFactory";
|
audioManagerFileStore,
|
||||||
import { urlManager } from "../../Url/UrlManager";
|
audioManagerVisibilityStore,
|
||||||
import { TextureError } from "../../Exception/TextureError";
|
} from "../../Stores/AudioManagerStore";
|
||||||
import { localUserStore } from "../../Connexion/LocalUserStore";
|
|
||||||
import { HtmlUtils } from "../../WebRtc/HtmlUtils";
|
import EVENT_TYPE = Phaser.Scenes.Events;
|
||||||
import { mediaManager } from "../../WebRtc/MediaManager";
|
|
||||||
import { SimplePeer } from "../../WebRtc/SimplePeer";
|
|
||||||
import { Loader } from "../Components/Loader";
|
|
||||||
import { lazyLoadPlayerCharacterTextures, loadCustomTexture } from "../Entity/PlayerTexturesLoadingManager";
|
|
||||||
import { RemotePlayer } from "../Entity/RemotePlayer";
|
|
||||||
import { SelectCharacterScene, SelectCharacterSceneName } from "../Login/SelectCharacterScene";
|
|
||||||
import { PlayerAnimationDirections } from "../Player/Animation";
|
|
||||||
import { hasMovedEventName, Player, requestEmoteEventName } from "../Player/Player";
|
|
||||||
import { ErrorSceneName } from "../Reconnecting/ErrorScene";
|
|
||||||
import { ReconnectingSceneName } from "../Reconnecting/ReconnectingScene";
|
|
||||||
import { UserInputManager } from "../UserInput/UserInputManager";
|
|
||||||
import { gameManager } from "./GameManager";
|
|
||||||
import { GameMap } from "./GameMap";
|
|
||||||
import { PlayerMovement } from "./PlayerMovement";
|
|
||||||
import { PlayersPositionInterpolator } from "./PlayersPositionInterpolator";
|
|
||||||
import Texture = Phaser.Textures.Texture;
|
import Texture = Phaser.Textures.Texture;
|
||||||
import Sprite = Phaser.GameObjects.Sprite;
|
import Sprite = Phaser.GameObjects.Sprite;
|
||||||
import CanvasTexture = Phaser.Textures.CanvasTexture;
|
import CanvasTexture = Phaser.Textures.CanvasTexture;
|
||||||
import GameObject = Phaser.GameObjects.GameObject;
|
import GameObject = Phaser.GameObjects.GameObject;
|
||||||
import FILE_LOAD_ERROR = Phaser.Loader.Events.FILE_LOAD_ERROR;
|
|
||||||
import DOMElement = Phaser.GameObjects.DOMElement;
|
import DOMElement = Phaser.GameObjects.DOMElement;
|
||||||
import { worldFullMessageStream } from "../../Connexion/WorldFullMessageStream";
|
|
||||||
import { lazyLoadCompanionResource } from "../Companion/CompanionTexturesLoadingManager";
|
|
||||||
import { DirtyScene } from "./DirtyScene";
|
|
||||||
import { TextUtils } from "../Components/TextUtils";
|
|
||||||
import { touchScreenManager } from "../../Touch/TouchScreenManager";
|
|
||||||
import { PinchManager } from "../UserInput/PinchManager";
|
|
||||||
import { joystickBaseImg, joystickBaseKey, joystickThumbImg, joystickThumbKey } from "../Components/MobileJoystick";
|
|
||||||
import { waScaleManager } from "../Services/WaScaleManager";
|
|
||||||
import { EmoteManager } from "./EmoteManager";
|
|
||||||
import EVENT_TYPE = Phaser.Scenes.Events;
|
|
||||||
|
|
||||||
import AnimatedTiles from "phaser-animated-tiles";
|
|
||||||
import { StartPositionCalculator } from "./StartPositionCalculator";
|
|
||||||
import { soundManager } from "./SoundManager";
|
|
||||||
|
|
||||||
import { peerStore, screenSharingPeerStore } from "../../Stores/PeerStore";
|
|
||||||
import { videoFocusStore } from "../../Stores/VideoFocusStore";
|
|
||||||
import { biggestAvailableAreaStore } from "../../Stores/BiggestAvailableAreaStore";
|
|
||||||
import { SharedVariablesManager } from "./SharedVariablesManager";
|
|
||||||
import { playersStore } from "../../Stores/PlayersStore";
|
|
||||||
import { userWokaPictureStore } from "../../Stores/UserWokaPictureStore";
|
|
||||||
import { chatVisibilityStore } from "../../Stores/ChatStore";
|
|
||||||
import { emoteStore, emoteMenuStore } from "../../Stores/EmoteStore";
|
|
||||||
import {
|
|
||||||
audioManagerFileStore,
|
|
||||||
audioManagerVisibilityStore,
|
|
||||||
audioManagerVolumeStore,
|
|
||||||
} from "../../Stores/AudioManagerStore";
|
|
||||||
|
|
||||||
import { PropertyUtils } from "../Map/PropertyUtils";
|
|
||||||
import Tileset = Phaser.Tilemaps.Tileset;
|
import Tileset = Phaser.Tilemaps.Tileset;
|
||||||
import { userIsAdminStore } from "../../Stores/GameStore";
|
|
||||||
import { layoutManagerActionStore } from "../../Stores/LayoutManagerStore";
|
|
||||||
import { EmbeddedWebsiteManager } from "./EmbeddedWebsiteManager";
|
|
||||||
import { GameMapPropertiesListener } from "./GameMapPropertiesListener";
|
|
||||||
import { analyticsClient } from "../../Administration/AnalyticsClient";
|
|
||||||
import { get } from "svelte/store";
|
|
||||||
import { contactPageStore } from "../../Stores/MenuStore";
|
|
||||||
import { GameMapProperties } from "./GameMapProperties";
|
|
||||||
import SpriteSheetFile = Phaser.Loader.FileTypes.SpriteSheetFile;
|
import SpriteSheetFile = Phaser.Loader.FileTypes.SpriteSheetFile;
|
||||||
|
import FILE_LOAD_ERROR = Phaser.Loader.Events.FILE_LOAD_ERROR;
|
||||||
export interface GameSceneInitInterface {
|
export interface GameSceneInitInterface {
|
||||||
initPosition: PointInterface | null;
|
initPosition: PointInterface | null;
|
||||||
reconnecting: boolean;
|
reconnecting: boolean;
|
||||||
|
@ -11,7 +11,6 @@ function createUserWokaPictureStore() {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
subscribe,
|
subscribe,
|
||||||
// P.H. NOTE: Not clearing the store after reconnecting to the room - is this a problem?
|
|
||||||
connectToRoomConnection: (roomConnection: RoomConnection) => {
|
connectToRoomConnection: (roomConnection: RoomConnection) => {
|
||||||
roomConnection.onUserLeft((userId) => {
|
roomConnection.onUserLeft((userId) => {
|
||||||
update((users) => {
|
update((users) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user