Commit graph

366 commits

Author SHA1 Message Date
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 b7c2f8be7b Adding colors for cam/mic/screen share button
Microphone and camera are now red when disabled.
Screen-share is green when enabled.
Also, they are now always partially visible (they were completely hidden previously until hovering in the lower right corner)
2020-08-22 15:26:40 +02:00
David Négrier 91f422d0c3 Fixing stop of stream in bi-directional screen sharing. 2020-08-21 22:53:17 +02:00
David Négrier f60b02f1dc Putting a wider onhover surface when clicking on one of the buttons to manage screen sharing or video/mic 2020-08-20 22:57:34 +02:00
David Négrier c442d6ce67 Lint 2020-08-20 22:29:14 +02:00
David Négrier dc36af19bc Detecting press on "stop screen sharing" 2020-08-20 22:23:38 +02:00
David Négrier 1162439479 Overloading destroy method instead of having a separate method to remove video. 2020-08-20 22:23:22 +02:00
David Négrier 27ffb6b13d Refactoring SimplePeer code: splitting Peer instantiation into 2 subclasses (VideoPeer and ScreenSharingPeer). This leads to way leaner code. 2020-08-20 16:56:10 +02:00
David Négrier 894f7c8009 Removing useless roomID parameter in WebRtcSignal message 2020-08-20 15:21:07 +02:00
David Négrier 0119534283 First version of screen-sharing that works when a user is joining a group after screen sharing begun. 2020-08-20 00:05:00 +02:00
David Négrier cc1cb2f671 Fixing linting 2020-08-18 14:59:50 +02:00
David Négrier 2e61c2ef62 Getting back code in compilable fashion after huge rebase 2020-08-18 00:12:38 +02:00
Gregoire Parant 4b72958193 Fix peer connexion for two player with screen sharing 2020-08-17 23:56:46 +02:00
Gregoire Parant a8f27e6084 Create event to start webrtc screen charing 2020-08-17 23:54:26 +02:00
Gregoire Parant a4f42111d7 Update screen sharing feature 2020-08-17 23:47:17 +02:00
Gregoire Parant 0bbed7717a Continue screen sharing 2020-08-17 23:39:50 +02:00
Gregoire Parant 3e2c5049f2 Fix to add special screen sharing 2020-08-17 23:36:02 +02:00
Gregoire Parant 209057e3fc New fictive user screen sharing
- Create new fictive user
 - Add new fictive user in WebRtc group
 - Add screen sharing video on left side
2020-08-17 23:32:39 +02:00
Gregoire Parant 6c1b8122ef Fix CI 2020-08-17 23:19:31 +02:00
Gregoire Parant eed5333d69 Stability simple peer 2020-08-17 23:18:38 +02:00
Gregoire Parant 208b91e52a Feature screen sharing
- Send stream of screen sharing in peer connexion
 - Add button for share your screen
