Commit graph

1243 commits

Author SHA1 Message Date
Christopher Willis-Ford
cd1c72c7cc Convert attachTestStorage to makeTestStorage
Rather than assuming that the storage instance will be attached to a VM,
just return it. Callers may attach it to a `VM` or (in the case of
`import_sb2.js`) to a `Runtime`.
2017-06-12 12:34:20 -07:00
Christopher Willis-Ford
88e44c65eb Remember the data format when an asset is imported 2017-06-12 12:31:49 -07:00
Ray Schamp
d9704b23c3 Merge pull request #598 from cwillisf/improve-clone-cleanup
Improve cleanup on clone disposal
2017-06-12 09:45:07 -04:00
Paul Kaplan
f968edec54 Merge pull request #594 from paulkaplan/select-other-sprites-after-delete
Select the last target instead of the first after deleting
2017-06-12 08:41:20 -04:00
Paul Kaplan
9c5d43e9d3 Enhance sprite delete behavior 2017-06-12 08:35:27 -04:00
DD Liu
fb986effe6 Merge pull request #593 from fsih/fixWaitCalledEveryFrame
Change wait to use a promise instead of being called every frame
2017-06-08 15:35:48 -04:00
Christopher Willis-Ford
6320fd72c3 Add test for clone cleanup
This new test verifies that clones and their associated threads are
cleaned up properly by the `delete this clone` block. The clones run two
stacks each: one which waits and then deletes the clone, and another
which includes a `forever` loop: this is to verify that the thread
running the `forever` loop is ended when the clone itself is deleted.
The project does this with two batches of clones to ensure there are no
problems with reusing array indices previously occupied by now-removed
threads or clones.
2017-06-08 11:16:29 -07:00
Christopher Willis-Ford
454082b569 Improve cleanup on clone disposal
The `dispose()` method on `RenderedTarget` now:
- informs the runtime that it should end any threads corresponding the
  target being disposed, and
- removes the clone from its sprite.
2017-06-07 17:05:24 -07:00
Chris Willis-Ford
d41997b58b Merge pull request #556 from cwillisf/wedo2-blocks
Add WeDo 2.0 blocks
2017-06-07 09:57:36 -07:00
Paul Kaplan
40345384aa Select the last target instead of the first 2017-06-07 09:06:46 -04:00
DD Liu
e237d24846 fix lint 2017-06-06 10:21:27 -04:00
DD Liu
ab0cef52eb Change wait to use a promise instead of being called every frame 2017-06-05 16:55:15 -04:00
Ray Schamp
ecf535f4c3 Merge pull request #579 from cwillisf/load-jpeg-backdrops
Specify dataFormat when loading asset for import
2017-06-02 09:06:37 -04:00
Ray Schamp
467b747283 Bump scratch-storage version
Now 0.2.0 is the lowest compatible version.
2017-06-02 08:57:21 -04:00
Ray Schamp
d3a4a7b81a Pin to latest for 3.0 modules
Reverts #551

