You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Mar 5, 2021. It is now read-only.
Copy file name to clipboardExpand all lines: pages/en/4_development/1_roadmap.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -4,9 +4,9 @@ Before migrating to GitHub, the core development team used [a Trello board](http
4
4
5
5
## Superpowers v2.0 or later
6
6
7
-
*[Allow enabling/disabling plugins on a per-project basis](https://github.com/superpowers/superpowers/issues/73) and only export enabled plugins for shorter load times
8
-
*[Authentication, access rights and user settings](https://github.com/superpowers/superpowers/issues/55)
9
-
*[Support exporting for various platforms right from Superpowers](https://github.com/superpowers/superpowers/issues/35)
7
+
*[Allow enabling/disabling plugins on a per-project basis](https://github.com/superpowers/superpowers-core/issues/73) and only export enabled plugins for shorter load times
8
+
*[Authentication, access rights and user settings](https://github.com/superpowers/superpowers-core/issues/55)
9
+
*[Support exporting for various platforms right from Superpowers](https://github.com/superpowers/superpowers-core/issues/35)
10
10
* Superpowers Game:
11
11
*[Allow choosing which assets to load on startup and loading the rest dynamically](https://github.com/superpowers/superpowers-game/issues/33) for shorter load times
12
12
*[Typed asset tree](https://github.com/superpowers/superpowers-game/issues/35) to increase confidence when reorganizing assets
@@ -25,7 +25,7 @@ This release will focus on making it easy to release and upgrade the major parts
25
25
26
26
Release notes for all releases can be found on GitHub:
@@ -27,7 +27,7 @@ Other systems and plugins might be hosted elsewhere by developers unaffiliated w
27
27
28
28
## Reporting and triaging bugs
29
29
30
-
Bugs should be reported on GitHub. When in doubt, feel free to [open an issue in the core repository](https://github.com/superpowers/superpowers/issues/new).
30
+
Bugs should be reported on GitHub. When in doubt, feel free to [open an issue in the core repository](https://github.com/superpowers/superpowers-core/issues/new).
31
31
32
32
You can help triage bugs and make them more useful by:
Copy file name to clipboardExpand all lines: pages/en/4_development/5_extending-superpowers.md
+10-10
Original file line number
Diff line number
Diff line change
@@ -89,7 +89,7 @@ A plugin can do 3 types of things:
89
89
## Building your plugin
90
90
91
91
[Gulp](http://gulpjs.com/) is the build tool used throughout Superpowers,
92
-
and [`pluginGulpfile.js`](https://github.com/superpowers/superpowers/blob/master/scripts/pluginGulpfile.js)
92
+
and [`pluginGulpfile.js`](https://github.com/superpowers/superpowers-core/blob/master/scripts/pluginGulpfile.js)
93
93
is a shared build file for your plugins that ships as part of Superpowers's main repository.
94
94
95
95
It assumes you're using Jade, Stylus and TypeScript to build your plugin. If you'd rather use something else,
@@ -128,9 +128,9 @@ An SVG icon for each editor should be placed in `public/editors/*/icon.svg`.
128
128
Superpowers projects are basically made of a tree of assets.
129
129
Your plugin can define one or more asset types.
130
130
131
-
Each asset type is a class that inherits from [`SupCore.Data.Base.Asset`](https://github.com/superpowers/superpowers/blob/master/SupCore/Data/Base/Asset.ts) ([example](https://github.com/superpowers/superpowers-game/blob/master/plugins/default/sprite/data/SpriteAsset.ts)).
131
+
Each asset type is a class that inherits from [`SupCore.Data.Base.Asset`](https://github.com/superpowers/superpowers-core/blob/master/SupCore/Data/Base/Asset.ts) ([example](https://github.com/superpowers/superpowers-game/blob/master/plugins/default/sprite/data/SpriteAsset.ts)).
132
132
133
-
The `Asset` base class itself inherits from [`SupCore.Data.Base.Hash`](https://github.com/superpowers/superpowers/blob/master/SupCore/Data/Base/Hash.ts),
133
+
The `Asset` base class itself inherits from [`SupCore.Data.Base.Hash`](https://github.com/superpowers/superpowers-core/blob/master/SupCore/Data/Base/Hash.ts),
134
134
which stores a dictionary of data in its `.pub` property, with a schema for validating data.
135
135
Properties can be marked as `mutable` in the schema, allowing clients to edit them directly through `setProperty` (more on editing below).
136
136
@@ -152,7 +152,7 @@ In order to allow editing the project's assets and resources, editors must subsc
152
152
153
153
First of all, your editor should open a connection to the server through `SupClient.connect` ([example](https://github.com/superpowers/superpowers-game/blob/7ac686ab4e08681e90abb6d6b8de83bf8a1fec1f/plugins/default/sound/editors/sound/index.ts#L16)).
154
154
155
-
Once connected, you'll probably want to create an instance of [`SupClient.ProjectClient`](https://github.com/superpowers/superpowers/blob/master/SupClient/src/ProjectClient.ts)
155
+
Once connected, you'll probably want to create an instance of [`SupClient.ProjectClient`](https://github.com/superpowers/superpowers-core/blob/master/SupClient/src/ProjectClient.ts)
It can be used to manage subscriptions to the project's assets tree (name of each asset, type, parent, order, etc.), or to particular assets and resources
158
158
and it's easier than sending raw socket.io messages and keeping track of things yourself.
@@ -163,16 +163,16 @@ The callbacks on your subscriber object will be called when various events are r
163
163
164
164
To edit an asset, you can use `projectClient.editAsset(assetId, command, args..., callback);`.
165
165
166
-
The server, [through `RemoteProjectClient`](https://github.com/superpowers/superpowers/blob/60145c1aba13f7ffd8056cdcf1aac6117999b2c3/server/RemoteProjectClient.ts#L325)
166
+
The server, [through `RemoteProjectClient`](https://github.com/superpowers/superpowers-core/blob/60145c1aba13f7ffd8056cdcf1aac6117999b2c3/server/RemoteProjectClient.ts#L325)
167
167
will call a method starting with `server_` followed by the command you specified.
168
168
169
-
If the command's callback doesn't return an error, the server [will emit back the command to every client subscribed to the asset](https://github.com/superpowers/superpowers/blob/60145c1aba13f7ffd8056cdcf1aac6117999b2c3/server/RemoteProjectClient.ts#L346).
170
-
In turn, on the client-side, `ProjectClient`[will call the corresponding `client_` method on your asset](https://github.com/superpowers/superpowers/blob/60145c1aba13f7ffd8056cdcf1aac6117999b2c3/SupClient/src/ProjectClient.ts#L157), applying the changes provided by the server.
169
+
If the command's callback doesn't return an error, the server [will emit back the command to every client subscribed to the asset](https://github.com/superpowers/superpowers-core/blob/60145c1aba13f7ffd8056cdcf1aac6117999b2c3/server/RemoteProjectClient.ts#L346).
170
+
In turn, on the client-side, `ProjectClient`[will call the corresponding `client_` method on your asset](https://github.com/superpowers/superpowers-core/blob/60145c1aba13f7ffd8056cdcf1aac6117999b2c3/SupClient/src/ProjectClient.ts#L157), applying the changes provided by the server.
171
171
Then it will notify all subscribers of the change.
172
172
173
173
In `server_` methods, whenever the asset is edited, you should call `this.emit("change");`
174
-
to let the project server know that the asset has changed and should be [scheduled for a write to disk soon](https://github.com/superpowers/superpowers/blob/60145c1aba13f7ffd8056cdcf1aac6117999b2c3/server/ProjectServer.ts#L249).
175
-
The server saves a particular asset to disk [no more often than once every 60s](https://github.com/superpowers/superpowers/blob/60145c1aba13f7ffd8056cdcf1aac6117999b2c3/server/ProjectServer.ts#L11).
174
+
to let the project server know that the asset has changed and should be [scheduled for a write to disk soon](https://github.com/superpowers/superpowers-core/blob/60145c1aba13f7ffd8056cdcf1aac6117999b2c3/server/ProjectServer.ts#L249).
175
+
The server saves a particular asset to disk [no more often than once every 60s](https://github.com/superpowers/superpowers-core/blob/60145c1aba13f7ffd8056cdcf1aac6117999b2c3/server/ProjectServer.ts#L11).
176
176
177
177
`TODO: We still need to design a way to stream large assets.`
178
178
@@ -181,7 +181,7 @@ The server saves a particular asset to disk [no more often than once every 60s](
181
181
You can place JSON localization files in `public/locales/$LANGUAGE_CODE/$NAMESPACE.json` ([example](https://github.com/superpowers/superpowers-game/tree/master/plugins/default/sound/public/locales/en)).
182
182
183
183
They will be made available through the `t("namespace:path.to.key")` function to your Jade templates.
184
-
You can also load them up at runtime with [`SupClient.i18n.load`](https://github.com/superpowers/superpowers/blob/master/SupClient/src/i18n.ts)
184
+
You can also load them up at runtime with [`SupClient.i18n.load`](https://github.com/superpowers/superpowers-core/blob/master/SupClient/src/i18n.ts)
185
185
and use them with `SupClient.i18n.t("namespace:path.to.key")`.
0 commit comments