Commit graph

704 commits

Author SHA1 Message Date
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
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
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
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
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
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
9645a513b1 Only send monitor update on change 2017-05-19 12:28:05 -04:00
DD Liu
adc60001ee Merge branch 'develop' into updateMonitorsAction 2017-05-18 16:50:34 -04:00
Paul Kaplan
745a81ef96 Merge pull request #573 from paulkaplan/fix-sprite-renames
Fix sprite rename incrementing when renamed to itself
2017-05-18 15:40:11 -04:00
Paul Kaplan
beaef901a7 Add failing test for gui issues 370
Fix rename increment when renamed to itself
2017-05-18 09:13:31 -04:00
Ray Schamp
cf188bc5e4 Don't serialize clones when saving 2017-05-18 02:07:35 +09:00
Paul Kaplan
2c4361b830 Fix refreshTargets race condition 2017-05-16 09:20:52 -04:00
Ray Schamp
548aa6dd70 Fix no-useless-call todo
The linter is correct that `devObject[func].call(devObject, args)` is unnecessary because it's equivalent to `devObject[func](args)`.

@tmickel probably either meant to allow passing an array of arguments to be applied, or to call the function with the provided argument. Since we probably want to be able to use multi-argument functions, use `apply` and fix the one place that uses `ioQuery` with an argument.
2017-05-15 21:11:38 -07:00
DD Liu
f1208720f6 restore things lost in bad merge 2017-05-15 16:25:34 -04:00
DD Liu
65d998f473 attach issue to todo 2017-05-15 10:47:36 -04:00
DD Liu
dcdb806b57 fix merge more 2017-05-15 10:45:20 -04:00
DD Liu
4cfedc8d9d fix merge conflicts 2017-05-15 10:18:48 -04:00
DD Liu
9060a35350 Merge branch 'develop' into updateMonitorsAction 2017-05-15 10:16:12 -04:00
DD Liu
6ee1e6614c Remove leftover instances of MONITORS_ADDED and MONITORS_REMOVED, change updateMonitor to requestUpdateMonitor, update some todos with tracking numbers. 2017-05-15 10:12:25 -04:00
Ray Schamp
20337b53f2 Stop emitting SPRITE_INFO_REPORT
Instead, set the `_refreshTargets` flag, and emit a full target list at the end of the step.
2017-05-12 11:42:22 -04:00
Wang Yu
6ec231db9d Fix the next thread is skipped after clone deleted
Problem:
When a clone is deleted, its thread is removed from the thread
list; but the index "i" in the execution for-loop will still +1,
making the next thread skipped.

