Karishma Chadha
92dfebdae6
Add variables from var_create events to appropriate target based on isLocal flag.
2018-06-27 16:32:10 -04:00
Eric Rosenbaum
aa400ea15b
Show extension status button via XML attr not button ( #1270 )
2018-06-27 15:53:18 -04:00
Paul Kaplan
0e3413e6bd
Fix comment
2018-06-27 14:17:33 -04:00
Paul Kaplan
4967155285
Fix nits
2018-06-27 10:44:28 -04:00
Paul Kaplan
9f517bd483
Deal with comments attached to undefined blocks
...
Also fix an issue where you couldn't save/load projects that had multiple comments linked to a single block.
2018-06-26 16:41:10 -04:00
Paul Kaplan
e7e300caeb
Skip unknown opcode blocks while parsing
2018-06-26 15:58:43 -04:00
Connor Hudson
0bed25e01b
Merge develop into feature/extension-serialization
2018-06-26 08:56:42 -04:00
Mx Corey Frang
236f914f55
delete clone should not stop sound ( #1269 )
2018-06-25 15:44:39 -04:00
Michael "Z" Goddard
0dffc65ce9
stop drum immediately if it is still starting ( #1266 )
2018-06-25 15:31:35 -04:00
kchadha
d187517d85
Merge pull request #1256 from kchadha/sprite-save-load
...
Sprite save load
2018-06-25 11:21:01 -04:00
Karishma Chadha
55a5592ab6
Add optional type param to export sprite API.
2018-06-25 09:23:04 -04:00
Karishma Chadha
f06b8a3943
Clean up calls to fixUpVariableReferences
2018-06-25 09:11:48 -04:00
Corey Frang
4431b43e45
A few leftover loadSound that werent updated
2018-06-22 09:45:23 -04:00
Michael "Z" Goddard
c268bbae47
add decoded SoundPlayer's to a Sprite's SoundBank ( #1260 )
2018-06-21 17:23:33 -04:00
Corey Frang
14f8c44ad9
Stop all sounds by clones when disposed
2018-06-21 17:00:03 -04:00
Corey Frang
c087cf326a
soundbank tests
2018-06-21 17:00:03 -04:00
Michael "Z" Goddard
61dacfc915
Merge pull request #1258 from mzgoddard/green-music-extension
...
Use new scratch-audio APIs in music extension
2018-06-21 16:59:42 -04:00
Michael "Z" Goddard
7e48bed0ab
use scratch-audio EffectChain and SoundPlayer in music extension
...
- Use AudioEngine to decode sounds
- Store players instead of buffers
- Use SoundPlayer stop event to track concurrency
2018-06-21 16:53:45 -04:00
Connor Hudson
befcbec393
Create extensions list in serialize function
...
Removed runtime argument from serializeTarget call because it wasn't used
2018-06-21 15:01:00 -04:00
Connor Hudson
026dd96491
Modify serializeTarget function to take an extension set as an argument
...
This allows the serialize function to build a list of all extensions used
2018-06-21 15:00:17 -04:00
Connor Hudson
17679340f9
Return extension ids from serializeBlocks instead of modifying Set passed to it
2018-06-20 15:42:56 -04:00
kchadha
39c27d82ef
Merge pull request #1248 from towerofnix/sprite-quad-fix
...
Fix new sprites only showing up in the top-right quadrant
2018-06-20 14:40:11 -04:00
Connor Hudson
15de2eaa68
Remove extension deserialization
2018-06-20 14:33:01 -04:00
Karishma Chadha
b40ac54fdd
Remove stray newline.
2018-06-20 13:37:31 -04:00
Karishma Chadha
b75a779540
Call fixUpVariableReferences in installTargets, before emitting the workspace update.
2018-06-20 12:12:33 -04:00
Karishma Chadha
889443fcef
fixUpVariableReferences should handle conflicting local variables that don't have blocks referencing them. Add unit tests for the function.
2018-06-20 12:07:42 -04:00
chrisgarrity
f0951d16fa
Merge pull request #1246 from chrisgarrity/feature/translate-labels
...
Localize category labels
2018-06-20 08:33:44 -04:00
Connor Hudson
68215664ec
Merge branch 'develop' into feature/extension-serialization
2018-06-19 17:01:13 -04:00
Karishma Chadha
9646e3d11e
Refactor and move variable reference fixup function into target.
2018-06-19 15:31:08 -04:00
Karishma Chadha
f2aacbc79c
Fix up variable references after deserializing a .sprite2 or .sprite3 to avoid conflicts with pre-existing variables.
2018-06-19 14:02:54 -04:00
Paul Kaplan
6e2af4f3cc
Merge pull request #1244 from paulkaplan/sharing-apis
...
Add shareSound and shareCostume APIs with unit tests to the VM
2018-06-19 11:31:00 -04:00
Karishma Chadha
5cc48b6ef3
Provide global vars to sb2 import when deserializing a single sprite.
2018-06-19 08:52:22 -04:00
Karishma Chadha
86a8d93eb6
Sprite3 Export/Import.
2018-06-19 08:51:16 -04:00
Florrie
0527fcde64
Fix new sprites only showing up in the top-right quadrant
2018-06-18 17:20:59 -03:00
Connor Hudson
aa16930e34
Add initial implementation of extension serialization/deserialization
2018-06-18 15:00:33 -04:00
Evelyn Eastmond
d09c3f0418
MicroBit extension, Scratch Link first draft. ( #1230 )
...
* First microbit gui tests
* Fixed JSONRPC inheritance. Renamed ScratchBLE/ScratchBT files. Removed ScratchBT test code from Microbit extension. Renamed addLine to log.
* Fixed log comments. Removed addLine from Microbit.
* Adding auto-connect to Microbit at extension loading. Adding hack for displayText block to Scratch-Link.
* Resolved merge conflicts and brought in latest microbit extension example code.
* Updated microbit write tests for displayText and displaySymbol blocks. Some linting.
* Some linting and adding of BLE Characteristic consts.
* Linting fixes.
* Moving micro:bit device connection code all to the MicroBit class, decoupling Scratch3MicroBitBlocks from connection code.
* Removing old disconenct handlers from MicroBit class. Moved service into new BLEUUID data structure.
* Renamed _write to _send. Moved all BLE encoding concerns to the _send method.
* Using the util log. Some linting.
* Added _read method to MicroBit class. Renamed _send to _write.
* Some linting and formatting comments.
* First pass at peripheral chooser pattern for ScratchBLE.
* Testing characteristicDidChange events, and some changes to ScratchBLE on ready events.
* Refactoring work on PeripheralChooser and ScratchBLE.
* Some variable renaming and method signature stubs.
* Peripheral chooser method signatures.
* Moved base64 encoding/decoding to util. Some method signature formatting.
* Adding test stubs for new util and io classes.
* Adding test stub for MicroBit extension.
* Clean up for PR.
* Clean up for PR.
* Final cleanup for PR.
* Removed logging to console.
* Adding 'btoa' and 'atob' node modules and using them in Base64Util.
2018-06-18 14:56:51 -04:00
chrisgarrity
1e3907e922
Localize category labels
...
Added formatMessage to the name attribute for:
* music
* pen
* translate
* video motion
Skipped speak extension - trademarked name
Skipped extensions that are not yet localized at all.
2018-06-18 11:37:10 -04:00
Paul Kaplan
1dcd174dea
Add shareSound and shareCostume APIs with unit tests to the VM
2018-06-18 10:39:22 -04:00
kchadha
da30abbfb5
Merge pull request #1240 from kchadha/block-comment-disappearing-bugfix
...
Add comment id to block when converting from XML to vm representation.
2018-06-15 17:36:48 -04:00
Karishma Chadha
f3d49f75c8
Clean up comment serialization, add tests for new and old serialization (old is still valid, just more verbose).
2018-06-15 14:57:49 -04:00
Karishma Chadha
76b423e481
Make sure to set comment property of block when creating a new block via XML using the adapter. Update unit tests.
2018-06-15 13:58:03 -04:00
kchadha
29b79878bc
Merge pull request #1236 from kchadha/comment-save-load
...
Comment Save & Load
2018-06-14 18:42:19 -04:00
kchadha
529d271186
Merge pull request #1235 from kchadha/xml-escape-comments
...
XML escape comment text.
2018-06-14 14:46:02 -04:00
Karishma Chadha
e2eadbf603
Comment save and load.
2018-06-14 14:11:20 -04:00
Eric Rosenbaum
8c748cebb4
Merge pull request #1233 from ericrosenbaum/feature/extension-status-button
...
Add extension status button
2018-06-14 11:51:32 -04:00
Karishma Chadha
0d403d8e83
XML escape comment text.
2018-06-14 11:39:03 -04:00
Ray Schamp
f5234c777a
Merge pull request #1211 from mzgoddard/broadcast-and-wait-promise
...
yield a tick if broadcastandwait is waiting on threads waiting for a future tick
2018-06-13 15:58:37 -04:00
Eric Rosenbaum
c2b262ba97
Add status button to microbit extension
2018-06-13 15:53:05 -04:00
Eric Rosenbaum
7d0c45546c
Add extension status button XML
2018-06-13 15:52:51 -04:00
Paul Kaplan
bd80e4262d
Merge pull request #1231 from paulkaplan/reorder-tarrgets
...
Add top-level `reorderTarget` API to VM
2018-06-13 11:07:52 -04:00
Paul Kaplan
4b64df222a
Hoist target list assignment to simplify code.
2018-06-13 10:09:22 -04:00
kchadha
3308a7c6a2
Merge pull request #1229 from kchadha/imported-comment-positioning-fix
...
Update position for comments imported from 2.0 projects after auto-positioning.
2018-06-13 09:51:45 -04:00
Paul Kaplan
0ec0ea6ef7
Add reorderTarget API to VM
2018-06-13 09:20:22 -04:00
kchadha
b4891bb0d5
Merge pull request #1226 from towerofnix/costumename-vm
...
Implement "costume name" block
2018-06-12 18:50:46 -04:00
Florrie
c24e34d4e3
Remove unused getCostumeName function
2018-06-12 19:32:29 -03:00
Florrie
24c6338302
Map costumeName -> costumenumbername [name]
...
...instead of mapping to a new obsolete/hidden block 'costumename'.
Thanks to @kchadha for helping with this!
2018-06-12 19:27:36 -03:00
Karishma Chadha
5086eced15
Position for block comments imported from 2.0 should be updated when receiving a create event from scratch-blocks.
2018-06-12 17:10:16 -04:00
Michael "Z" Goddard
728769ea24
do not enumerate Blocks._cache
...
Do not stringify or enumerate Blocks._cache items.
2018-06-12 14:21:40 -04:00
Michael "Z" Goddard
05291aa254
turn reporter tree into instruction sequence
...
Turn the reporter tree execute walks into a sequence of block
functions. After calling a block function store the reported value in
the arguments object its depending block will use.
- Set the reported value on the thread. There is only ever one "just"
reported value, which is read and stored elsewhere after being
reported.
2018-06-12 14:21:40 -04:00
Michael "Z" Goddard
e0ec1ad08f
add id to block execute cache data
2018-06-12 10:05:54 -04:00
Michael "Z" Goddard
d161251a9b
yield a thread loop or tick in event_broadcastandwait
...
- yield a thread loop or tick in looks_switchbackdroptoandwait
If all threads broadcastAndWait is watching are "waiting" for a future
frame, yield until the next tick so event_broadcastandwait also defers
to a future frame.
2018-06-12 10:02:28 -04:00
Paul Kaplan
418c3837c6
Merge pull request #1209 from technoboy10/bugfix/gh-1135-bubble-edge
...
Check that bubble bounds do not extend past stage boundaries
2018-06-11 12:14:53 -04:00
Connor Hudson
244ffb38c4
Merge pull request #1218 from technoboy10/bugfix/gh-1165-monitor-import
...
Fix importing hidden monitors from Scratch 2 projects
2018-06-11 10:27:45 -04:00
Eric Rosenbaum
78074ec575
Merge pull request #1222 from picklesrus/speech-extension-icons
...
Speech extension icons
2018-06-11 09:50:42 -04:00
Connor Hudson
38756e1022
Update code comments to address PR feedback
2018-06-11 08:37:25 -04:00
Florrie
404834018b
Implement costume name block
2018-06-09 21:34:21 -03:00
picklesrus
97b8ec83bd
Ignore lint for the icons
2018-06-08 14:45:13 -07:00
picklesrus
6184c3ba12
Replace icons with version downloaded from https://material.io/tools/icons/?style=baseline
2018-06-08 14:42:46 -07:00
Connor Hudson
78da15c09c
Remove blocks.mode reference
2018-06-08 17:04:52 -04:00
Connor Hudson
a6629628cd
Use monitor show/hide monitor functions, remove incorrect block property references
2018-06-08 16:00:12 -04:00
Connor Hudson
0e394fc873
Add monitor show/hide functions, changed remove monitor to delete state
2018-06-08 15:59:35 -04:00
Eric Rosenbaum
173fb6127c
Merge pull request #1214 from ericrosenbaum/feature/when-touching
...
Add when touching hat
2018-06-07 15:26:09 -04:00
Connor Hudson
2cb276c476
Consolidate some logic in requestAddMonitor and requestUpdateMonitor
2018-06-07 15:18:45 -04:00
kchadha
3a61cac384
Merge pull request #1217 from kchadha/comment-state-fixes
...
Comment state fixes
2018-06-07 14:31:43 -04:00
Eric Rosenbaum
db7c56e08b
Change function name and comment for clarity
2018-06-07 14:12:23 -04:00
Connor Hudson
99dc46ba80
Add x, y to changeBlock function again after change to merge logic
2018-06-07 11:27:10 -04:00
Connor Hudson
833c27ef21
Remove debug comments, tweak logic for monitor data merging
2018-06-07 11:24:55 -04:00
Karishma Chadha
6bc04c4bef
Let comment change event handler multitask.
2018-06-07 11:04:03 -04:00
Paul Kaplan
db3fca17bc
Merge pull request #1204 from paulkaplan/reorder-apis
...
Add methods for reordering costumes and sounds
2018-06-07 10:54:15 -04:00
Ray Schamp
7de83bea07
Merge pull request #1215 from picklesrus/speech-extension-audiocontext
...
Add webkitAudioContext if AudioContext does not exist. This might fix…
2018-06-07 10:53:45 -04:00
Karishma Chadha
7b55d8e7ab
Undo change that moves block comment relative to block move.
2018-06-07 10:18:34 -04:00
Connor Hudson
13bf932fbb
Remove unnecessary arguments to requestAddMonitor
2018-06-07 10:11:15 -04:00
Karishma Chadha
d99a082952
CommentChange events now store text changes in an object with property text, instead of just a string.
2018-06-07 10:09:38 -04:00
picklesrus
391f47d100
Add webkitAudioContext if AudioContext does not exist. This might fix the speech extension in safari, but it is tricky to tell since I am running into problems with permissions and localhost.
2018-06-06 16:49:46 -07:00
Paul Kaplan
28f425d53e
Set costume directly, no updates are needed
2018-06-06 17:29:48 -04:00
Connor Hudson
77dda04228
Set visible: false instead of deleting state in requestRemoveMonitor
...
This potentially has performance implications, to be investigated later.
2018-06-06 17:14:09 -04:00
Eric Rosenbaum
1a72512a62
Moving touchingObject into rendered target
2018-06-06 16:34:58 -04:00
Connor Hudson
0d0543810f
Properly capture all variable monitor values on add
2018-06-06 16:00:59 -04:00
Connor Hudson
18640d7ddc
use mergeWith in requestAddMonitor, requestUpdateMonitor
...
So undefined values don't overwrite defined ones
2018-06-06 15:54:12 -04:00
Paul Kaplan
bf2879ee0b
Fix incorrect clamping
2018-06-06 15:01:02 -04:00
Eric Rosenbaum
431d4bd66b
Add when touching hat
2018-06-06 13:39:23 -04:00
Paul Kaplan
0cd50fbb2c
Propagate the return value of reorder functions, update comments
2018-06-06 11:13:30 -04:00
Eric Rosenbaum
332e90e408
Merge pull request #1208 from ericrosenbaum/feature/increase-pen-size
...
Increase maximum pen size to 1200
2018-06-06 10:16:15 -04:00
Michael "Z" Goddard
0a006dc981
add Runtime.isWaitingThread
...
Add a Runtime Thread helper to check if a thread is in a state where it
will not change at least until next frame. This includes any state
where the thread is done, as that will not change either.
2018-06-06 10:16:05 -04:00
Michael "Z" Goddard
9311a274d5
add BlockUtility.yieldTick
2018-06-06 10:16:05 -04:00
Michael "Z" Goddard
84705fc463
replace new Promise(r => r()) with Promise.resolve
...
Promise.resolve is a Promise convenience method that creates a promise
resolved to a given argument like creating a promise with a function
that immediately calls the resolve function with the given value.
2018-06-06 09:53:45 -04:00
Paul Kaplan
d6d72f6fa7
Use utility function for clamping
2018-06-06 09:43:54 -04:00
Paul Kaplan
1ebb736a2a
Check specifically for number in optional property
2018-06-06 09:43:54 -04:00
Paul Kaplan
837703d4ac
Make reorder functions return if a change occurred.
...
Gotta get that testing coverage percent up :)
2018-06-06 09:43:54 -04:00
Paul Kaplan
e6ebc33e9e
Add sound and costume reordering methods and tests to top-level API
2018-06-06 09:43:54 -04:00
Paul Kaplan
d3fd3ff806
Add reorderSound and unit test to rendered-target
2018-06-06 09:43:54 -04:00
Paul Kaplan
5fd5b30ccf
Add reorderCostume method and unit test to rendered target
2018-06-06 09:43:54 -04:00
Paul Kaplan
9fce4d40d0
Fix bug with zero adding a costume/sound at index 0
2018-06-06 09:43:54 -04:00
Andrew Sliwinski
c2645f3da5
Merge pull request #1210 from thisandagain/feature/polly
...
Add initial working version of the Amazon Polly extension
2018-06-05 18:35:38 -04:00
Andrew Sliwinski
bccdef0674
Future-proof opcode and fix issues with copied comments
2018-06-05 18:32:02 -04:00
Andrew Sliwinski
55b1a794ce
Add initial working version of the Amazon Polly extension
2018-06-05 17:51:55 -04:00
kchadha
1f209ad4e0
Merge pull request #1191 from kchadha/comment-events
...
Persist comment state.
2018-06-05 16:53:57 -04:00
Paul Kaplan
a11d1be3fc
Fix comments
2018-06-05 16:08:14 -04:00
Eric Rosenbaum
23c7df5751
Max pen size 1200
2018-06-05 15:59:14 -04:00
Connor Hudson
25290e7f6a
Check that bubble bounds do not extend past stage boundaries
...
For when you can't flip the bubble, but need it to remain on-stage
2018-06-05 15:58:03 -04:00
Karishma Chadha
644fab0135
Track block comment movement when block moves.
2018-06-05 15:40:19 -04:00
Karishma Chadha
7c5a2ae8e0
Add check that block associated with comment actually exists.
2018-06-05 15:17:28 -04:00
Karishma Chadha
d58bb8bcfb
Clean up optRuntime checks in blocklyListen
2018-06-05 15:13:03 -04:00
Karishma Chadha
2171cb69d0
No need to floor workspace coordinates in vm runtime.
2018-06-05 15:12:25 -04:00
Paul Kaplan
3a697ae0ac
Add top-level API for getting and setting variable values
2018-06-05 10:46:06 -04:00
Paul Kaplan
7b2f606316
Fix an issue where variable lookup would error if stage did not exist.
2018-06-05 10:45:51 -04:00
Eric Rosenbaum
ca6a7f9311
Merge pull request #1199 from picklesrus/speech-extension-loginfo
...
Add some log info with more information about the speech match so we …
2018-06-04 16:35:58 -04:00
picklesrus
e668a210a0
Add some log info with more information about the speech match so we can debug better.
2018-06-04 13:17:34 -07:00
Kreg Hanning
9055706333
Add check for invalid symbol
2018-06-04 15:22:12 -04:00
Kreg Hanning
94464f0a52
Update microbit extension for latest firmware
2018-06-04 14:52:52 -04:00
Karishma Chadha
522706ccf8
Persist comment state.
2018-06-01 18:10:25 -04:00
Eric Rosenbaum
294801c1f3
Merge pull request #1184 from ericrosenbaum/bugfix/sound-blocks-yield
...
Set/change sound effect and volume blocks yield until the next tick
2018-06-01 13:19:50 -04:00
Eric Rosenbaum
2348d55f14
Use promises to yield
2018-05-31 17:09:47 -04:00
Paul Kaplan
ac91d8af65
Merge pull request #1180 from kchadha/parse-sb2-comments
...
Import Comments from 2.0 Projects
2018-05-31 16:51:22 -04:00
Eric Rosenbaum
46f885fc03
Sound effect and volume blocks request redraw
2018-05-31 16:47:40 -04:00
Karishma Chadha
537dc9bcd5
Addressing PR comments.
2018-05-31 16:33:42 -04:00
Michael "Z" Goddard
4ceeebb257
Use src/index as browser entry point
...
Use src/index.js as the entry by default in tools building scratch-vm
into a larger package. This saves file space by excluding extra webpack
boilerplate and may allow for deeper optimizations.
Depend on script dependencies for downstream webpack. For another
package to build in scratch-vm's dependencies without them already
being built into a consumed webpack build they need to be listed as
dependencies. This can benefit large projects that reuse the same
dependencies multiple times. Node will still use the main entry point
and its webpack build leaves the dependencies as external references so
it may reuse common modules in Node as well as in a build a browser
environment.
2018-05-31 16:32:46 -04:00
Eric Rosenbaum
c9842ec3dc
Merge pull request #1121 from picklesrus/speech-extension-checkin
...
Initial version of the speech extension. There is certainly still so…
2018-05-31 15:35:09 -04:00
picklesrus
968eeaf936
Fix missing comma from bad merge.
2018-05-31 12:14:55 -07:00
Eric Rosenbaum
3e43786ef6
Default to a random language
2018-05-31 11:48:37 -04:00
Karishma Chadha
acd728dc2b
No more xml differentiation for 'scratch' type of comments.
2018-05-30 21:18:45 -04:00
Karishma Chadha
f079eb4bbd
Don't serialize x and y for sb2 comments so that they can be auto positioned.
2018-05-30 21:18:45 -04:00
Karishma Chadha
b0aa288916
Add info about minimized state to comment xml.
2018-05-30 21:18:45 -04:00
Karishma Chadha
1639444a4d
Fix lint and tests.
2018-05-30 21:18:45 -04:00
Karishma Chadha
1401d54add
Parse SB2 comments and attach block comments to the blocks they belong to. Send comment xml on workspace update so they can be rendered.
2018-05-30 21:15:14 -04:00
picklesrus
3a5051646f
Now fuzzymatchResult is unused so remove it too.
2018-05-30 13:22:07 -07:00
picklesrus
bb408b8673
Remove some code that set the utterance to the fuzzy match result
2018-05-30 13:22:07 -07:00
picklesrus
e72ea04c10
Move the add event listener code to be in the same place where we call connect so there is only one place to do it.
2018-05-30 13:22:07 -07:00
picklesrus
ef142107a6
Remove the event listener for processing audio at the same time that we disconnect the script node. At this point we are closing the web socket and do not want to process more of the microphone data even if it is already in flight. Also add it back when we resume listening instead of just at init time.
2018-05-30 13:22:07 -07:00
picklesrus
ffced16b95
Fix a copy/paste comment error and initialize current_utterance differently
2018-05-30 13:22:07 -07:00
picklesrus
a2eee6a1dd
Change name of opcode to speech_ from speech.Plus, remove old comment.
2018-05-30 13:22:07 -07:00
picklesrus
adf5d0acfd
Add speech extension to the extension manager.
2018-05-30 13:22:07 -07:00
picklesrus
250570e0ed
Use arraybuffer-loader instead of buffer-loader to load the start and end sounds. The music extension switched to this a few days ago.
2018-05-30 13:20:38 -07:00
picklesrus
e7987a6a4c
Initial version of the speech extension. There is certainly still some stuff to figure out but the core of it is here.
2018-05-30 13:20:38 -07:00
Eric Rosenbaum
057e89b1e0
Merge pull request #1178 from picklesrus/translate-language-reporter-block
...
Add language reporter block to translate extension
2018-05-30 10:25:22 -04:00
picklesrus
123edcb913
remove stray space
2018-05-29 15:14:38 -07:00
picklesrus
e2f6dfd29f
- Update the reporter to return the human readable language.
...
- Remove the non-final icons and replace with a TODO.
- Add messages for the text in the blocks.
2018-05-29 15:06:38 -07:00
picklesrus
f615e9191a
Add language reporter block to translate extension
2018-05-28 11:58:17 -07:00
DD
7874ea9b1a
Allow rotation centers with zeros
2018-05-25 16:54:54 -04:00
kchadha
a85f641d25
Merge pull request #1148 from kchadha/stage-layering
...
Layer group ordering.
2018-05-25 09:10:05 -04:00