availabilityStatus info from websocket

This commit is contained in:
Piotr 'pwh' Hanusiak
2022-05-10 15:10:01 +02:00
committed by David Négrier
parent 2b15faf4e8
commit a566f8d661
17 changed files with 86 additions and 53 deletions
@@ -5,7 +5,7 @@ export class PlayerStatusDot extends Phaser.GameObjects.Container {
private statusImage: Phaser.GameObjects.Image;
private statusImageOutline: Phaser.GameObjects.Image;
private status: AvailabilityStatus;
private availabilityStatus: AvailabilityStatus;
private readonly COLORS: Record<AvailabilityStatus, { filling: number; outline: number }> = {
[AvailabilityStatus.AWAY]: { filling: 0xf5931e, outline: 0x875d13 },
@@ -19,7 +19,7 @@ export class PlayerStatusDot extends Phaser.GameObjects.Container {
constructor(scene: Phaser.Scene, x: number, y: number) {
super(scene, x, y);
this.status = AvailabilityStatus.ONLINE;
this.availabilityStatus = AvailabilityStatus.ONLINE;
this.statusImage = this.scene.add.image(0, 0, "iconStatusIndicatorInside");
this.statusImageOutline = this.scene.add.image(0, 0, "iconStatusIndicatorOutline");
@@ -31,11 +31,11 @@ export class PlayerStatusDot extends Phaser.GameObjects.Container {
this.scene.add.existing(this);
}
public setStatus(status: AvailabilityStatus, instant: boolean = false): void {
if (this.status === status || status === AvailabilityStatus.UNCHANGED) {
public setAvailabilityStatus(availabilityStatus: AvailabilityStatus, instant: boolean = false): void {
if (this.availabilityStatus === availabilityStatus || availabilityStatus === AvailabilityStatus.UNCHANGED) {
return;
}
this.status = status;
this.availabilityStatus = availabilityStatus;
if (instant) {
this.redraw();
} else {
@@ -61,7 +61,7 @@ export class PlayerStatusDot extends Phaser.GameObjects.Container {
}
private redraw(): void {
const colors = this.COLORS[this.status];
const colors = this.COLORS[this.availabilityStatus];
this.statusImage.setTintFill(colors.filling);
this.statusImageOutline.setTintFill(colors.outline);
}
+2 -2
View File
@@ -236,8 +236,8 @@ export abstract class Character extends Container implements OutlineableInterfac
this.talkIcon.show(show, forceClose);
}
public setStatus(status: AvailabilityStatus, instant: boolean = false): void {
this.statusDot.setStatus(status, instant);
public setAvailabilityStatus(availabilityStatus: AvailabilityStatus, instant: boolean = false): void {
this.statusDot.setAvailabilityStatus(availabilityStatus, instant);
}
public addCompanion(name: string, texturePromise?: CancelablePromise<string>): void {
+11 -9
View File
@@ -687,7 +687,8 @@ export class GameScene extends DirtyScene {
right: camera.scrollX + camera.width,
bottom: camera.scrollY + camera.height,
},
this.companion
this.companion,
get(availabilityStatusStore)
)
.then((onConnect: OnConnectInterface) => {
this.connection = onConnect.connection;
@@ -711,7 +712,7 @@ export class GameScene extends DirtyScene {
characterLayers: message.characterLayers,
name: message.name,
position: message.position,
status: message.status,
availabilityStatus: message.availabilityStatus,
visitCardUrl: message.visitCardUrl,
companion: message.companion,
userUuid: message.userUuid,
@@ -889,9 +890,10 @@ export class GameScene extends DirtyScene {
this.tryChangeShowVoiceIndicatorState(this.jitsiDominantSpeaker && this.jitsiParticipantsCount > 1);
});
this.availabilityStatusStoreUnsubscriber = availabilityStatusStore.subscribe((status) => {
this.connection?.emitPlayerStatusChange(status);
this.CurrentPlayer.setStatus(status);
this.availabilityStatusStoreUnsubscriber = availabilityStatusStore.subscribe((availabilityStatus) => {
console.log(availabilityStatus);
this.connection?.emitPlayerStatusChange(availabilityStatus);
this.CurrentPlayer.setAvailabilityStatus(availabilityStatus);
});
this.emoteUnsubscriber = emoteStore.subscribe((emote) => {
@@ -1993,8 +1995,8 @@ ${escapedMessage}
if (addPlayerData.outlineColor !== undefined) {
player.setApiOutlineColor(addPlayerData.outlineColor);
}
if (addPlayerData.status !== undefined) {
player.setStatus(addPlayerData.status, true);
if (addPlayerData.availabilityStatus !== undefined) {
player.setAvailabilityStatus(addPlayerData.availabilityStatus, true);
}
this.MapPlayers.add(player);
this.MapPlayersByKey.set(player.userId, player);
@@ -2145,8 +2147,8 @@ ${escapedMessage}
if (message.details?.showVoiceIndicator !== undefined) {
character.showTalkIcon(message.details?.showVoiceIndicator);
}
if (message.details?.status !== undefined) {
character.setStatus(message.details?.status);
if (message.details?.availabilityStatus !== undefined) {
character.setAvailabilityStatus(message.details?.availabilityStatus);
}
}
+1 -1
View File
@@ -8,7 +8,7 @@ export interface PlayerInterface {
visitCardUrl: string | null;
companion: string | null;
userUuid: string;
status: AvailabilityStatus;
availabilityStatus: AvailabilityStatus;
color?: string;
outlineColor?: number;
}