Name of map users
authorgparant <g.parant@thecodingmachine.com>
Sun, 3 May 2020 20:24:14 +0000 (22:24 +0200)
committergparant <g.parant@thecodingmachine.com>
Sun, 3 May 2020 20:24:14 +0000 (22:24 +0200)
 - Add name on user
 - Delete NonPlayer class not used

back/src/Controller/IoSocketController.ts
back/src/Model/Websocket/ExSocketInterface.ts
back/src/Model/Websocket/ExtRoom.ts
back/src/Model/Websocket/Message.ts
front/dist/resources/style/style.css
front/src/Connexion.ts
front/src/Phaser/Entity/PlayableCaracter.ts
front/src/Phaser/Game/GameScene.ts
front/src/Phaser/NonPlayer/NonPlayer.ts [deleted file]
front/src/Phaser/Player/Player.ts

index 7db6b0597da2daf2260a2fac15fa313178a38b5c..c18b9e68687f132ce56118c8d73ac02b97f2ae5b 100644 (file)
@@ -215,6 +215,7 @@ export class IoSocketController {
         socket.position = message.position;
         socket.roomId = message.roomId;
         socket.userId = message.userId;
+        socket.name = message.name;
     }
 
     refreshUserPosition() {
index 4d1d9fee5a16c2448825e356d6130019f1c0f853..dbc02385f18baf7a35c4e6d3561463d36bad26bd 100644 (file)
@@ -6,5 +6,6 @@ export interface ExSocketInterface extends Socket {
     roomId: string;
     webRtcRoomId: string;
     userId: string;
+    name: string;
     position: PointInterface;
 }
\ No newline at end of file
index 0cbe2f61e086e9f8c9e43c45bbe8d722c2227d34..49a6197c11b29139f8919e8db695bf3d40c0b9a0 100644 (file)
@@ -9,27 +9,28 @@ export class ExtRooms implements ExtRoomsInterface{
     [room: string]: SocketIO.Room;
 }
 
-let RefreshUserPositionFunction = function(rooms : ExtRooms, Io: socketIO.Server){
+let RefreshUserPositionFunction = function(rooms : ExtRooms, Io: socketIO.Server) {
     let clients = Io.clients();
     let socketsKey = Object.keys(Io.clients().sockets);
 
     //create mapping with all users in all rooms
     let mapPositionUserByRoom = new Map();
-    for(let i = 0; i < socketsKey.length; i++){
+    for (let i = 0; i < socketsKey.length; i++) {
         let socket = clients.sockets[socketsKey[i]] as ExSocketInterface;
-        if(!socket.position){
+        if (!socket.position) {
             continue;
         }
         let data = {
-            userId : socket.userId,
-            roomId : socket.roomId,
-            position : socket.position,
+            userId: socket.userId,
+            roomId: socket.roomId,
+            position: socket.position,
+            name: socket.name,
         };
         let dataArray = <any>[];
-        if(mapPositionUserByRoom.get(data.roomId)){
+        if (mapPositionUserByRoom.get(data.roomId)) {
             dataArray = mapPositionUserByRoom.get(data.roomId);
             dataArray.push(data);
-        }else{
+        } else {
             dataArray = [data];
         }
         mapPositionUserByRoom.set(data.roomId, dataArray);
index da265464699a08ac76713728624d077b09a042f7..0409a8d2b5eab7182cf131b1f99242fcd57218c0 100644 (file)
@@ -1,6 +1,7 @@
 export class Message {
     userId: string;
     roomId: string;
+    name: string;
 
     constructor(data: any) {
         if (!data.userId || !data.roomId) {
@@ -8,12 +9,14 @@ export class Message {
         }
         this.userId = data.userId;
         this.roomId = data.roomId;
+        this.name = data.name;
     }
 
     toJson() {
         return {
             userId: this.userId,
-            roomId: this.roomId
+            roomId: this.roomId,
+            name: this.name
         }
     }
 }
\ No newline at end of file
index 58c32bb7495c77c4e53faa8b2ec804f0bfeb22a7..04de491cc7cea00c2e6826f7e94ff2637b04c888 100644 (file)
@@ -49,8 +49,8 @@ video{
     cursor: pointer;
     position: absolute;
     border: solid 0px black;
-    width: 64px;
-    height: 64px;
+    width: 44px;
+    height: 44px;
     background: #666;
     box-shadow: 2px 2px 24px #444;
     border-radius: 48px;
@@ -68,20 +68,20 @@ video{
 }
 .btn-micro{
     transition: all .3s;
-    right: 10px;
+    right: 44px;
 }
 .btn-video{
     transition: all .2s;
-    right: 114px;
+    right: 134px;
 }
 /*.btn-call{
     transition: all .1s;
     left: 0px;
 }*/
 .btn-cam-action div img{
-    height: 32px;
-    width: 40px;
-    top: calc(48px - 32px);
-    left: calc(48px - 35px);
+    height: 22px;
+    width: 30px;
+    top: calc(48px - 37px);
+    left: calc(48px - 41px);
     position: relative;
 }
\ No newline at end of file
index 56531b67c2ff2fd892e8cd4ad649e9e481e19bae..ecf58091ba8e522b39cc61f7e27214ec1bedd74a 100644 (file)
@@ -17,16 +17,19 @@ enum EventMessage{
 class Message {
     userId: string;
     roomId: string;
+    name: string;
 
-    constructor(userId : string, roomId : string) {
+    constructor(userId : string, roomId : string, name: string) {
         this.userId = userId;
         this.roomId = roomId;
+        this.name = name;
     }
 
     toJson() {
         return {
             userId: this.userId,
             roomId: this.roomId,
+            name: this.name
         }
     }
 }
@@ -64,14 +67,15 @@ class Point implements PointInterface{
 export interface MessageUserPositionInterface {
     userId: string;
     roomId: string;
+    name: string;
     position: PointInterface;
 }
 
 class MessageUserPosition extends Message implements MessageUserPositionInterface{
     position: PointInterface;
 
-    constructor(userId : string, roomId : string, point : Point) {
-        super(userId, roomId);
+    constructor(userId : string, roomId : string, point : Point, name: string) {
+        super(userId, roomId, name);
         this.position = point;
     }
 
@@ -106,7 +110,8 @@ class ListMessageUserPosition {
                     userPosition.position.x,
                     userPosition.position.y,
                     userPosition.position.direction
-                )
+                ),
+                userPosition.name
             ));
         });
     }
@@ -187,7 +192,7 @@ export class Connexion implements ConnexionInterface {
      * @param roomId
      */
     joinARoom(roomId: string): void {
-        let messageUserPosition = new MessageUserPosition(this.userId, this.startedRoom, new Point(0, 0));
+        let messageUserPosition = new MessageUserPosition(this.userId, this.startedRoom, new Point(0, 0), this.email);
         this.socket.emit(EventMessage.JOIN_ROOM, messageUserPosition.toString());
     }
 
@@ -201,7 +206,7 @@ export class Connexion implements ConnexionInterface {
         if(!this.socket){
             return;
         }
-        let messageUserPosition = new MessageUserPosition(this.userId, ROOM[0], new Point(x, y, direction));
+        let messageUserPosition = new MessageUserPosition(this.userId, ROOM[0], new Point(x, y, direction), this.email);
         this.socket.emit(EventMessage.USER_POSITION, messageUserPosition.toString());
     }
 
index aaf53224dcabc8e70cde69ecda43cce8c3f2b1cd..fdbe449616097a6b4c10c6f2205ad967c8830292 100644 (file)
@@ -42,7 +42,11 @@ export class PlayableCaracter extends Phaser.Physics.Arcade.Sprite {
         if(this.bubble) {
             this.bubble.moveBubble(this.x, this.y);
         }
-        this.playerName.setPosition(this.x, this.y - 25);
+        this.updatePlayerNamePosition(this.x, this.y);
+    }
+
+    updatePlayerNamePosition(x: number, y: number){
+        this.playerName.setPosition(x, y - 25);
     }
 
     stop(){
@@ -59,4 +63,9 @@ export class PlayableCaracter extends Phaser.Physics.Arcade.Sprite {
             this.bubble = null;
         }, 3000)
     }
+
+    destroy(fromScene?: boolean): void {
+        super.destroy(fromScene);
+        this.playerName.destroy();
+    }
 }
index e09123ebe919354927afc40acb535ff07753a908..98b3b693ba125552aa58cf777c541513caf358c9 100644 (file)
@@ -258,7 +258,7 @@ export class GameScene extends Phaser.Scene implements GameSceneInterface{
             this,
             MessageUserPosition.position.x,
             MessageUserPosition.position.y,
-            'Foo'
+            MessageUserPosition.name
         );
         player.initAnimation();
         this.MapPlayers.add(player);
diff --git a/front/src/Phaser/NonPlayer/NonPlayer.ts b/front/src/Phaser/NonPlayer/NonPlayer.ts
deleted file mode 100644 (file)
index 4291750..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-import {PlayableCaracter} from "../Entity/PlayableCaracter";
-import {Textures} from "../Game/GameScene";
-import {UserInputEvent} from "../UserInput/UserInputManager";
-import {Player} from "../Player/Player";
-import {MessageUserPositionInterface} from "../../Connexion";
-import {playAnimation} from "../Player/Animation";
-
-export class NonPlayer extends PlayableCaracter {
-
-    isFleeing: boolean = false;
-    fleeingDirection:any = null //todo create a vector class
-
-    constructor(scene: Phaser.Scene, x: number, y: number, name: string) {
-        super(scene, x, y, Textures.Player, name, 1);
-        this.setSize(32, 32); //edit the hitbox to better match the character model
-    }
-
-
-    updatePosition(MessageUserPosition : MessageUserPositionInterface){
-        playAnimation(this, MessageUserPosition.position.direction);
-        this.setX(MessageUserPosition.position.x);
-        this.setY(MessageUserPosition.position.y);
-    }
-
-    fleeFrom(player:Player) {
-        if (this.isFleeing) return;
-        this.say("Don't touch me!");
-        this.isFleeing = true;
-
-        setTimeout(() => {
-            this.say("Feww, I escaped.");
-            this.isFleeing = false
-            this.fleeingDirection = null
-        }, 3000);
-
-        let vectorX = this.x - player.x;
-        let vectorY = this.y - player.y;
-        this.fleeingDirection = {x: vectorX, y: vectorY}
-    }
-}
index 59971cf2f32b161157cdd248409d90325579d504..d13feed4d677e98597e0719ea5822c2161ab079c 100644 (file)
@@ -100,5 +100,6 @@ export class Player extends PlayableCaracter implements CurrentGamerInterface, G
         playAnimation(this, MessageUserPosition.position.direction);
         this.setX(MessageUserPosition.position.x);
         this.setY(MessageUserPosition.position.y);
+        this.updatePlayerNamePosition(MessageUserPosition.position.x, MessageUserPosition.position.y);
     }
 }