Merge pull request #362 from thecodingmachine/movenospeak

When a user moves, do not trigger group creation
This commit is contained in:
David Négrier 2020-10-22 16:38:26 +02:00 committed by GitHub
commit 8d0b78072e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 5 deletions

View File

@ -56,7 +56,7 @@ export class GameRoom {
this.anonymous = isRoomAnonymous(roomId); this.anonymous = isRoomAnonymous(roomId);
this.tags = []; this.tags = [];
this.policyType = GameRoomPolicyTypes.ANONYMUS_POLICY; this.policyType = GameRoomPolicyTypes.ANONYMUS_POLICY;
if (this.anonymous) { if (this.anonymous) {
this.roomSlug = extractRoomSlugPublicRoomId(this.roomId); this.roomSlug = extractRoomSlugPublicRoomId(this.roomId);
} else { } else {
@ -65,8 +65,8 @@ export class GameRoom {
this.organizationSlug = organizationSlug; this.organizationSlug = organizationSlug;
this.worldSlug = worldSlug; this.worldSlug = worldSlug;
} }
this.users = new Map<number, User>(); this.users = new Map<number, User>();
this.groups = new Set<Group>(); this.groups = new Set<Group>();
this.connectCallback = connectCallback; this.connectCallback = connectCallback;
@ -138,6 +138,12 @@ export class GameRoom {
if (user.group === undefined) { if (user.group === undefined) {
// If the user is not part of a group: // If the user is not part of a group:
// should he join 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); const closestItem: User|Group|null = this.searchClosestAvailableUserOrGroup(user);
if (closestItem !== null) { if (closestItem !== null) {
@ -275,7 +281,7 @@ export class GameRoom {
return this.itemsState; return this.itemsState;
} }
setViewport(socket : Identificable, viewport: ViewportInterface): Movable[] { setViewport(socket : Identificable, viewport: ViewportInterface): Movable[] {
const user = this.users.get(socket.userId); const user = this.users.get(socket.userId);
if(typeof user === 'undefined') { if(typeof user === 'undefined') {

View File

@ -11,7 +11,7 @@ function createMockUser(userId: number): ExSocketInterface {
} as ExSocketInterface; } as ExSocketInterface;
} }
describe("World", () => { describe("GameRoom", () => {
it("should connect user1 and user2", () => { it("should connect user1 and user2", () => {
let connectCalledNumber: number = 0; let connectCalledNumber: number = 0;
const connect: ConnectCallback = (user: User, group: Group): void => { const connect: ConnectCallback = (user: User, group: Group): void => {