From b7854dfb90880aefa6416b1a31b586c88daa8b9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Thu, 22 Oct 2020 16:15:30 +0200 Subject: [PATCH] When a user moves, do not trigger group creation In order to avoid triggering group creation when walking next to someone we should avoid creating a group unless the user stops next to the other members of the group. --- back/src/Model/GameRoom.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/back/src/Model/GameRoom.ts b/back/src/Model/GameRoom.ts index e0474e1d..5b42f418 100644 --- a/back/src/Model/GameRoom.ts +++ b/back/src/Model/GameRoom.ts @@ -56,7 +56,7 @@ export class GameRoom { this.anonymous = isRoomAnonymous(roomId); this.tags = []; this.policyType = GameRoomPolicyTypes.ANONYMUS_POLICY; - + if (this.anonymous) { this.roomSlug = extractRoomSlugPublicRoomId(this.roomId); } else { @@ -65,8 +65,8 @@ export class GameRoom { this.organizationSlug = organizationSlug; this.worldSlug = worldSlug; } - - + + this.users = new Map(); this.groups = new Set(); this.connectCallback = connectCallback; @@ -138,6 +138,12 @@ export class GameRoom { if (user.group === undefined) { // If the user is not part of a group: // should he join a group? + + // If the user is moving, don't try to join + if (user.getPosition().moving) { + return; + } + const closestItem: User|Group|null = this.searchClosestAvailableUserOrGroup(user); if (closestItem !== null) { @@ -275,7 +281,7 @@ export class GameRoom { return this.itemsState; } - + setViewport(socket : Identificable, viewport: ViewportInterface): Movable[] { const user = this.users.get(socket.userId); if(typeof user === 'undefined') {