sharePosition(x: number, y: number, direction: string, moving: boolean): void;
- positionOfAllUser(): void;
-
/*webrtc*/
sendWebrtcSignal(signal: any, roomId: string, userId?: string, receiverId?: string): void;
*/
connectSocketServer(): Promise<ConnectionInterface>{
//listen event
- this.positionOfAllUser();
this.disconnectServer();
this.errorMessage();
this.groupUpdatedOrCreated();
this.socket.emit(EventMessage.USER_POSITION, point);
}
- /**
- * The data sent is an array with information for each user :
- * [
- * {
- * userId: <string>,
- * position: {
- * x : <number>,
- * y : <number>,
- * direction: <string>,
- * moving: <bool>
- * }
- * },
- * ...
- * ]
- **/
- positionOfAllUser(): void {
- this.socket.on(EventMessage.USER_POSITION, (message: string) => {
- let dataList = message;
- let UserPositions : Array<any> = Object.values(dataList);
- let listMessageUserPosition = new ListMessageUserPosition(UserPositions[0], UserPositions[1]);
- this.GameManager.shareUserPosition(listMessageUserPosition);
- });
- }
-
- onUserJoins(): void {
+ private onUserJoins(): void {
this.socket.on(EventMessage.JOIN_ROOM, (message: MessageUserJoined) => {
this.GameManager.onUserJoins(message);
});
}
- onUserMoved(): void {
+ private onUserMoved(): void {
this.socket.on(EventMessage.USER_MOVED, (message: MessageUserMovedInterface) => {
this.GameManager.onUserMoved(message);
});
}
- onUserLeft(): void {
+ private onUserLeft(): void {
this.socket.on(EventMessage.USER_LEFT, (userId: string) => {
this.GameManager.onUserLeft(userId);
});
return this.socket.on(EventMessage.WEBRTC_SIGNAL, callback);
}
- errorMessage(): void {
+ private errorMessage(): void {
this.socket.on(EventMessage.MESSAGE_ERROR, (message: string) => {
console.error(EventMessage.MESSAGE_ERROR, message);
})
}
- disconnectServer(): void {
+ private disconnectServer(): void {
this.socket.on(EventMessage.CONNECT_ERROR, () => {
this.GameManager.switchToDisconnectedScene();
});
this.currentGameScene.removePlayer(userId);
}
- /**
- * Share position in game
- * @param ListMessageUserPosition
- * @deprecated
- */
- shareUserPosition(ListMessageUserPosition: ListMessageUserPositionInterface): void {
- if (this.status === StatusGameManagerEnum.IN_PROGRESS) {
- return;
- }
- try {
- this.currentGameScene.shareUserPosition(ListMessageUserPosition.listUsersPosition)
- } catch (e) {
- console.error(e);
- }
- }
-
initUsersPosition(usersPosition: MessageUserPositionInterface[]): void {
// Shall we wait for room to be loaded?
/*if (this.status === StatusGameManagerEnum.IN_PROGRESS) {
})
}
- /**
- * Share position in scene
- * @param UsersPosition
- * @deprecated
- */
- shareUserPosition(UsersPosition : Array<MessageUserPositionInterface>): void {
- this.updateOrCreateMapPlayer(UsersPosition);
- }
-
- /**
- * Create new player and clean the player on the map
- * @param UsersPosition
- */
- updateOrCreateMapPlayer(UsersPosition : Array<MessageUserPositionInterface>){
- if(!this.CurrentPlayer){
- return;
- }
-
- let currentPlayerId = this.GameManager.getPlayerId();
-
- //add or create new user
- UsersPosition.forEach((userPosition : MessageUserPositionInterface) => {
- if(userPosition.userId === currentPlayerId){
- return;
- }
- let player = this.findPlayerInMap(userPosition.userId);
- if(!player){
- this.addPlayer(userPosition);
- }else{
- player.updatePosition(userPosition.position);
- }
- });
-
- //clean map
- this.MapPlayers.getChildren().forEach((player: GamerInterface) => {
- if(UsersPosition.find((message : MessageUserPositionInterface) => message.userId === player.userId)){
- return;
- }
- player.destroy();
- this.MapPlayers.remove(player);
- });
- }
-
public initUsersPosition(usersPosition: MessageUserPositionInterface[]): void {
if(!this.CurrentPlayer){
console.error('Cannot initiate users list because map is not loaded yet')