Commit Graph

116 Commits

Author SHA1 Message Date
David Négrier
168697eb46 Adding a GameMap class that helps tracking when the properties of the tiles the user is changes (when the user moves) 2020-08-30 15:44:22 +02:00
David Négrier
044495cf05 Centering character in free space
This commit adds the ability to put the character where there is free space when a discussion is hapening (either in presentation or chat mode)
2020-08-24 14:19:36 +02:00
David Négrier
2e61c2ef62 Getting back code in compilable fashion after huge rebase 2020-08-18 00:12:38 +02:00
David Négrier
6516e621b0 Adding display / hide of layout buttons when a meet start / ends 2020-08-17 16:12:53 +02:00
David Négrier
7fe2cc19c3 Adding buttons to switch mode 2020-08-17 15:20:03 +02:00
David Négrier
88c099fc13 Improving layout
Fixing left-right switch on all cameras (except current player camera)
2020-08-16 23:19:04 +02:00
David Négrier
24fb605f50 Switching to definitely assigned parameters
This allows us to go in "full strict mode" (yeah!)
See https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#strict-class-initialization
2020-08-07 23:39:06 +02:00
David Négrier
bc929615d1 Fixing problem when switching scenes with container 2020-07-29 11:42:18 +02:00
David Négrier
84529d6e99 Propagating customized sprites all over the game 2020-07-28 17:45:55 +02:00
David Négrier
6879418098 Adding a 404 page when resources loading fails 2020-07-07 22:52:22 +02:00
David Négrier
55767f2c78 Fixing image tileset key
If 2 maps share the same tileset name (even if they use 2 different URLs for the tileset), the tileset image will be reused wrongly.

This commit fixes the tileset key to make it equal to the image URL.
2020-07-07 18:22:10 +02:00
David Négrier
67e07c04f8 Fixing loading of tilesets with margin or padding 2020-07-05 17:10:08 +02:00
David Négrier
d78006e106 Fixing memory leak with listeners
The listeners from MediaManager and SimplePeer were never removed, leading to a huge amount of listeners all over the applications when switching regularly of scene.
2020-06-23 15:02:35 +02:00
David Négrier
a5514ce78a Code cleanup and removing exception in favor of console error 2020-06-22 18:42:54 +02:00
David Négrier
407c6db070 Fixing difference between MapKey and scene key (prevented proper caching of resources) 2020-06-22 17:18:24 +02:00
David Négrier
3f927280a6 Lint 2020-06-22 16:11:48 +02:00
David Négrier
9b174836cd Making sure connection is established again EVEN if the tab is not displayed 2020-06-22 16:11:02 +02:00
David Négrier
f88f28db3f Refactoring reconnection: putting it into the GameScene directly. 2020-06-22 15:00:23 +02:00
David Négrier
d785a8a1bf Refactoring connection to be part of a GameScene
Most of the refactoring issues we are seeing are probably due to the fact that we are trying to manipulate a ScenePlugin out of a Scene (the GameManager is not a Scene and holds a reference to a ScenePlugin coming from a Scene that might get invalidated by Phaser 3).
Furthermore, if we want in the future to be able to scale, scenes could be hosted on different servers. Therefore, it makes no sense to have one connexion for the whole application.
Instead, we should have one connexion for each scene.
2020-06-22 11:58:07 +02:00
David Négrier
4496c49621 Fix linting 2020-06-19 18:51:58 +02:00
David Négrier
2b820c7d56 Adding an event queue in the GameScene.
Events are processed only in the 'update' method.
We hope this will solve a number of null pointer errors. See #194
2020-06-19 18:18:43 +02:00
David Négrier
e2be99490b Finishing removing any reference to "any" in the front. 2020-06-19 16:36:40 +02:00
David Négrier
39928b46f9 Removing any in the front 2020-06-19 14:30:34 +02:00
David Négrier
8348d13bfe Fixing use const instead of let 2020-06-19 14:30:34 +02:00
David Négrier
54f2518b5e Enabling stricter lint on front 2020-06-19 14:29:29 +02:00
David Négrier
80fddb3c69 Removing dead code 2020-06-10 16:01:01 +02:00
David Négrier
43e4489d4d Fixing start position on disconnect 2020-06-10 14:57:32 +02:00
David Négrier
5042f2f82c Lint 2020-06-07 23:00:05 +02:00
David Négrier
c0809e28db Adding support for putting the hash in a map referenced in an exit scene. 2020-06-07 22:57:32 +02:00
David Négrier
db3ef81842 Adding the ability to add several entry points
We can now have several start layers and choose an entry point using a # in the URL
2020-06-07 13:23:32 +02:00
David Négrier
b82b13e351 Finalizing strict mode fixes 2020-06-04 18:56:59 +02:00
David Négrier
6f69a62d4d More strict fixes 2020-06-04 18:56:59 +02:00
David Négrier
082a11b0cd Allowing ill defined initializers (because of the way Phaser 3 is designed) 2020-06-04 18:56:59 +02:00
David Négrier
82e2c0d985
Merge pull request #149 from thecodingmachine/multiple_start_positions_in_layer
Allowing several start positions in a given start layer
2020-06-03 11:20:57 +02:00
David Négrier
69d2fa6944 Allowing several start positions in a given start layer
If more than one tile was set in the "start" layer, the last tile would be selected.
Now, the tile is selected at random among available tiles.

