much cleaner approach to group lock update
This commit is contained in:
@@ -48,11 +48,6 @@ export interface GroupCreatedUpdatedMessageInterface {
|
||||
locked: boolean;
|
||||
}
|
||||
|
||||
export interface LockGroupMessageInterface {
|
||||
groupId: number;
|
||||
lock: boolean;
|
||||
}
|
||||
|
||||
export interface GroupUsersUpdateMessageInterface {
|
||||
groupId: number;
|
||||
userIds: number[];
|
||||
|
||||
@@ -40,7 +40,6 @@ import {
|
||||
PositionMessage_Direction,
|
||||
SetPlayerDetailsMessage as SetPlayerDetailsMessageTsProto,
|
||||
PingMessage as PingMessageTsProto,
|
||||
LockGroupMessage,
|
||||
} from "../Messages/ts-proto-generated/messages";
|
||||
import { Subject } from "rxjs";
|
||||
|
||||
@@ -102,9 +101,6 @@ export class RoomConnection implements RoomConnection {
|
||||
private readonly _groupUsersUpdateMessageStream = new Subject<GroupUsersUpdateMessageInterface>();
|
||||
public readonly groupUsersUpdateMessageStream = this._groupUsersUpdateMessageStream.asObservable();
|
||||
|
||||
private readonly _lockGroupMessageStream = new Subject<LockGroupMessage>();
|
||||
public readonly lockGroupMessageStream = this._lockGroupMessageStream.asObservable();
|
||||
|
||||
private readonly _groupDeleteMessageStream = new Subject<GroupDeleteMessageTsProto>();
|
||||
public readonly groupDeleteMessageStream = this._groupDeleteMessageStream.asObservable();
|
||||
|
||||
@@ -268,10 +264,6 @@ export class RoomConnection implements RoomConnection {
|
||||
this._emoteEventMessageStream.next(subMessage.emoteEventMessage);
|
||||
break;
|
||||
}
|
||||
case "lockGroupMessage": {
|
||||
this._lockGroupMessageStream.next(subMessage.lockGroupMessage);
|
||||
break;
|
||||
}
|
||||
case "playerDetailsUpdatedMessage": {
|
||||
this._playerDetailsUpdatedMessageStream.next(subMessage.playerDetailsUpdatedMessage);
|
||||
break;
|
||||
|
||||
@@ -51,7 +51,6 @@ import { PathfindingManager } from "../../Utils/PathfindingManager";
|
||||
import { ActivatablesManager } from "./ActivatablesManager";
|
||||
import type {
|
||||
GroupCreatedUpdatedMessageInterface,
|
||||
LockGroupMessageInterface,
|
||||
MessageUserMovedInterface,
|
||||
MessageUserPositionInterface,
|
||||
OnConnectInterface,
|
||||
@@ -134,11 +133,6 @@ interface DeleteGroupEventInterface {
|
||||
groupId: number;
|
||||
}
|
||||
|
||||
interface LockGroupEventInterface {
|
||||
type: "LockGroupEvent";
|
||||
event: LockGroupMessageInterface;
|
||||
}
|
||||
|
||||
interface PlayerDetailsUpdatedInterface {
|
||||
type: "PlayerDetailsUpdated";
|
||||
details: PlayerDetailsUpdatedMessageInterface;
|
||||
@@ -163,7 +157,6 @@ export class GameScene extends DirtyScene {
|
||||
| UserMovedEventInterface
|
||||
| GroupCreatedUpdatedEventInterface
|
||||
| DeleteGroupEventInterface
|
||||
| LockGroupEventInterface
|
||||
| PlayerDetailsUpdatedInterface
|
||||
>();
|
||||
private initPosition: PositionInterface | null = null;
|
||||
@@ -808,10 +801,6 @@ export class GameScene extends DirtyScene {
|
||||
}
|
||||
});
|
||||
|
||||
this.connection.lockGroupMessageStream.subscribe((message) => {
|
||||
this.lockGroup(message);
|
||||
});
|
||||
|
||||
this.connection.onServerDisconnected(() => {
|
||||
console.log("Player disconnected from server. Reloading scene.");
|
||||
this.cleanupClosingScene();
|
||||
@@ -1847,10 +1836,6 @@ ${escapedMessage}
|
||||
currentPlayerGroupLockStateStore.set(undefined);
|
||||
break;
|
||||
}
|
||||
case "LockGroupEvent": {
|
||||
this.doLockGroup(event.event);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
const tmp: never = event;
|
||||
}
|
||||
@@ -2049,22 +2034,6 @@ ${escapedMessage}
|
||||
this.groups.delete(groupId);
|
||||
}
|
||||
|
||||
lockGroup(event: LockGroupMessageInterface): void {
|
||||
this.pendingEvents.enqueue({
|
||||
type: "LockGroupEvent",
|
||||
event,
|
||||
});
|
||||
}
|
||||
|
||||
doLockGroup(event: LockGroupMessageInterface): void {
|
||||
const group = this.groups.get(event.groupId);
|
||||
if (!group) {
|
||||
return;
|
||||
}
|
||||
currentPlayerGroupLockStateStore.set(event.lock);
|
||||
group.setTexture(event.lock ? "circleSprite-red" : "circleSprite-white");
|
||||
}
|
||||
|
||||
doUpdatePlayerDetails(message: PlayerDetailsUpdatedMessageInterface): void {
|
||||
const character = this.MapPlayersByKey.get(message.userId);
|
||||
if (character === undefined) {
|
||||
|
||||
Reference in New Issue
Block a user