Changes:
Added a flag "isKilled" on a thread;
Set the flag when a thread is removed from the thread list;
reduce the "i" counter if the thread of the current loop is removed.
2017-05-12 14:01:37 +08:00
DD Liu
7a1b3eccd0 fix Object.values is not a function test 2017-05-11 17:28:48 -04:00
DD Liu
2a7f3edda6 Fix some issues: 1. Monitors not running anymore if you change categories 2. Visual reports not showing 3. threads acquiring properties of old thread when restarting thread 2017-05-11 17:12:19 -04:00
DD Liu
6b774c58f5 Update some comments 2017-05-11 15:23:11 -04:00
Christopher Willis-Ford
9d306962bd Fix socket.io-client dependency problems re: build
The Socket.io client library pulls in some extra dependencies in a way
that isn't fully compatible with Webpack. Switching to their build
output file, instead of the file specified in their `package.json`,
makes those errors go away.
2017-05-11 12:07:46 -07:00
Ray Schamp
6c9701f4b2 Merge branch 'develop' into feature/serialization 2017-05-11 13:04:27 -04:00
DD Liu
7841d44ccf Move the block.isMonitored below the block is undefined check 2017-05-11 10:33:46 -04:00
DD Liu
1ea69dd504 Rename functions to be less wordy 2017-05-11 10:20:33 -04:00
Ray Schamp
33fc797868 Select the stage if the project has no sprites 2017-05-11 02:24:10 -04:00
Ray Schamp
635b40ec2b Log parsing errors 2017-05-11 02:22:12 -04:00
DD Liu
b2e0a632e3 add add monitor action 2017-05-10 17:00:08 -04:00
DD Liu
b1355c6b0b Fire remove monitors VM event 2017-05-10 15:47:06 -04:00
DD Liu
138b4631e1 Merge branch 'develop' into updateMonitorsAction 2017-05-10 14:21:31 -04:00
DD Liu
4687fe41fe don't show green flag when monitor running 2017-05-10 14:06:02 -04:00
DD Liu
777d1f3824 add comment to monitor block listener filtering of events 2017-05-10 11:27:55 -04:00
DD Liu
4045ae7338 Merge pull request #558 from fsih/monitors
Will run blocks with boxes checked next to them once per frame in the playground, once the code to emit checkbox events is in scratch-blocks
2017-05-10 11:27:17 -04:00
DD Liu
97bfc90351 add comment to monitor block listener filtering of events 2017-05-10 11:22:03 -04:00
DD Liu
4ae1321252 indicate show visual report or update monitor on the thread 2017-05-09 17:34:13 -04:00
DD Liu
35a208d1d3 make it possible for VM to emit update monitors action 2017-05-09 12:10:11 -04:00
DD Liu
26a5098347 don't show visual report when monitor is running 2017-05-08 16:51:45 -04:00
DD Liu
706e112082 Add a block container for monitors that will run in the sequencer 2017-05-08 15:45:55 -04:00
Rasmus Haglund
d0f1b77209 Copy _customState for now until blocks have init functions 2017-05-05 21:58:18 +02:00
Christopher Willis-Ford
35d0544ce0 Respond to review comments
- Pin `got` and `socket-io.client`
- Finish removing `removeSocket`-related code
2017-05-05 10:37:29 -07:00
Ray Schamp
baee9a2793 Don't clean costume and sound lists
They are already clean, since we don't store the data on them any more.
2017-05-04 13:03:42 -04:00
Ray Schamp
efe31f4825 Fix costume deserialization 2017-05-04 12:41:54 -04:00
Ray Schamp
2181e51c38 Don't store costume data uris on costumes 2017-05-04 12:29:28 -04:00
Ray Schamp
c5cf6d9b40 Use asset id reference on sounds 2017-05-04 12:29:10 -04:00
Christopher Willis-Ford
e096f43487 DeviceManager: add more jsdoc, remove _sockets
It turns out we don't need the Device Manager to centrally track each
socket, so this change removes the Device Manager's `_sockets` property
and related code.
2017-05-03 16:28:06 -07:00
Christopher Willis-Ford
9a9c509e76 Implement a few tests for io/deviceManager 2017-04-28 14:50:57 -07:00
Christopher Willis-Ford
f3c6be2881 Add an I/O device to represent the Device Manager 2017-04-28 13:40:13 -07:00
Ray Schamp
4f59e98bc8 Merge branch 'develop' of https://github.com/LLK/scratch-vm into feature/serialization
# Conflicts:
#	src/virtual-machine.js
2017-04-27 17:53:30 -04:00
Ray Schamp
f785117e1d Lint and fix failing tests 2017-04-27 17:49:57 -04:00
Ray Schamp
c9ce6776aa Get SB3 imports working
For now, store the md5 + extension on costumes in the VM. This way we can load them the same way as we load SB2 assets.
2017-04-27 17:08:06 -04:00
Paul Kaplan
9fce03b16f Merge pull request #547 from paulkaplan/fix-add-sprite-refresh
Fix sprite not drawing after being added
2017-04-27 12:39:59 -04:00
Paul Kaplan
c891268672 Fix sprite not drawing after being added 2017-04-27 11:10:22 -04:00
Ray Schamp
b2ea201707 Don't include asset data in exported JSON 2017-04-26 17:45:36 -04:00
Ray Schamp
2a4af8a9ca Fix up most linting/merge errors 2017-04-26 16:50:53 -04:00
Ray Schamp
a4cdb027ab Merge branch 'develop' of github.com:morantsur/scratch-vm into feature/serialization
# Conflicts:
#	src/playground/index.html
#	src/serialization/sb2.js
#	src/sprites/rendered-target.js
#	src/virtual-machine.js
#	test/unit/serialization_sb2.js
2017-04-26 11:44:53 -04:00
Ray Schamp
83ae96b51b Merge pull request #542 from a49594a/patch-1
Fix missing right quote marks in `blockToXML`
2017-04-24 12:23:55 -04:00
john
e91865fc21 the right quots is mission in blockToXML
the right quote is mission in blockToXML, and it will result in the following code execution errors

        vm.on('workspaceUpdate', function (data) {
            workspace.clear();
            var dom = Blockly.Xml.textToDom(data.xml);
            Blockly.Xml.domToWorkspace(dom, workspace);
        });
2017-04-21 16:36:33 +08:00
Christopher Willis-Ford
c750f53c81 Get Asset and AssetType from storage instance 2017-04-20 16:12:17 -07:00
Ray Schamp
9c34b692c0 Fix ES6 lint after merge 2017-04-19 17:54:52 -04:00
Ray Schamp
e96807b399 Merge branch 'develop' of https://github.com/LLK/scratch-vm into es6
# Conflicts:
#	src/import/sb2import.js
#	src/virtual-machine.js
#	webpack.config.js
2017-04-19 17:54:31 -04:00
Ray Schamp
d2343e3601 Fix up some auto-converted weirdness 2017-04-19 17:36:33 -04:00
Paul Kaplan
8a4c3af18a Merge pull request #535 from paulkaplan/isolate-import
Separate downloading from installation of sprite info
2017-04-19 11:40:30 -04:00