Also, a message is issued if no tiles have been put on the "start" layer.
2020-06-03 11:14:04 +02:00
David Négrier
9ddf22d36b Removing GameScene from the list of known GameScene when leaving
This is important because when we come back to the GameScene later, some properties of the GameScene object might be initialized with the values of the previous GameScene.
Like the position if the user previously disconnected.

Closes #146
2020-06-03 10:45:25 +02:00
David Négrier
d72e60610e Adding PlayersPositionInterpolator to interpolate/extrapolate players positions 2020-06-02 13:44:42 +02:00
David Négrier
077b29bfbd Sending position only every 200ms while moving 2020-06-01 22:42:18 +02:00
David Négrier
21576946f0 Commenting out the notion of status in the GameManager
It seems to be useless
2020-05-25 22:37:07 +02:00
David Négrier
17e7f1b37a Removing dead code from previous messaging system
Remvoing messages that were no more used in the new messaging system (the code used to handle the message that sent the position of all users on the front side)
2020-05-25 22:36:44 +02:00
David Négrier
1fa39b0781 Fixing typos.
Replaced connexion with connection and LogincScene with LoginScene
2020-05-24 23:14:12 +02:00
David Négrier
2448fef53a Adding a notion of instances per mapAdding a notion of instances to room
The URL signature becomes:

https://workadventu.re/_/[instance]/[path_to_map.json]

This allows us to create many instances of the same map (and therefore to create several different worlds for different people)

An exit on a map can target another "instance" by passing the "exitInstance" property.
2020-05-23 17:45:49 +02:00
David Négrier
080e08eeef
Merge pull request #122 from thecodingmachine/reconnecting_scene
Adding a special scene to wait for server reconnection
2020-05-23 17:12:36 +02:00
Gregoire Parant
f4ed2e52bf Fix CI 2020-05-23 16:50:17 +02:00
David Négrier
36858f8747 Adding a special scene to wait for server reconnection 2020-05-23 15:43:26 +02:00
Gregoire Parant
ab32021fc0 Fix mediam stream manage and server back down 2020-05-23 14:00:36 +02:00
David Négrier
ab798b1c09 Changing the "Point" notion to add a notion of "moving" in addition to the notion of direction.
Also, refactoring JOIN_ROOM event to add complete position.
2020-05-22 23:04:45 +02:00
David Négrier
f44a44c109 Removing logs 2020-05-20 12:30:17 +02:00
David Négrier
125a4d11af Refactored and optimized messages
Now, when a user moves, only his/her position is sent back to the other users. The position of all users is not sent each time.

The messages sent to the browser are now:

- the list of all users as a return to the join_room event (you can send responses to events in socket.io)
- a "join_room" event sent when a new user joins the room
- a "user_moved" event when a user moved
- a "user_left" event when a user left the room

The GameScene tracks all these events and reacts accordingly.

Also, I made a number of refactoring in the classes and removed the GameSceneInterface that was useless (it was implemented by the LogincScene for no reason at all)
2020-05-19 19:11:12 +02:00
David Négrier
4d1c3517ec When sharing user position, only position is sent now! 2020-05-15 23:47:00 +02:00