Commit graph

225 commits

Author SHA1 Message Date
David Négrier e65e8b2097 First version with variables that actually work 2021-07-07 17:17:28 +02:00
GRL bef5e139c0 SetTiles can now set a tile to null so that there is no more tile. 2021-07-07 14:42:17 +02:00
David Négrier 86fa869b20 Actually using Type Guards in queries received by WA. 2021-07-06 10:26:44 +02:00
David Négrier bf17ad4567 Switching setVariable to a query and fixing error hangling in query mechanism 2021-07-05 18:29:34 +02:00
David Négrier c30de8c6db Adding support for default variables values 2021-07-05 17:25:23 +02:00
jonny 4ea6a12d20 cast callback 2021-07-05 16:26:29 +02:00
David Négrier 62a4814961 Migrating WA.player.getCurrentUser and WA.room.getCurrentRoom to direct property access and WA.room.getMap 2021-07-05 11:53:33 +02:00
jonny 310e131a6e eslint restart 2021-07-02 19:03:34 +02:00
jonny 369d453455 Merge remote-tracking branch 'remotes/upstream/develop' into trigger-message-refv3 2021-07-02 18:49:22 +02:00
David Négrier ea1460abaf Adding variables (on the front side for now) 2021-07-02 17:36:43 +02:00
David Négrier 280c59e6b5 Changing callback signature of registerAnswerer so that it can return a value and not necessarily a promise. 2021-07-02 17:26:28 +02:00
David Négrier 5b4a72ea1f Add new "query/answer" utility functions for the scripting API
So far, the scripting API was using events to communicate between WA and the iFrame.
But often, the scripting API might actually want to "ask" WA a question and wait for an answer.

We dealt with this by using 2 unrelated events (in a mostly painful way).

This commit adds a "queryWorkadventure" utility function in the iFrame API that allows us
to send a query, and to wait for an answer. The query and answer events have a unique ID to be
sure the answer matches the correct query.

On the WA side, a new `IframeListener.registerAnswerer` method can be used to register a possible answer.
2021-07-02 16:49:22 +02:00
GRL e1611969ce Merge branch 'develop' of github.com:thecodingmachine/workadventure into jonnytest1-tiles-start-positions 2021-07-02 14:35:28 +02:00
GRL 01d02124d1 Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptAPIV2 2021-07-01 11:38:33 +02:00
David Négrier bfcdd31ed2 Fixing NPM package generation
The generation was broken due to the refactoring in several classes (some of them where not properly exported).
Also, trying to generate the NPM package on every build now (to detect issues).
2021-06-30 10:15:55 +02:00
GRL 6462773e7f Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptAPIV2 2021-06-29 14:16:19 +02:00
GRL b457ce493b Suppress console.log 2021-06-29 09:44:57 +02:00
GRL 389ca25b6a Cowebsite opened by script can use Iframe Api 2021-06-28 18:00:48 +02:00
David Négrier 3fd4f9d384 Adding a warning message if an unauthorized iFrame tries to communicate with WA
Closes #1241
2021-06-28 15:20:27 +02:00
David Négrier 1e57028e6e Renaming changeTile to setTiles 2021-06-28 14:58:49 +02:00
David Négrier 319db95bc8 Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptAPIV2
# Conflicts:
#	front/src/Api/iframe/room.ts
2021-06-28 14:50:26 +02:00
GRL b182a08ca2 correction from review 2021-06-28 09:33:13 +02:00
jonny 7f61e9addd Merge remote-tracking branch 'remotes/upstream/develop' into tiles-start-positions 2021-06-25 18:14:40 +02:00
GRL 4903911d62 Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptAPIV2 2021-06-24 11:33:29 +02:00
jonny d1178b1a01 immutableData was never assigned 2021-06-23 20:19:38 +02:00
jonny 5472d220ba added trigger message code 2021-06-23 17:32:32 +02:00
GRL 95d8cf9257 Change requested 2021-06-23 14:54:06 +02:00
GRL 24cc340cb9 Merge branch 'metadataScriptingApi' of github.com:thecodingmachine/workadventure into metadataScriptAPIV2 2021-06-23 12:02:29 +02:00
GRL bdb32a29e1 New methods refactored 2021-06-23 11:32:11 +02:00
GRL 85fe92f604 Merge branch 'menu-commands-apiref' of github.com:jonnytest1/workadventure into metadataScriptingApi 2021-06-23 09:18:20 +02:00
GRL be23db5bcf Resolve import and LoadPageEvent issue 2021-06-22 16:07:31 +02:00
GRL ca3f5c599a Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptingApi 2021-06-22 14:00:19 +02:00
jonny 64a00481f0 fixed wrong import 2021-06-21 18:39:02 +02:00
jonny ba1bcf226a menu command api 2021-06-21 18:22:31 +02:00
David Négrier 6101548d89 Fixing bug where only one chat listener can be added. 2021-06-21 13:47:07 +02:00
David Négrier 620bd1ab2c Splitting classes in separated files 2021-06-21 12:26:12 +02:00
David Négrier 9129ceede1 Improving refactoring of API following @jonnytest1 feedback 2021-06-21 11:48:39 +02:00
David Négrier 34dc5a0bc6 Refactoring WorkAdventureAPI.
Simplifying a lot what was done (even if the new code is a bit less automated, it allows to list exactly the methods we want to see deprecated and to add a notification message)
2021-06-18 17:22:56 +02:00
jonny 702f4fe4c0 converted goToRoom to typed call 2021-06-17 11:32:59 +02:00
jonny 318749e5a8 develop merge 2021-06-17 11:30:16 +02:00
David Négrier f6554a1082 Merge branch 'develop' of github.com:thecodingmachine/workadventure into iframe-api-refactor
# Conflicts:
#	front/src/iframe_api.ts
2021-06-17 11:23:56 +02:00
jonny 238f333b81 Merge remote-tracking branch 'remotes/workadventure-main/develop' into load-page-api
# Conflicts:
#	front/src/Api/Events/IframeEvent.ts
#	front/src/Api/IframeListener.ts
#	front/src/Phaser/Game/GameScene.ts
#	front/src/iframe_api.ts
2021-06-15 15:05:49 +02:00
David Négrier b03ee5bd53 Fixing scripting origin check
When working on making the openCoWebsite URL relative, we introduced a regression.
In production, the iframe generated by "script" properties have no "src" and therefore, were treated as invalid messages.

