listening to lockGroupMessage on front
This commit is contained in:
@@ -6,6 +6,7 @@ import {
|
||||
EmoteCallback,
|
||||
EntersCallback,
|
||||
LeavesCallback,
|
||||
LockGroupCallback,
|
||||
MovesCallback,
|
||||
PlayerDetailsUpdatedCallback,
|
||||
} from "_Model/Zone";
|
||||
@@ -22,6 +23,7 @@ import {
|
||||
VariableMessage,
|
||||
VariableWithTagMessage,
|
||||
ServerToClientMessage,
|
||||
LockGroupMessage,
|
||||
} from "../Messages/generated/messages_pb";
|
||||
import { ProtobufUtils } from "../Model/Websocket/ProtobufUtils";
|
||||
import { RoomSocket, ZoneSocket } from "src/RoomManager";
|
||||
@@ -66,6 +68,7 @@ export class GameRoom {
|
||||
onMoves: MovesCallback,
|
||||
onLeaves: LeavesCallback,
|
||||
onEmote: EmoteCallback,
|
||||
onLockGroup: LockGroupCallback,
|
||||
onPlayerDetailsUpdated: PlayerDetailsUpdatedCallback
|
||||
) {
|
||||
// A zone is 10 sprites wide.
|
||||
@@ -76,6 +79,7 @@ export class GameRoom {
|
||||
onMoves,
|
||||
onLeaves,
|
||||
onEmote,
|
||||
onLockGroup,
|
||||
onPlayerDetailsUpdated
|
||||
);
|
||||
}
|
||||
@@ -90,6 +94,7 @@ export class GameRoom {
|
||||
onMoves: MovesCallback,
|
||||
onLeaves: LeavesCallback,
|
||||
onEmote: EmoteCallback,
|
||||
onLockGroup: LockGroupCallback,
|
||||
onPlayerDetailsUpdated: PlayerDetailsUpdatedCallback
|
||||
): Promise<GameRoom> {
|
||||
const mapDetails = await GameRoom.getMapDetails(roomUrl);
|
||||
@@ -105,6 +110,7 @@ export class GameRoom {
|
||||
onMoves,
|
||||
onLeaves,
|
||||
onEmote,
|
||||
onLockGroup,
|
||||
onPlayerDetailsUpdated
|
||||
);
|
||||
|
||||
@@ -544,6 +550,12 @@ export class GameRoom {
|
||||
this.positionNotifier.emitEmoteEvent(user, emoteEventMessage);
|
||||
}
|
||||
|
||||
public emitLockGroupMessage(user: User, lockGroupMessage: LockGroupMessage) {
|
||||
console.log("D2 GAME ROOM EMIT LOCK GROUP MESSAGE");
|
||||
console.log(lockGroupMessage.getGroupid());
|
||||
this.positionNotifier.emitLockGroupEvent(user, lockGroupMessage);
|
||||
}
|
||||
|
||||
public addRoomListener(socket: RoomSocket) {
|
||||
this.roomListeners.add(socket);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import {
|
||||
EmoteCallback,
|
||||
EntersCallback,
|
||||
LeavesCallback,
|
||||
LockGroupCallback,
|
||||
MovesCallback,
|
||||
PlayerDetailsUpdatedCallback,
|
||||
Zone,
|
||||
@@ -20,7 +21,7 @@ import { Movable } from "_Model/Movable";
|
||||
import { PositionInterface } from "_Model/PositionInterface";
|
||||
import { ZoneSocket } from "../RoomManager";
|
||||
import { User } from "../Model/User";
|
||||
import { EmoteEventMessage, SetPlayerDetailsMessage } from "../Messages/generated/messages_pb";
|
||||
import { EmoteEventMessage, LockGroupMessage, SetPlayerDetailsMessage } from "../Messages/generated/messages_pb";
|
||||
|
||||
interface ZoneDescriptor {
|
||||
i: number;
|
||||
@@ -50,6 +51,7 @@ export class PositionNotifier {
|
||||
private onUserMoves: MovesCallback,
|
||||
private onUserLeaves: LeavesCallback,
|
||||
private onEmote: EmoteCallback,
|
||||
private onLockGroup: LockGroupCallback,
|
||||
private onPlayerDetailsUpdated: PlayerDetailsUpdatedCallback
|
||||
) {}
|
||||
|
||||
@@ -111,6 +113,7 @@ export class PositionNotifier {
|
||||
this.onUserMoves,
|
||||
this.onUserLeaves,
|
||||
this.onEmote,
|
||||
this.onLockGroup,
|
||||
this.onPlayerDetailsUpdated,
|
||||
i,
|
||||
j
|
||||
@@ -137,6 +140,14 @@ export class PositionNotifier {
|
||||
zone.emitEmoteEvent(emoteEventMessage);
|
||||
}
|
||||
|
||||
public emitLockGroupEvent(user: User, lockGroupMessage: LockGroupMessage) {
|
||||
const zoneDesc = this.getZoneDescriptorFromCoordinates(user.getPosition().x, user.getPosition().y);
|
||||
const zone = this.getZone(zoneDesc.i, zoneDesc.j);
|
||||
console.log("D3 emit from ZONE");
|
||||
console.log(lockGroupMessage.getGroupid());
|
||||
zone.emitLockGroupEvent(lockGroupMessage);
|
||||
}
|
||||
|
||||
public *getAllUsersInSquareAroundZone(zone: Zone): Generator<User> {
|
||||
const zoneDescriptor = this.getZoneDescriptorFromCoordinates(zone.x, zone.y);
|
||||
for (const d of getNearbyDescriptorsMatrix(zoneDescriptor)) {
|
||||
|
||||
@@ -7,12 +7,14 @@ import {
|
||||
EmoteEventMessage,
|
||||
SetPlayerDetailsMessage,
|
||||
PlayerDetailsUpdatedMessage,
|
||||
LockGroupMessage,
|
||||
} from "../Messages/generated/messages_pb";
|
||||
|
||||
export type EntersCallback = (thing: Movable, fromZone: Zone | null, listener: ZoneSocket) => void;
|
||||
export type MovesCallback = (thing: Movable, position: PositionInterface, listener: ZoneSocket) => void;
|
||||
export type LeavesCallback = (thing: Movable, newZone: Zone | null, listener: ZoneSocket) => void;
|
||||
export type EmoteCallback = (emoteEventMessage: EmoteEventMessage, listener: ZoneSocket) => void;
|
||||
export type LockGroupCallback = (lockGroupMessage: LockGroupMessage, listener: ZoneSocket) => void;
|
||||
export type PlayerDetailsUpdatedCallback = (
|
||||
playerDetailsUpdatedMessage: PlayerDetailsUpdatedMessage,
|
||||
listener: ZoneSocket
|
||||
@@ -27,6 +29,7 @@ export class Zone {
|
||||
private onMoves: MovesCallback,
|
||||
private onLeaves: LeavesCallback,
|
||||
private onEmote: EmoteCallback,
|
||||
private onLockGroup: LockGroupCallback,
|
||||
private onPlayerDetailsUpdated: PlayerDetailsUpdatedCallback,
|
||||
public readonly x: number,
|
||||
public readonly y: number
|
||||
@@ -108,6 +111,13 @@ export class Zone {
|
||||
}
|
||||
}
|
||||
|
||||
public emitLockGroupEvent(lockGroupMessage: LockGroupMessage) {
|
||||
console.log("D4 ZONE ON LOCK GROUP CALLBACK");
|
||||
for (const listener of this.listeners) {
|
||||
this.onLockGroup(lockGroupMessage, listener);
|
||||
}
|
||||
}
|
||||
|
||||
public updatePlayerDetails(user: User, playerDetails: SetPlayerDetailsMessage) {
|
||||
const playerDetailsUpdatedMessage = new PlayerDetailsUpdatedMessage();
|
||||
playerDetailsUpdatedMessage.setUserid(user.id);
|
||||
|
||||
Reference in New Issue
Block a user