Merge remote-tracking branch 'github.com/master' into webrtc
authorgparant <g.parant@thecodingmachine.com>
Wed, 29 Apr 2020 15:37:17 +0000 (17:37 +0200)
committergparant <g.parant@thecodingmachine.com>
Wed, 29 Apr 2020 15:37:17 +0000 (17:37 +0200)
# Conflicts:
# front/src/Connexion.ts
# front/src/Phaser/Game/GameManager.ts
# front/src/Phaser/Game/GameScene.ts
# front/src/index.ts

1  2 
front/src/Connexion.ts
front/src/Phaser/Game/GameManager.ts

index 77c9619f48f3102fecd1ff08cf4a2c4185e64d34,d3c4b8754af26eecf528cc05c8685896016151dc..dc48833c461f6fadcc81bf88a05fb0ddffc96149
@@@ -2,16 -2,8 +2,16 @@@ import {GameManager} from "./Phaser/Gam
  
  const SocketIo = require('socket.io-client');
  import Axios from "axios";
- import {API_URL} from "./Enum/EnvironmentVariable";
+ import {API_URL, ROOM} from "./Enum/EnvironmentVariable";
  
 +enum EventMessage{
 +    WEBRTC_SIGNAL = "webrtc-signal",
 +    WEBRTC_START = "webrtc-start",
 +    JOIN_ROOM = "join-room",
 +    USER_POSITION = "user-position",
 +    MESSAGE_ERROR = "message-error"
 +}
 +
  class Message {
      userId: string;
      roomId: string;
@@@ -109,40 -99,27 +109,40 @@@ class ListMessageUserPosition 
          });
      }
  }
 +
  export interface ConnexionInterface {
 -    socket : any;
 -    token : string;
 -    email : string;
 +    socket: any;
 +    token: string;
 +    email: string;
      userId: string;
 -    startedRoom : string;
 -    createConnexion() : Promise<any>;
 -    joinARoom(roomId : string) : void;
 -    sharePosition(x : number, y : number, direction : string) : void;
 -    positionOfAllUser() : void;
 +    startedRoom: string;
 +
 +    createConnexion(): Promise<any>;
 +
 +    joinARoom(roomId: string): void;
 +
-     sharePosition(roomId: string, x: number, y: number, direction: string): void;
++    sharePosition(x: number, y: number, direction: string): void;
 +
 +    positionOfAllUser(): void;
 +
 +    /*webrtc*/
 +    sendWebrtcSignal(signal: any, roomId: string, userId?: string, receiverId?: string): void;
 +
 +    receiveWebrtcSignal(callBack: Function): void;
 +
 +    receiveWebrtcStart(callBack: Function): void;
  }
 -export class Connexion implements ConnexionInterface{
 -    socket : any;
 -    token : string;
 -    email : string;
 +
 +export class Connexion implements ConnexionInterface {
 +    socket: any;
 +    token: string;
 +    email: string;
      userId: string;
 -    startedRoom : string;
 +    startedRoom: string;
  
-     GameManager: GameManagerInterface;
+     GameManager: GameManager;
  
-     constructor(email: string, GameManager: GameManagerInterface) {
+     constructor(email : string, GameManager: GameManager) {
          this.email = email;
          this.GameManager = GameManager;
      }
       * @param y
       * @param direction
       */
-     sharePosition(roomId: string, x: number, y: number, direction: string = "none"): void {
-         if (!this.socket) {
+     sharePosition(x : number, y : number, direction : string = "none") : void{
+         if(!this.socket){
              return;
          }
-         let messageUserPosition = new MessageUserPosition(this.userId, roomId, new Point(x, y, direction));
+         let messageUserPosition = new MessageUserPosition(this.userId, ROOM[0], new Point(x, y, direction));
 -        this.socket.emit('user-position', messageUserPosition.toString());
 +        this.socket.emit(EventMessage.USER_POSITION, messageUserPosition.toString());
      }
  
      /**
index 52f0805685c8c82dd133b09705b9d4947234f580,916840fcf890a47f84a7bcc7b5b527a44e202f4e..1877b29a003c8fbf948ce8ee6a887306a48f9b7a
@@@ -1,8 -1,6 +1,8 @@@
- import {GameSceneInterface, GameScene} from "./GameScene";
+ import {GameScene} from "./GameScene";
  import {ROOM} from "../../Enum/EnvironmentVariable"
  import {Connexion, ConnexionInterface, ListMessageUserPositionInterface} from "../../Connexion";
 +import {SimplePeerInterface, SimplePeer} from "../../WebRtc/SimplePeer";
 +import {LogincScene} from "../Login/LogincScene";
  
  export enum StatusGameManagerEnum {
      IN_PROGRESS = 1,
  
  export let ConnexionInstance : ConnexionInterface;
  
- export interface GameManagerInterface {
-     GameScenes: Array<GameSceneInterface>;
-     status : number;
-     SimplePeer: SimplePeerInterface;
-     createCurrentPlayer() : void;
-     shareUserPosition(ListMessageUserPosition : ListMessageUserPositionInterface): void;
-     connect(email : string) : Promise<any>;
- }
- export class GameManager implements GameManagerInterface {
-     GameScenes: Array<GameSceneInterface> = [];
+ export class GameManager {
      status: number;
+     private ConnexionInstance: Connexion;
+     private currentGameScene: GameScene;
 +    SimplePeer : SimplePeerInterface;
  
      constructor() {
          this.status = StatusGameManagerEnum.IN_PROGRESS;
-         this.configureGame();
      }
-     /**
-      *
-      * @param email
-      */
-     connect(email : string) : Promise<any> {
-         ConnexionInstance = new Connexion(email, this);
-         return ConnexionInstance.createConnexion().then(() => {
+     
+     connect(email:string) {
+         this.ConnexionInstance = new Connexion(email, this);
+         ConnexionInstance = this.ConnexionInstance;
 -        return this.ConnexionInstance.createConnexion()
++        return this.ConnexionInstance.createConnexion().then(() => {
 +            this.SimplePeer = new SimplePeer(ConnexionInstance);
 +        });
      }
 -    
 +
-     /**
-      * permit to config rooms
-      */
-     configureGame() {
-         //create login scene
-         let LoginScene = new LogincScene();
-         this.GameScenes.push(LoginScene)
-         //create scene
-         ROOM.forEach((roomId) => {
-             let newGame = new GameScene(roomId, this);
-             this.GameScenes.push((newGame as GameSceneInterface));
-         });
+     setCurrentGameScene(gameScene: GameScene) {
+         this.currentGameScene = gameScene;
      }
  
      /**
-      *
+      * Permit to create player in started room
       */
      createCurrentPlayer(): void {
          //Get started room send by the backend