This should fix everything in prod.
2021-06-07 16:48:52 +02:00
jonny dab3f1f844 removed zoned popups 2021-06-03 22:01:42 +02:00
GRL 858a513569 correction of adding custom menu
correction of setProperty
updating CHANGELOG
updating api-reference
2021-05-28 12:13:10 +02:00
jonny 8a1376e966 refactored to key based types 2021-05-28 02:28:11 +02:00
jonny 5fd82c1188 minor cleanup 2021-05-28 01:50:58 +02:00
jonny ab631c5dc4 register callbacks
should be done now
2021-05-28 01:46:08 +02:00
jonny fd5b598b63 Bubble [WIP] (still need to do the javascript part) 2021-05-28 01:18:00 +02:00
jonny 540e5783b6 cowebsite
navigation
sound
player
extraction
2021-05-28 01:14:10 +02:00
jonny 6a90655c44 Merge branch 'develop' of https://github.com/thecodingmachine/workadventure into iframe-api-refactor 2021-05-28 00:52:42 +02:00
jonny cbe93d7164 [WIP] fixed cherry pick conflicts 2021-05-28 00:34:40 +02:00
jonny 2de2d114a1 added typedef for subobject types
extracted popup functions

# Conflicts:
#	front/package-lock.json
#	front/package.json
#	front/src/iframe_api.ts
2021-05-28 00:30:51 +02:00
jonny 1a1ab30574 extraction idea
# Conflicts:
#	front/src/Api/ScriptUtils.ts
#	front/src/iframe_api.ts
2021-05-28 00:29:21 +02:00
GRL 6dcb0d3750 first step to change tile 2021-05-27 17:06:39 +02:00
GRL 9cd3ff1d31 Merge branch 'correct-merge' into metadataScriptAPIV2 2021-05-27 10:16:00 +02:00
GRL acbe4f89a6 Merge branch 'update-game-tiles' into correct-merge 2021-05-27 09:45:25 +02:00
GRL 5565ddd3f4 Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptingApi 2021-05-26 17:22:37 +02:00
David Négrier 54e300443b Fixing Typing 2021-05-26 16:11:22 +02:00
GRL b4fa38bf8c Merge remote-tracking branch 'origin/metadataScriptingApi' into metadataScriptingApi 2021-05-25 17:21:12 +02:00
GRL a5cb93541a correction from code review 2021-05-25 17:21:02 +02:00
GRL78 7c44d747de
Apply suggestions from code review
Co-authored-by: David Négrier <d.negrier@thecodingmachine.com>
2021-05-25 11:02:25 +02:00
GRL d4bc999c54 pause loading tileset on fly 2021-05-25 10:15:56 +02:00
GRL 343ad6ea96 Revert "preparation for merge with metadataScriptApi"
This reverts commit b18b2fe0e3.
2021-05-25 10:11:25 +02:00
GRL a7b09e91ba Revert "Merge branch 'update-game-tiles' into metadataScriptingApi"
This reverts commit 428625e61b, reversing
changes made to a3165a0540.
2021-05-25 10:09:58 +02:00
GRL 428625e61b Merge branch 'update-game-tiles' into metadataScriptingApi 2021-05-25 09:54:00 +02:00
GRL b18b2fe0e3 preparation for merge with metadataScriptApi 2021-05-25 09:50:59 +02:00
DESKTOP-FMM8UI0\CLV 0c3b9ccfbf Merge branch 'develop' of https://github.com/thecodingmachine/workadventure into SoundInMapScript
# Conflicts:
#	front/src/Api/IframeListener.ts
#	front/src/Phaser/Game/GameScene.ts
#	front/src/iframe_api.ts
#	maps/Tuto/scriptTuto.js
#	maps/Village/Village.json
2021-05-21 17:45:26 +02:00
GRL 1110f4fb7f Revert "Merge branch 'update-game-tiles' into metadataScriptingApi"
This reverts commit 796a9418d3, reversing
changes made to 3506063e65.
2021-05-21 16:24:48 +02:00
GRL 796a9418d3 Merge branch 'update-game-tiles' into metadataScriptingApi 2021-05-21 15:56:35 +02:00
GRL 3506063e65 first step on loading a tileset from a script 2021-05-20 17:09:10 +02:00
GRL 2f9cc393a7 Implementation of getTag of the current user
documentation of getTag
Adding map for test of getTag
2021-05-20 10:57:36 +02:00
GRL ce0a72c6ce Merge branch 'menu-command-api' of github.com:jonnytest1/workadventure into metadataScriptingApi 2021-05-19 09:36:11 +02:00
GRL aa78bf44ef implementation of DataLayerEvent
update GetGameState to add nickname to the returned data
update GameMap to separate phaserLayer and mapLayer
2021-05-18 15:41:16 +02:00
GRL 201fcf6afa Merge branch 'gamestate-api-read' of github.com:jonnytest1/workadventure into metadataScriptingApi 2021-05-18 15:18:35 +02:00
GRL 2ee62c9e9e Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptingApi 2021-05-18 11:50:03 +02:00
GRL 3edfd5b285 GameState is now save in cache
HasPlayerMoved is send when the player is actually moving on the map every 200ms.
2021-05-18 11:33:16 +02:00
David Négrier 127a4759ac Merge branch 'develop' of github.com:thecodingmachine/workadventure into menu-command-api
# Conflicts:
#	front/src/Api/Events/IframeEvent.ts
#	front/src/Api/IframeListener.ts
#	front/src/iframe_api.ts
2021-05-18 10:16:44 +02:00
David Négrier 9b68faac0e
Fixing JSDoc 2021-05-18 09:53:54 +02:00
David Négrier fe573893a1
Merge pull request #1039 from thecodingmachine/importsNotUsedAsValues
Setting "importsNotUsedAsValues": "error"
2021-05-13 19:43:34 +02:00
GRL 43aad4ab14 phaserLayers managed by Gamemap
Implementation of LayersFlattener
Implementation of Setting properties of a layer form script
Update show/hide layer form script
Update unit test of LayersIteratorTest
2021-05-12 14:30:12 +02:00
David Négrier 8c1e01566a Upgrading all dependencies in front
Upgrading to Webpack 5, Typescript 4, ...
2021-05-12 10:35:14 +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
jonny 8cef4f6e90 Merge remote-tracking branch 'remotes/workadventure-main/develop' into gamestate-api-read
# Conflicts:
#	front/src/Api/IframeListener.ts
2021-05-10 21:48:11 +02:00
jonny 2c4c98b0e5 limited event trigger to max 10 per second 2021-05-10 21:44:15 +02:00
jonny 8e136cebe8 added callback on playermove - gets quite delayed after walking for a few seconds 2021-05-10 21:27:17 +02:00
GRL fd931c4884 Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptingApi 2021-05-10 14:45:41 +02:00
David Négrier c025d1798b Renaming restorePlayerControls/disablePlayerControls
Putting "controls" in the plural form:

- restorePlayerControl => restorePlayerControls
- disablePlayerControl => disablePlayerControls
2021-05-10 12:18:06 +02:00
GRL cd2d090a8b Merge branch 'develop' of github.com:thecodingmachine/workadventure into metadataScriptingApi 2021-05-10 11:46:16 +02:00
GRL a6ba8d41b9 implement show/hide layer with scripting 2021-05-10 11:19:18 +02:00
jonny ce0c7ea3eb Merge remote-tracking branch 'remotes/workadventure-main/develop' into gamestate-api-read 2021-05-10 10:01:53 +02:00
jonny a5260c0831 Merge remote-tracking branch 'remotes/workadventure-main/develop' into load-page-api 2021-05-10 09:58:59 +02:00
jonny 4758820aa4 Merge remote-tracking branch 'remotes/workadventure-main/develop' into menu-command-api 2021-05-10 09:54:39 +02:00
jonny 8db72d2dfd refactored to Array of tile 2021-05-10 01:34:32 +02:00
jonny bed45a8310 cherry pick conflicts 2021-05-10 00:31:54 +02:00
jonny ffe03d40f5 option to update tile
# Conflicts:
#	front/src/Api/Events/ApiUpdateTileEvent.ts
#	front/src/Api/IframeListener.ts
#	front/src/Phaser/Game/GameScene.ts
2021-05-10 00:30:32 +02:00
jonny 91148035ec polyfill generic message event 2021-05-09 21:46:40 +02:00
jonny cf06f29ef8 fixed cherry pick conflicts 2021-05-09 21:38:11 +02:00
jonny 8da5bf9f8e typed iframe api events
# Conflicts:
#	front/src/Api/IframeListener.ts
#	front/src/iframe_api.ts
2021-05-09 21:36:48 +02:00
jonnytest1 2922ae4603
Merge branch 'develop' into menu-command-api 2021-05-07 19:59:58 +02:00
jonny a24ca078e6 use iframe url if no script
# Conflicts:
#	front/src/Api/IframeListener.ts
2021-05-05 19:15:32 +02:00
jonnytest1 0a5dffd034
Update ScriptUtils.ts 2021-05-03 16:11:16 +02:00
jonny cd77af318d added more properties
# Conflicts:
#	front/src/Phaser/Game/GameScene.ts
2021-05-01 19:45:23 +02:00
jonny d674ac9e0c fixed url cannot be relative 2021-05-01 17:43:31 +02:00
jonny fafaabb6e7 script api can add menu commands
# Conflicts:
#	front/src/Api/IframeListener.ts
#	front/src/iframe_api.ts
2021-04-27 12:07:02 +02:00
DESKTOP-FMM8UI0\CLV b79d76fc2e parameter soundConfig is now optionnal
if user call mySound.play() the sound will be played with the base SoundConfig
2021-04-23 17:03:17 +02:00
DESKTOP-FMM8UI0\CLV f03f8076f3 Sound in Script Done
Fom script user can load, play and stop sound
2021-04-23 15:35:34 +02:00
DESKTOP-FMM8UI0\CLV 517c0e86cb Can play Sound from a map script
add sound in the TutoMap
2021-04-21 16:47:19 +02:00
jonny 3836d5037c game state can be read out by the client APIs
# Conflicts:
#	front/src/Api/IframeListener.ts
#	front/src/Phaser/Game/GameScene.ts
#	front/src/iframe_api.ts
2021-04-21 15:56:52 +02:00
jonny 6c6789411a added loadPage Api call 2021-04-21 11:20:17 +02:00
David Négrier ee53d8f0b8 Hiding iframe in prod 2021-03-28 17:21:10 +02:00
David Négrier 98aa94bb12 Minor changes 2021-03-28 16:36:02 +02:00
DESKTOP-FMM8UI0\CLV 8764fe5de5 Popup openWebSite
Add possibility to open a website with a popup
3 cases :
Open page
GoTo Page
OpenCoWebsite
2021-03-25 17:12:53 +01:00
DESKTOP-FMM8UI0\CLV 3ef3561b57 no message 2021-03-22 16:10:21 +01:00
DESKTOP-FMM8UI0\CLV c5c8770a60 Add First Version of Tuto
PopUp
Player Control disable
Fake bubble displayed
2021-03-12 16:39:29 +01:00
David Négrier 7fddcc28f1 Removing closeOnClick as it is not implemented 2021-03-09 18:57:25 +01:00
David Négrier bb8b222c22 Adding a Popup object with a close() method on it. 2021-03-09 18:51:30 +01:00
David Négrier 18464e4942 Adding button clicked handling 2021-03-09 18:05:07 +01:00
David Négrier 1e002f93ed Implementation of openPopup script method (WIP) 2021-03-09 16:21:14 +01:00
David Négrier 2bef328d8a Adding the abaility to track users entering/leaving a zone in the script language. 2021-03-08 18:58:38 +01:00
David Négrier 6fbf165c91 Adding the ability to register a single script using the "script" attribute at the map property level. 2021-03-07 21:02:38 +01:00
David Négrier 7d67f55012 Improving security: only iframes opened with "openWebsiteAllowApi" property are now able to send/receive messages. 2021-03-06 16:00:07 +01:00
David Négrier e927e0fa16 Adding ability to listen to user types chat messages using WA.onChatMessage 2021-03-06 15:26:07 +01:00
David Négrier 5178dff108 Adding strong checks on messages exchanged using generic-type-guard 2021-03-05 16:50:54 +01:00
David Négrier eb93a04341 Adding an API for inter-iframe communication
Adds a first version of an API to communicate between an iFrame opened by WorkAdventure and WorkAdventure itself.
The first API method is a method allowing to add messages in the chat, from the iFrame.

Comes with a test file.
2021-03-04 19:00:00 +01:00