Commit graph

68 commits

Author SHA1 Message Date
kharhamel dd45996f9c FIX: improved the visit card, cleanup the code 2021-06-08 16:39:22 +02:00
David Négrier d32df13f1b Camera now show up when someone is moving and hides 5 seconds after we stop moving.
Also, added an animation to show/hide the webcam.
2021-05-26 12:12:46 +02:00
kharhamel d93b30f982 improved radial menu 2021-05-19 18:11:51 +02:00
kharhamel 35b37a6a88 Added a radial menu to run emotes 2021-05-19 15:17:50 +02:00
David Négrier 4d4f845b9e Setting "importsNotUsedAsValues": "error"
Turning the "importsNotUsedAsValues" TS config value to "error".
This will require us to use `import type` instead of `import` when we are importing a value that is only used as a type (and therefore that is dropped by the Typescript compiler).

Why this change?
This is a requirement to be able to use Svelte in the future. See https://github.com/sveltejs/svelte-preprocess/issues/206#issuecomment-663193798
2021-05-12 09:13:25 +02:00
David Négrier 0c5e5ef578 Skip "render" if nothing changed on screen
For each requested animation frame (RAF) in Phaser, Phaser calls the "update" method, then the "render" method of each scenes.
The "render" method takes some time (and energy) to perform the rendering.

The fact is we probably don't need to call "render" if nothing changed on the screen (which happens most of the frames in a typical WorkAdventure game).

This commit is therefore overloading the "Game" class of Phaser to add a "dirty" flag.

Scenes can now add a "isDirty()" method. If all displayed scenes are pristine (not dirty), Phaser will skip rendering the frame altogether.

This saves "a lot" of energy, resulting in laptops that are not overheating when using WorkAdventure \o/
2021-05-06 15:36:45 +02:00
PizZaKatZe 9c9d262782 Make movement speed depend on joystick force 2021-04-13 02:00:05 +02:00
Johannes Berthel 187e21eed9 load texture inside game scene instead inside of inside companion class 2021-04-06 19:10:18 +02:00
Johannes Berthel c07079051a transmit companion to remote players 2021-04-02 21:21:11 +02:00
Johannes Berthel 2ad712807b add companion only on local player 2021-04-02 17:14:34 +02:00
Johannes Berthel 5a91e15580 add companion to remote player 2021-04-01 18:51:51 +02:00
Johannes Berthel 80a5d2e30e added random companion to player 2021-04-01 00:33:05 +02:00
kharhamel fe8c75610d FIX: player anims correctly stop on the idle frame 2021-03-11 16:21:02 +01:00
kharhamel 472fbb1de0 All player textures are now lazy-loaded 2021-01-08 11:44:41 +01:00
arp af4611ed29 rewrote the login workflow 2020-09-25 19:23:33 +02:00
David Négrier 6b970adc6c Merge branch 'develop' of github.com:thecodingmachine/workadventure into outline
# Conflicts:
#	front/src/Phaser/Game/GameScene.ts
#	front/src/Phaser/Player/Player.ts
#	front/src/index.ts
#	front/yarn.lock
2020-08-17 22:51:37 +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 84529d6e99 Propagating customized sprites all over the game 2020-07-28 17:45:55 +02:00
David Négrier ee612f6585 Adding event support to items 2020-07-27 22:36:58 +02:00
David Négrier ed146226cf Adding Outline capabilities and a ActionableItem notion. 2020-07-23 18:09:24 +02:00
David Négrier f7466994c5 Playing with pipeline to display outline 2020-07-15 23:44:01 +02:00
David Négrier 8348d13bfe Fixing use const instead of let 2020-06-19 14:30:34 +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
Gregoire Parant b931a8f117 Fix animation player 2020-06-01 13:20:45 +02:00
David Négrier f36bd240a7 Fix lint 2020-05-26 17:43:25 +02:00
David Négrier 0492dfdf3a Fixing import 2020-05-26 17:37:26 +02:00
David Négrier 04a1f90ed5 Adding communication between LoginScene and SelectCharacterScene 2020-05-26 17:25:29 +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 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 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
David Négrier 4de552437d Completely getting rid of "userid"
Previously, userid was generated by the "/login" route and passed along.
This commit completely removes the uuid "userid" (and disables the LoginController too and any Jwt check).

"userid" is replaced by the "socket id" of the connection.
So a user is now identified using a socket id, which is unique for a given connection.
2020-05-14 23:20:43 +02:00
David Négrier 256fa51e24 Catching errors in socket callbacks
Catching errors in socket callbacks to avoid having the server crashing when an error occurs.
2020-05-12 11:49:55 +02:00
gparant 59127534ac Fix User depth
- Update strategy layers depth
 - Add depth to manager layers positions between all users
2020-05-08 17:35:40 +02:00
David Négrier 492196b333 Cleanup: renaming "frame" to "character"
The "frame" variable actually contains a string pointing to the character selected.
It has nothing to do with a frame which is usually a particular image in an animation.

I'm renaming the variable accross the application to avoid confusion.
2020-05-08 15:18:22 +02:00
gparant b12d762ffe Fix to add frame of player user 2020-05-06 02:12:37 +02:00
gparant 4e04357b71 Merge branch 'refactoring_messages' into feature/login-page
# Conflicts:
#	front/src/Phaser/Player/Player.ts
2020-05-06 01:58:04 +02:00
gparant 5a6415607d Send event and play animation with user frame 2020-05-06 01:50:01 +02:00
David Négrier 86abdfe30b Only sending move events if the player actually moved
If the player did not move a pixel (and if it did not change direction), then do not send an event to save bandwidth and processing.
2020-05-04 23:11:59 +02:00
gparant b65e37c468 Name of map users
- Add name on user
 - Delete NonPlayer class not used
2020-05-03 22:24:14 +02:00
David Négrier b260dc32b5 Merge from master 2020-05-03 18:04:01 +02:00
David Négrier df5b183cba Merge 2020-05-03 15:51:16 +02:00
gparant 0d6ce5e6e9 Merge branch 'master' into webrtc
# Conflicts:
#	front/src/Phaser/Player/Player.ts
2020-05-02 20:51:49 +02:00
kharhamel ad65de75fd used the vent system to remove the dependency of Player on Connexion 2020-05-02 16:56:36 +02:00
gparant aff77fe074 Merge remote-tracking branch 'github.com/master' into webrtc
# Conflicts:
#	back/src/Model/Group.ts
#	back/src/Model/World.ts
2020-05-02 00:36:04 +02:00
David Négrier 0c04d4305b Displaying the name of a player above its head (names are not passed through the network yet) 2020-05-01 23:38:09 +02:00
gparant e06b20fe96 Update video style and start peer connexion 2020-05-01 21:15:00 +02:00
kharhamel dd0744387f reenabled diagonal movement 2020-04-30 19:36:28 +02:00