2020-08-17 23:17:00 +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 fc78249eae Code cleanup 2020-08-17 22:03:08 +02:00
David Négrier 0f305b0c12 CSS cleanup 2020-08-17 21:59:26 +02:00
David Négrier beb0d1ef0a Linter fix 2020-08-17 16:18:39 +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 05ca8c813e Fixing chat mode canceling flex display 2020-08-16 23:49:31 +02:00
David Négrier 1509777945 Improving video CSS (work on overlay) 2020-08-16 23:45: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 0041e088a4 Fixing position of self webcam in CoWebsite mode 2020-08-13 18:28:22 +02:00
David Négrier 9f6c6e0ce1 Adding CoWebsiteManager + first working version of flex video 2020-08-13 18:21:48 +02:00
David Négrier 83fe024c45 Adjusting class in chat mode based on number of divs displayed. 2020-08-11 22:40:54 +02:00
David Négrier 7232bbaef9 Adding LayoutManager to position videos as cleverly as possible 2020-08-11 22:32:55 +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 dcbe8d35db Upgrading dependencies 2020-07-29 11:35:59 +02:00
David Négrier 84529d6e99 Propagating customized sprites all over the game 2020-07-28 17:45:55 +02:00
David Négrier 6d0bccc0e1 Making a nice "customize" button 2020-07-28 15:53:44 +02:00
David Perez 866985326b Fixing merge issue 2020-07-28 11:35:30 +02:00
David Perez 90c56ca683 merge 2020-07-28 11:29:21 +02:00
David Perez 25abcfe202 png files 2020-07-28 11:25:19 +02:00
David Perez 21d2a7939b custome characters 2020-07-28 11:24:34 +02:00
David Négrier 2d818ec79d Fixing broken Jasmine test due to module config 2020-07-27 22:48:04 +02:00
David Négrier ee612f6585 Adding event support to items 2020-07-27 22:36:58 +02:00
David Négrier d48d5b0285 Fix CS 2020-07-23 18:47:28 +02:00
David Négrier 2484e4f1df Moving maps to their own container 2020-07-23 18:43:51 +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 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 2b5d3e0017 Sending the source map out of the main JS file to reduce size 2020-07-02 10:38:36 +02:00
David Négrier 63e2e176d3 Fixing tests 2020-06-25 11:56:11 +02:00
David Négrier bfec2317c9 Fixing default value 2020-06-25 11:39:38 +02:00
David Négrier bb6b07536e Fixing Jasmine tests 2020-06-25 11:39:18 +02:00
David Négrier 1978c1a324 Lint 2020-06-25 11:35:20 +02:00
David Négrier 5f5cec93ea Audio device => exact mode 2020-06-25 11:26:55 +02:00
David Négrier e3e7b92c6a Fixing errors when arrows touched and no cam 2020-06-25 10:43:42 +02:00
David Négrier c322de4412 Moving to async/await 2020-06-25 10:43:27 +02:00
David Négrier 8db615551a Fixing device switching in Firefox 2020-06-25 10:33:26 +02:00
David Négrier d18abaf067 Enabling optional https in development 2020-06-25 10:32:47 +02:00
David Négrier 371b4f0063 Fixing Firefox compatibility by remove references to InputDeviceInfo 2020-06-25 09:28:00 +02:00
David Négrier a52b1f612b Reorganizing on x axis too. 2020-06-24 18:09:59 +02:00
David Négrier b3c18702bb Adding borders, centering camera, fixing small bug on resize when no camera is enabled 2020-06-24 17:49:38 +02:00
David Négrier 253108eba0 - Making the EnableCameraScene responsive
- Enabling click on arrows
2020-06-24 17:29:23 +02:00
David Négrier 3de37bafed Adding a scene to configure the webcam 2020-06-24 15:35:07 +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 74af7d52c3 Improving error handling in MediaManager 2020-06-22 22:55:28 +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 1e4ffa20ab Cleaning GameManager 2020-06-22 16:10:34 +02:00
David Négrier 403ea223a8 Reconnecting also on socket error 2020-06-22 16:10:18 +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 817b25b0be Fixing reconnect issue
In the case the reconnect event was triggered on "wake-up", the disconnect event was not sent. But because of a bug in the way we handle the setTimeout, the reconnection to the GameScene never happened after we forced the disconnect scene.
This fixes the issue.
2020-06-17 16:06:02 +02:00
David Négrier b8f9e25b26
Merge pull request #184 from thecodingmachine/debugreconnect
Adding console log when trying to reconnect
2020-06-17 15:43:20 +02:00
David Négrier b14524625c Adding console log when trying to reconnect 2020-06-17 15:37:02 +02:00
David Négrier b1d39c4690 More logs 2020-06-11 14:13:13 +02:00
David Négrier ea30a02762 Fixing reconnect issues 2020-06-11 14:12:03 +02:00
David Négrier 473c5aa052 Fixing events fired multiple times
Callbacks for socket.io events were registered each time a disconnect was called, leading to message being dispatched plenty of times if there was several disconnections.
2020-06-11 13:34:25 +02:00
David Négrier e50a4fd88b Fixing setTimeout being called several times 2020-06-11 11:34:22 +02:00
David Négrier f7265c213e Patch 2020-06-11 10:40:43 +02:00
David Négrier 43c7c9ad07 Fixing null initialization 2020-06-11 10:29:11 +02:00
David Négrier 77167c28a6 Making sure that even is a user did not move, the reconnection can happen without issues and resume at the old position 2020-06-11 10:04:23 +02:00
David Négrier ce7b4092a6 Fixing suspend/resume
In case we suspend a laptop and resume it, the RECONNECT event is called by socket.io without any error being thrown (so without us being redirected to the Reconnect Scene).
This fix makes sure we go to the reconnect scene before going back to the main scene.
2020-06-11 09:37:33 +02:00
David Négrier 80fddb3c69 Removing dead code 2020-06-10 16:01:01 +02:00
David Négrier f518830073 Minor change to make sure the scene starts even if in background (does this really work?) 2020-06-10 16:00:54 +02:00
David Négrier 500dc83a85 Completely resetting GameScene on disconnect 2020-06-10 15:43:22 +02:00
David Négrier 43e4489d4d Fixing start position on disconnect 2020-06-10 14:57:32 +02:00
David Négrier 91ce318848 Changing license to AGPL + Commons Clause
This is an important change.
So far, the project was labelled as licensed under the "AGPL" (improperly since no version of the AGPL was specified)

This commit changes the license to "AGPL + Commons Clause"

The [common clause](https://commonsclause.com/) is an additional restriction forbidding companies from taking WorkAdventure of the shelf, and reselling WorkAdventure.

This license does not forbid anyone from installing and using WorkAdventure, it only targets resellers (so SAAS exploitation of WorkAdventure is limited to TheCodingMachine).

This effectively makes WorkAdventure non open-source, but the source-code remains available for anyone to see and modify.
2020-06-09 10:17:21 +02:00
David Négrier dcc78786a9 Porting favicon to the "front" container 2020-06-09 09:21:24 +02:00