Pinning to `^0.1.0.prerelease.0` is not equivalent to `latest`, since has the effect of not installing the latest version on `npm install`, you have to also do `npm update`. This hurts us ergonomically on `npm install`, and doesn't help us since we already are releasing breaking changes on `prerelease`.
2017-06-01 12:31:24 -04:00
Ray Schamp
adcd225598 Merge pull request #584 from rschamp/nit/no-useless-call
Fix no-useless-call todo
2017-06-01 09:48:58 -04:00
DD Liu
d3d82bae69 Merge pull request #574 from fsih/immutableState
Only send update monitor events when changes happen
2017-05-30 12:38:09 -04:00
Ray Schamp
b810b7be0a Merge pull request #583 from rschamp/bugfix/save-clones-bad
Don't serialize clones when saving
2017-05-30 10:24:52 -04:00
DD Liu
875eba568b fix file name in test 2017-05-30 10:24:09 -04:00
DD Liu
55f677702a add missing file 2017-05-30 10:05:13 -04:00
Paul Kaplan
51928bac65 Merge pull request #581 from paulkaplan/feature/variable-persistence
Add variable creation and variable serialization
2017-05-30 09:26:37 -04:00
DD Liu
809760b954 Merge branch 'develop' into immutableState 2017-05-26 13:50:50 -04:00
Paul Kaplan
3e9dfde43f Merge pull request #576 from paulkaplan/feature/monitor-labels
Send monitor opcode and block params instead of fixed label/categories
2017-05-26 11:07:58 -04:00
Paul Kaplan
77cc01a38a Add variable creation and variable serialization 2017-05-25 11:44:49 -04:00
Christopher Willis-Ford
cbfbc5d600 Convert motor duration: seconds -> milliseconds
The block takes seconds, whereas the device takes milliseconds. Turning
on a motor for 1 millisecond isn't very dramatic.
2017-05-24 16:40:55 -07:00
Christopher Willis-Ford
06fe701624 Implement WeDo 2.0 blocks 2017-05-24 16:40:55 -07:00
Christopher Willis-Ford
2625529ebe Create WeDo 2.0 device communication classes 2017-05-24 16:40:55 -07:00
Christopher Willis-Ford
eb931fd99b Specify dataFormat when loading asset for import
When importing a project we know the file extension for each asset to be
loaded. This change provides that information to the storage system so
that we can load assets which don't use the default. For example, this
allows loading JPG-format backdrops.

In support of this change, there's a new function on `StringUtil` called
`splitFirst`, which splits a string on the first instance of a separator
character. This change includes unit tests for this new function.
2017-05-24 15:35:10 -07:00
Chris Willis-Ford
3970883e45 Merge pull request #549 from cwillisf/device-manager-client
Device manager client
2017-05-24 14:43:28 -07:00
DD Liu
18282fc1d0 remove get for records 2017-05-24 16:33:22 -04:00
DD Liu
2867b5c331 add record file 2017-05-24 15:43:12 -04:00
DD Liu
5df3d4ab68 Merge branch 'develop' into immutableState 2017-05-24 15:42:54 -04:00
DD Liu
1902848ea4 Switch to ordered maps of monitor records for monitor state 2017-05-24 15:42:29 -04:00
Paul Kaplan
df9230a0ff Make helper private 2017-05-23 09:55:42 -04:00
DD Liu
acdc783f27 emit immutable 2017-05-22 17:31:53 -04:00
Andrew Sliwinski
b39de6722f Merge pull request #575 from TheBrokenRail/patch-32
Fix SB2 Imports
2017-05-22 13:47:37 -07:00
Paul Kaplan
a118ad1ac9 Merge pull request #569 from paulkaplan/feature/delete-costume-sounds
Add public API for deleting costumes and sounds
2017-05-22 15:19:20 -04:00
Paul Kaplan
5973e2d305 Add reporting for block params 2017-05-22 15:18:48 -04:00
Paul Kaplan
817ea47e32 Remove XY from monitor reporting 2017-05-22 14:40:07 -04:00
Paul Kaplan
144a0b349d Change monitor reporting from category and label to opcode 2017-05-22 13:38:29 -04:00
Paul Kaplan
3eaec99e51 Always activate the current costume after deleting 2017-05-22 08:17:28 -04:00
Paul Kaplan
423da12c3c Handle more cases of deleting costumes 2017-05-22 08:17:28 -04:00
Paul Kaplan
30a0c0d251 Allow deleting the last sound 2017-05-22 08:17:28 -04:00
Paul Kaplan
a608ca4fed Make rendered targets in charge of deleting their own sounds and costumes 2017-05-22 08:17:28 -04:00
Paul Kaplan
71081502fe Add to the vm spec 2017-05-22 08:17:28 -04:00
Paul Kaplan
73cb823199 Add delete costume and sound functions to the vm public api 2017-05-22 08:17:28 -04:00
TheBrokenRail
5b81c8b087 Update sb2_specmap.js 2017-05-21 12:26:16 -04:00
DD Liu
48c51ab2ec switch to nested immutables state 2017-05-19 17:28:00 -04:00
DD Liu
66c8d9550d add dep to package.json 2017-05-19 12:42:37 -04:00
DD Liu
9645a513b1 Only send monitor update on change 2017-05-19 12:28:05 -04:00