Karishma Chadha
21d60604ac
Some block serialization compression -- compress primitives. This is a WIP since we don't deserialize blocks serialized in this way.
2018-04-06 11:33:44 -04:00
Karishma Chadha
334058b081
Block and variable compression. No need to serialize uid of block and shadow if they are the same, reduce duplication of information.
2018-04-06 11:33:44 -04:00
kchadha
4b62a938c4
Merge pull request #1000 from kchadha/deserialize-assets-in-sb2
...
Deserialize sb2 assets while loading local .sb2.
2018-04-06 11:33:00 -04:00
Ray Schamp
efb1bdb1ea
Remove video motion icon until we have one
2018-04-06 09:55:16 -04:00
Michael "Z" Goddard
91747fd229
Add back missing Scratch3VideoSensingBlocks.INTERVAL
...
The INTERVAL time defines how often to analyze a frame. Without the value the
test whether a frame should be analyzed will always be false.
2018-04-05 17:47:07 -04:00
Corey Frang
78199c41a5
Allow specmap to have methods to branch into multiple sb3 opcodes
2018-04-05 15:39:41 -04:00
Christopher Willis-Ford
3be16eddb1
Add code to load 'core' extensions
2018-04-05 12:20:03 -07:00
Christopher Willis-Ford
f8db6c3f02
Support extension translation
...
The new `maybeFormatMessage` function detects whether its argument
looks like a message descriptor object and, if so, will call
`formatMessage` on it. This is now used for all user-visible text fields
in extensions.
Also, messages may use "select" to check the target type with a message
like this: '{targetType, select, stage {text for stage} sprite {text for
sprite} other {text for other}'. Note that the "other" clause is
required by `formatMessage`.
2018-04-05 12:17:05 -07:00
Eric Rosenbaum
2a90e5868d
Fix runtime scope and unit test
2018-04-05 15:01:52 -04:00
Ray Schamp
41955913aa
Merge pull request #1007 from mzgoddard/motion-detect-2
...
Motion detect 2
2018-04-05 11:59:59 -04:00
Eric Rosenbaum
88b13e218d
Clones inherit music custom state
2018-04-05 11:27:54 -04:00
Christopher Willis-Ford
defdd42c47
Add TargetType enum for use by/with extensions
2018-04-04 23:45:26 -07:00
Christopher Willis-Ford
de9e2be265
Add EVENT extension block type
...
An EVENT block is like a HAT block but it has no implementation
function. Its stack runs when the VM emits the corresponding event.
2018-04-04 23:44:59 -07:00
Christopher Willis-Ford
af058b8146
Support LOOP and CONDITIONAL blocks in extensions
...
A LOOP block is like a conditional, but the LOOP block will be
re-evaluated after any child branch runs.
Also:
- Support using '---' as a block separator
- Refactor common code from `_registerExtensionPrimitives` and
`_refreshExtensionPrimitives` into new `_fillExtensionCategory`
- Improve error reporting during block conversion
2018-04-04 22:19:48 -07:00
Eric Rosenbaum
21ae14c499
Merge pull request #1014 from ericrosenbaum/bugfix/video-state
...
Import and store video state
2018-04-04 19:59:14 -04:00
Eric Rosenbaum
5dc8e51c6d
Import and store video state
2018-04-03 16:36:58 -04:00
Michael "Z" Goddard
d4bffcbddb
Rename playground/motion.html to video-sensing.html
2018-04-03 16:19:52 -04:00
Michael "Z" Goddard
6d2c29530f
Document VideoMotionView
2018-04-03 16:19:52 -04:00
Michael "Z" Goddard
9a2e937271
Document VideoMotion class
...
- Rename video_sensing/lib.js to video_sensing/library.js
2018-04-03 16:19:52 -04:00
Michael "Z" Goddard
a32b15a8f9
Add VideoSensing math module
...
- motionVector takes motion component and returns a 2d vector
- scratchAtan2 takes a y and x value and returns an angle in degrees
referencing Scratch's coordinate system
2018-04-03 16:19:52 -04:00
Michael "Z" Goddard
b46c956203
Comment items in Scratch3VideoSensingBlocks
2018-04-03 16:19:51 -04:00
Michael "Z" Goddard
c291a04cc7
Add file comment block to video_sensing/debug.js
2018-04-03 16:19:51 -04:00
Michael "Z" Goddard
e65b7985cb
Add whenMotionGreaterThan hat block to video sensing ext
2018-04-03 16:19:51 -04:00
Michael "Z" Goddard
cfd74a7c7f
Add checkboxes for each video sensing debug view
2018-04-03 16:19:51 -04:00
Michael "Z" Goddard
b012d60689
Add video sensing debug C_CELL and AB_CELL views
...
- Rename UV to UV_CELL, UV cannot be rendered in a non-cell format
Modify C and AB views as well to better represent in color the work being done.
If you watch the debug views with XY_CELL, AB_CELL, C_CELL, and UV_CELL you can
see how AB_CELL and C_CELL affect UV_CELL in similar color patterns.
2018-04-03 16:19:51 -04:00
Michael "Z" Goddard
0a58a6d806
Merge pull request #1001 from mzgoddard/motion-detect
...
Motion detect
2018-04-03 16:19:26 -04:00
Florrie
b861c78086
Implement 'get item # of (thing) in (list)'
2018-03-31 13:25:50 -03:00
Michael "Z" Goddard
f3d19dc1a1
Use videoSensing extension for sb2 senseVideoMotion
2018-03-29 19:02:07 -04:00
Michael "Z" Goddard
c206dc3241
Add motion playground page for debugging video sensing
2018-03-29 19:02:07 -04:00
Paul Kaplan
2d9bd92140
Merge pull request #930 from ericrosenbaum/bugfix/loudness-performance
...
Only measure loudness once per step
2018-03-29 16:27:10 -04:00
Michael "Z" Goddard
3c473f6ba8
Translate scratch 2 video sensing into scratch 3 extension
...
- Add videoSensing extension to extension-manager
2018-03-29 15:15:11 -04:00
kchadha
51306e3492
Merge pull request #963 from towerofnix/foreach-vm
...
Implement for-each block
2018-03-28 10:52:14 -04:00
Karishma Chadha
b8e67a7727
Hookup sb2 import code to deserialize assets from local sb2 file.
2018-03-25 18:14:30 -04:00
Paul Kaplan
13641297fd
Merge pull request #996 from paulkaplan/fix-bubble-bounds
...
Position the speech bubble more tightly.
2018-03-23 14:36:52 -04:00
Paul Kaplan
ea534b35ea
Position the speech bubble more tightly.
2018-03-23 10:51:19 -04:00
kchadha
dbc7b9597f
Merge pull request #979 from kchadha/serialization-cleanup
...
SB3 Serialization & Load Project
2018-03-23 10:11:49 -04:00
Paul Kaplan
a27ed888d2
Merge pull request #992 from paulkaplan/stage-clicked
...
Make "when clicked" blocks target dependent.
2018-03-23 09:20:22 -04:00
Chris Willis-Ford
9dc3df1fda
Merge pull request #994 from cwillisf/looks-extension-support
...
Looks extension support
2018-03-22 15:16:21 -07:00
Florrie
1db4a2c7a7
Compatibility implementation
2018-03-22 18:55:36 -03:00
Eric Rosenbaum
4e3c5c7f2e
Merge pull request #991 from ericrosenbaum/bugfix/clones-share-activesoundplayers
...
Clones share their parent’s activeSoundPlayers object
2018-03-22 16:49:04 -04:00
Karishma Chadha
c4ad76eef1
Turns out ArrayBuffers are not views of themselves.
2018-03-22 16:19:36 -04:00
Karishma Chadha
3a4f620318
Check if loadProject input is any typed array using ArrayBuffer.isView. This allows us to pass a project's asset.data (from storage) directly instead of calling toString on it first.
2018-03-22 14:04:58 -04:00
Karishma Chadha
2c3e3472ed
Add warning to 'fromJSON' function since it is now just a wrapper around loadProject. Change vm sb3_serialization test to use 'loadProject' function instead of 'fromJSON'.
2018-03-21 17:55:02 -04:00
Karishma Chadha
ce6ef92eb5
Clear runtime after validation success instead of before.
2018-03-21 17:46:39 -04:00
Karishma Chadha
ab863096cd
Remove cruft and fix for..in loops.
2018-03-21 17:42:01 -04:00
Karishma Chadha
9d3a3fd12f
When serializing md5+ext, the name should reflect that. Deserializing translates this name back to what vm and other components currently expect.
2018-03-21 16:51:40 -04:00
Karishma Chadha
24e248d4fb
Removing cruft...
2018-03-21 14:46:21 -04:00
Christopher Willis-Ford
26bc7851bb
Rename ReporterScope.SPRITE to TARGET & add JSDoc
2018-03-20 15:30:34 -07:00
Christopher Willis-Ford
d3352ac54d
Add JSDoc tags for ArgumentType & BlockType
2018-03-20 15:26:27 -07:00
Christopher Willis-Ford
1049e90a8f
Wrap extension menu function to provide context
...
When the extension system calls a function to retrieve extension menu
items, it now provides the ID of the current editing target. There's
also now a little bit of error-checking on the results.
2018-03-20 15:26:27 -07:00
Christopher Willis-Ford
2932f232c4
Improve developer feedback for missing block func
2018-03-20 15:26:12 -07:00
Christopher Willis-Ford
4201f212d3
Add JSDoc for extension metadata format
...
This is a first pass and is probably not 100% correct. It also contains
the new (experimental?) reporter scope field.
2018-03-20 15:05:21 -07:00
Christopher Willis-Ford
6a06984678
Add enum for reporter scope
...
Some reporters are sprite-specific, such as the costume name/number or
X position of the sprite. Others are global. This enum allows an
extension author to specify the scope of a reporter.
2018-03-20 15:05:21 -07:00
Paul Kaplan
140094a7ad
Make "when clicked" blocks target dependent.
...
This involves adding a new opcode, event_whenstageclicked, and adding a
method to the blocks container to update the opcode pair depending on
whether the target is the stage. This method is then called in two
places: first after the sb2 import parses the blocks (not done in the
sb2 parsing itself because no other blocks are target specific) and then
again when blocks are shared between targets.
Also added tests for the block container method, and a fixture project
that tests the opcode splitting on sb2 import.
2018-03-20 10:41:50 -04:00
Eric Rosenbaum
2b985fa083
Merge pull request #975 from ericrosenbaum/bugfix/move-volume-to-rendered-target
...
Move volume to rendered target
2018-03-19 16:45:25 -04:00
Eric Rosenbaum
2527c804ea
Clones get ref to parent’s activeSoundPlayers obj
2018-03-19 16:44:49 -04:00
Chris Willis-Ford
4c0e968bec
Merge pull request #978 from cwillisf/fix-saythink-and-wait
...
Fix say/think and wait
2018-03-19 10:36:01 -07:00
Paul Kaplan
979c8b05e0
Merge pull request #965 from bartljak/issue#960
...
fixed issue 960
2018-03-19 06:06:00 -07:00
Karishma Chadha
b4f6f24926
Fix up tests.
2018-03-16 11:43:27 -04:00
Florrie
6517bd0974
Make 'key pressed?' block import correctly
2018-03-16 11:58:25 -03:00
Karishma Chadha
003ed01015
Update VM to use scratch-parser callback interface
2018-03-15 22:40:40 -04:00
Andrew Sliwinski
1d90c82fcf
Merge pull request #945 from picklesrus/translate-extension
...
Translate extension block
2018-03-15 08:36:39 -04:00
kchadha
a3ed4cad99
Remove todo
2018-03-14 22:52:00 -04:00
kchadha
0d55e4c74f
Modifying apis to accomodate existing tests.
2018-03-14 22:52:00 -04:00
kchadha
22be2b15f3
Major refactor of project loading. Removed loadProjectLocal, in favor of going back to single API (loadProject). loadProject uses scratch-parser to unpack and validate project. Scratch-parser is getting updated to return validated project, with appended project metadata, and unpacked zip (JSZip object) if provided a buffer.
2018-03-14 22:52:00 -04:00
kchadha
2c551d1739
Some more cleanup.
2018-03-14 22:51:59 -04:00
kchadha
09c8110923
Always serialize parent and next on a block even if they're null.
2018-03-14 22:51:59 -04:00
kchadha
4f6ece9fa8
Be specific about what we're serializing. Flatten targets first by turning them into JSON strings and re-parsing them, and then only serialize the properties necessary for saving and loading.
2018-03-14 22:51:59 -04:00
Christopher Willis-Ford
4210c6dd4c
Fix stack check in stepThread
...
The previous logic seemed to be expecting `peekStack` to return 0 when
the stack was empty, but its return type is `?string` and it returns
`undefined` when the stack is empty. The `!== 0` check would never pass,
then, leading to problems with (for example) the "say/think and wait"
blocks.
2018-03-14 16:17:29 -07:00
Christopher Willis-Ford
b61c6a8f76
Don't render say/think bubbles during tests
...
This change makes say & think commands work during headless tests.
2018-03-14 16:07:05 -07:00
Eric Rosenbaum
a652156032
Sensing-of block gets target volume
2018-03-13 11:45:11 -04:00
Eric Rosenbaum
f8c2771776
Use target volume, not custom state
2018-03-13 11:43:53 -04:00
Eric Rosenbaum
a7c6c430b8
Add volume to rendered target
2018-03-13 11:43:33 -04:00
Andrew Sliwinski
2ae788ca28
Merge pull request #968 from gnarf/instanceof-fix
...
ensure this.workerClass exists before instanceof check
2018-03-12 12:45:09 -04:00
Andrew Sliwinski
6039f1b7e7
Merge pull request #969 from gnarf/fix-music-no-audio
...
Ensure music extension _decodeSound is promise
2018-03-12 12:44:16 -04:00
picklesrus
39d2559e37
Initial version of translate extension.
2018-03-11 12:18:21 -07:00
kchadha
adfbeddcab
Merge pull request #964 from kchadha/save-load
...
Preliminary Save and Load Work
2018-03-09 09:34:44 -05:00
Corey Frang
1d414dd5a0
Ensure music extension _decodeSound is promise
...
Currently if there is no audio engine detected this returns undefined,
which in turn causes the line above to fail trying to call `.then` on
it.
2018-03-08 12:32:01 -05:00
kchadha
d59a4ffd55
VM receives input buffer representing project to load and unpacks it as zip. This functionality will eventually move to storage.
2018-03-08 10:25:58 -05:00
Corey Frang
9b8a8647f0
ensure this.workerClass exists before instanceof check
...
This avoids an error I was running into in a node environment:
```
TypeError: Right-hand side of 'instanceof' is not an object
```
2018-03-07 18:13:15 -05:00
kchadha
cc2bf1dfc7
Merge pull request #957 from kchadha/mouse-up-drag-end
...
Use flag to selectively activate 'when this sprite clicked' hat on mouse up
2018-03-07 13:26:28 -05:00
Chris Willis-Ford
219f083a29
Merge pull request #934 from picklesrus/extensions-dynamic-menu
...
Extensions dynamic menu
2018-03-06 16:33:26 -05:00
Jake Bartles
11e12cca4f
fixed issue 960
2018-03-05 20:15:49 -05:00
Karishma Chadha
d6e248aab8
VM should do the heavy lifting of saving project to a zip file, and return a promise of the zip to gui.
2018-03-05 17:20:36 -05:00
Florrie
00b151b9ff
Add doForLoop to sb2 specmap
2018-03-05 17:36:17 -04:00
Karishma Chadha
c0afcd2ab3
Ensure that md5 and assetId stay in sync.
2018-03-05 15:16:06 -05:00
Karishma Chadha
605ce4b16d
Configuring scratch-vm to use changes made to scratch-parser.
2018-03-05 15:16:06 -05:00
Karishma Chadha
e0b23cde31
Can load saved sb3 files (including sounds and costumes that were modified in the 3.0 editors and saved in the sb3 zip when the project was saved). Tests still need to be fixed.
2018-03-05 15:16:06 -05:00
Karishma Chadha
089df0a50f
Sounds get updated in storage and vm runtime when they are updated in the sound editor. The updateSvg function ensures that the costume that was edited has an updated dataFormat property in the vm runtime. This is specifically for when pngs get edited in the vector editor. Their file format should then get updated to svg.
2018-03-05 15:16:06 -05:00
Karishma Chadha
52c77d9fb0
Updating asset serialization code to get data format from stored asset rather than vm state. Storage seems to be more up to date than vm in the case of editing the blank backdrop, which is stored as a png instead of an svg.
2018-03-05 15:16:06 -05:00
Karishma Chadha
525a8c2ce7
Serializing sounds and costumes into file descriptors upon 'saveProjectSb3'.
2018-03-05 15:16:06 -05:00
Florrie
928df260ff
Fix lint errors
2018-03-05 15:46:54 -04:00
Florrie
defcc45419
Implement foreach block
2018-03-05 15:36:26 -04:00
DD Liu
97d3785554
Temporarily return real costumes array. GUI currently relies on this behavior somewhere
2018-03-05 11:07:50 -05:00
picklesrus
16ecaab1be
Fix up comment.
2018-03-02 11:07:22 -08:00
picklesrus
026b9dc282
Stop wrapping function for no reason.
2018-03-02 11:02:56 -08:00
kchadha
a0c7d9aeb3
Merge pull request #956 from kchadha/validate-sb2
...
Validate sb2
2018-03-02 10:28:53 -05:00
DD
b885402081
Merge branch 'develop' into privateSprite
2018-03-01 17:27:10 -05:00
Eric Rosenbaum
5d658b5ecb
Merge pull request #953 from ericrosenbaum/bugfix/load-tempo-from-sb2
...
Load tempo from sb2
2018-03-01 13:20:37 -05:00
Eric Rosenbaum
981fc57a43
Merge pull request #950 from ericrosenbaum/bugfix/import-music-menus
...
Fix music extension menu import
2018-02-28 18:47:30 -05:00
kchadha
8bebc1f5a2
Merge pull request #952 from kchadha/duplicate-sprite-names
...
Duplicating sprite should give new sprite a fresh name.
2018-02-28 17:13:19 -05:00
Karishma Chadha
d9fb315e3b
Removing log messages.
2018-02-28 17:10:54 -05:00
Ray Schamp
4e933eed81
Merge pull request #878 from davidaylaian/reduce-peekstack-calls
...
Optimize stepThread by reducing the number of calls to peekStack
2018-02-28 16:50:20 -05:00
Karishma Chadha
d51a2ad39f
Use wasDragged flag to selectively activate 'when this sprite clicked' block on mouse up.
2018-02-28 16:45:26 -05:00
Karishma Chadha
7c7b016643
scratch-parser expects json string...
2018-02-28 11:52:22 -05:00
Karishma Chadha
59d1c2a0b3
Code cleanup and actually throw errors when project fails to load. Depends on scratch-gui loading sb3 version of default project.
2018-02-28 10:02:02 -05:00
Eric Rosenbaum
db795abfbc
Use tempo stored in stage
2018-02-27 11:48:49 -05:00
Eric Rosenbaum
7e5e43fbe1
Load tempo from sb2
2018-02-27 11:48:23 -05:00
Eric Rosenbaum
237616490f
Add tempo property to rendered target
2018-02-27 11:48:14 -05:00
Karishma Chadha
8c5c68b896
Duplicating sprite should give new sprite a fresh name.
2018-02-26 23:17:25 -05:00
Karishma Chadha
79169c81b3
Use scratch-parser to validate structure of project json files.
2018-02-26 22:43:55 -05:00
Eric Rosenbaum
651d46fff0
Add default values for obscured shadows
2018-02-26 17:28:20 -05:00
Paul Kaplan
1f3c6ac6ad
Merge pull request #939 from fsih/blockDrag
...
Block drag
2018-02-26 16:26:53 -05:00
Eric Rosenbaum
8b18ff7ae9
make inputOP, arg name and menu name the same
2018-02-26 15:56:37 -05:00
DD
9a65df4c12
Make index optional
2018-02-23 16:24:18 -05:00
DD
10789cd779
Bring in Karishmas changes from save-load to ensure the sound gets updated in storage when edited
2018-02-23 16:21:07 -05:00
DD
bb0394a668
Fix lint
2018-02-23 16:09:38 -05:00
DD
0a5ccbf42f
Use existing UID util
2018-02-23 12:07:07 -05:00
DD
8355dd662f
Switch to sending end drag event to be handled by gui
2018-02-23 11:57:19 -05:00
DD
2239d1b92b
Use promises
2018-02-23 11:09:19 -05:00
DD
75cf6407d4
Duplicate costume
2018-02-23 10:50:45 -05:00
DD
d6bcfae526
Remove costume ID
2018-02-23 10:25:14 -05:00
DD
b4d6db0ad9
Fix tests
2018-02-22 15:45:41 -05:00
DD
729fc3d303
Make sprite.costumes private so that I can enforce that when you add costumes, they get assigned a unique ID
2018-02-21 19:59:35 -05:00
DD
51fd97ee54
fix lint
2018-02-20 16:09:08 -05:00
DD
2545d1955d
Repopulate blocks with ids
2018-02-20 16:09:08 -05:00
DD
31def7d03d
Track hovered sprite. End drag may transfer blocks from one sprite to another.
2018-02-20 16:09:08 -05:00
DD
fe4b3d3c01
Pass through block drag event
2018-02-20 16:09:08 -05:00
Chris Willis-Ford
8e1719b716
Merge pull request #920 from towerofnix/scroll-detection
...
Scroll wheel detection for "when key (up/down) pressed" blocks
2018-02-16 12:21:27 -08:00
picklesrus
1910968b13
Fix lint errors.
2018-02-16 10:49:26 -08:00
Eric Rosenbaum
ca08cd69e9
Merge pull request #936 from ericrosenbaum/feature/require-music-assets
...
Feature/require music assets
2018-02-16 10:25:31 -05:00
Eric Rosenbaum
e67743a4ba
Require assets inside a try/catch
2018-02-16 10:05:54 -05:00
Eric Rosenbaum
063ac39019
Load music extension assets with require
2018-02-14 17:53:05 -05:00
Eric Rosenbaum
22038c947c
When getting sprite by name, skip the stage
2018-02-12 15:33:27 -05:00
kchadha
9675a1b8cf
Merge pull request #931 from kchadha/bugfix-912
...
Renaming sprite/costume/sound/backdrop updates corresponding blocks.
2018-02-12 11:53:50 -05:00
Paul Kaplan
8d42db7df8
Merge pull request #925 from LukeSchlangen/fix/rounding-numbers
...
round numbers but break tests
2018-02-08 08:59:54 -05:00
Luke Schlangen
45cf1f685d
add passing unit test
2018-02-07 17:49:18 -06:00
Eric Rosenbaum
33966ba582
Check for runtime.currentStepTime is null
2018-02-06 12:25:44 -05:00
Eric Rosenbaum
0a239005a9
Rename and initialize vars
2018-02-06 11:06:48 -05:00
Karishma Chadha
f5813b1845
Update sprite names, plus some code cleanup.
2018-02-05 16:54:58 -05:00
Karishma Chadha
7faeed7128
Update blocks after sound/costume rename.
2018-02-05 14:35:52 -05:00
kchadha
107adad647
Revert "Push reported"
2018-02-02 12:42:09 -05:00
Eric Rosenbaum
c661ac7cce
Only measure loudness once per step
2018-02-01 19:53:41 -05:00
Eric Rosenbaum
f78ddb2072
Change pitch effect range to -360 to 360
2018-01-31 16:44:54 -05:00
Luke Schlangen
f8dced53dc
round numbers but break tests
2018-01-31 08:23:08 -06:00
Christopher Willis-Ford
3717394f00
Playground: load renderer as UMD
...
The recent changes to the renderer's build output packaging broke this
repository's playground / benchmark suite. These changes aren't the only
way to fix the issue, but this is consistent with the way that the
storage module was already being loaded.
2018-01-29 14:04:19 -08:00
kchadha
490248f652
Merge pull request #914 from kchadha/bugfix-909
...
Keep block xml up-to-date after renaming a variable.
2018-01-29 09:30:10 -05:00
Chris Willis-Ford
188aa990f2
Merge pull request #917 from mzgoddard/push-reported
...
Push reported
2018-01-26 15:48:05 -08:00
picklesrus
b6bb92d8f6
Adding support for dynamic menus in extensions.
2018-01-26 14:36:36 -08:00
Karishma Chadha
0b2eaa9e19
Moving block updating code into blocks instead of runtime.
2018-01-26 16:58:45 -05:00
Florrie
be83c0ee74
Mouse wheel IO system
...
Towards fixing #865 . This adds an IO class for detecting the mouse wheel
being scrolled. Basic tests are included; they mock the runtime to see
what blocks are activated by scrolling.
2018-01-26 17:13:01 -04:00
Eric Rosenbaum
229cd7a50c
Merge pull request #911 from ericrosenbaum/bugfix/music-ext-safari-onended
...
Keep playing notes and drums forever on Safari
2018-01-26 13:00:56 -05:00
Michael "Z" Goddard
10acf3c4f5
Add BlocksExecuteCache
...
Add a Blocks cache available only to execute. This cache lets execute
get a blocks inputs, fields, opcode, and mutation in one request and an
object execute can further modify to store derivative values it use
this and every later execute iteration to perform its duties quicker.
2018-01-24 17:00:42 -05:00
Michael "Z" Goddard
41d6a8f925
Check if a thread's target is null in sequencer
...
Before calling execute, if a thread's target is null, retire that
thread.
This saves repeatedly checking if the thread's target is null in
recursive calls where even if scratch-gui or blocks, or some other
related library set the target to null, that will not happen during
block execution. It will happen at some time outside of the sequencer
letting the sequencer check once instead of execute checking at every
recursive level.
2018-01-24 17:00:37 -05:00
Michael "Z" Goddard
4286e3e982
Add Thread.blockContainer
...
Store the thread's blocks at blockContainer letting execute quickly
determine the block source. Monitor threads are a monitor thread. They
do not become a target thread suddenly.
2018-01-24 17:00:35 -05:00
Michael "Z" Goddard
ab8d8e5f34
Add optional recursiveCall argument to execute
...
When execute calls itself to step into the next stack level, pass
RECURSIVE to the recursiveCall level. This argument provides
opportunity to recursed calls in execute to reduce the time needed for
some checks.
- Reduce time for checking around setting
thread.requestScriptGlowInFrame
- Call thread.pushReportedValue at end of execute when in a recursive
call
A boolean check is faster than a type lookup, command blocks will only
be executed in non-recursive calls. This saves a minor amount of time
for any result reporting blocks like blocks that get variables or add
two inputs together.
If the block is not returning a promise and execute is a recursed call,
that implies that the block is neither a hat or that the thread is not
at the top. That reduces handleReport to pushReportedValue. Using the
recursiveCall argument the final block calling handleReport can
shortcut the extra work in handleReport and reduce it to immediately
calling pushReportedValue.
2018-01-24 17:00:24 -05:00
Michael "Z" Goddard
6b7582f1c7
Report block result to stackFrame.justReported
...
- Add stackFrame.justReported
Report the block result to a known key `justReported` instead of a
dynamic key on `reported`. Assuming blocks with a promised value are
relatively infrequent the most common recursive input flow immediately
reads the value "just" reported. In the assumed uncommon case of a
promised thread status, empty the already argValues assigned values
onto the currentStackFrame's reported member. In the next execute call
on this stackFrame, values assigned to reported are read back off onto
argValues, and execute will returned to the assumed common case. This
is a safe assumption since a thread in the promise state will not exit
that state until the next frame when javascript has a chance to call
the resolve handle, setting the thread's state back to another
executable state.
Using direct assignment to `justReported` saves building an object
dynamically. Instead of always building `reported` and `argValues` only
`argValues` is built until a promised state is reached. This also gives
a known time when `reported` is used, allowing cleanup of a
stackFrame's reported to only happen when it was used to persist
already reported values.
2018-01-24 17:00:12 -05:00
Eric Rosenbaum
115184a2a3
Merge pull request #891 from ericrosenbaum/bugfix/audioplayer-clone-state
...
Audio effects state for clones
2018-01-23 11:55:39 -05:00
Eric Rosenbaum
275b0c7944
Get customState but don’t create it
2018-01-22 16:38:45 -05:00
Karishma Chadha
784341909b
Update block xml for all blocks that use a variable that was just renamed.
2018-01-22 15:14:43 -05:00
Eric Rosenbaum
073ee84a91
Keep bufferSource refs so onended fires on safari
2018-01-22 11:57:06 -05:00
Eric Rosenbaum
9eaf67b504
Fix eslint-disable-line
2018-01-22 10:27:16 -05:00
Eric Rosenbaum
4778ab8d4f
Fix music extension asset loading on safari
2018-01-22 10:15:41 -05:00
Ray Schamp
cc1923f982
Merge pull request #901 from mzgoddard/benchmark-prototype
...
Benchmark prototype
2018-01-19 13:52:13 -05:00
Paul Kaplan
90e9e1c0b0
Merge pull request #889 from paulkaplan/fix-mouse-positions
...
Fix mouse positions for different stage zoom levels
2018-01-17 13:49:23 -05:00
Michael "Z" Goddard
4d4966cba9
Save and compare results, show individual results in iframe
2018-01-17 12:25:07 -05:00
Michael "Z" Goddard
775d38d8d5
Truncate benchmark selfTime and totalTime values
2018-01-17 12:16:08 -05:00
Michael "Z" Goddard
479f1ba163
Produce a benchmark share link storing the report in the url
2018-01-17 12:16:06 -05:00
Michael "Z" Goddard
c6f4d89371
Add benchmark suite, run and report on multiple benchmark projects
2018-01-17 12:10:27 -05:00
Michael "Z" Goddard
b02d7e8cd8
Read benchmark warm up time and recording time from uri
2018-01-17 11:59:58 -05:00
Paul Kaplan
d649b2555b
Require TextEncoder correctly
2018-01-17 11:41:24 -05:00
Ray Schamp
e83141e810
Revert "Use text-encoding library for text encoder"
2018-01-17 10:59:28 -05:00
Ray Schamp
301fcdc518
Merge pull request #897 from fsih/textencoding
...
Use text-encoding library for text encoder
2018-01-17 10:02:10 -05:00
Ray Schamp
c0db708986
Fix import syntax
2018-01-17 09:47:01 -05:00
DD
2c1412dda4
Use text-encoding library for text encoder
2018-01-16 17:41:18 -05:00
Paul Kaplan
57f3d43f4f
Update specmap for sensing blocks that are now fixed menus.
2018-01-13 13:23:33 -05:00
Paul Kaplan
223575f850
Remove extra call to initDrawable that was erasing existing drawable.
...
initDrawable is called in createClone previously, where the new costumes
are installed. Calling this again here erases those loaded skins and
causes an error when trying to calculate the uniforms when a drag
starts.
2018-01-12 11:20:17 -05:00
DD Liu
c6c01e7c93
Merge pull request #893 from fsih/nameName
...
Unique sprite and backdrop names
2018-01-12 10:33:43 -05:00
DD
7ed58da1cf
fix set editing target function
2018-01-11 16:43:18 -05:00
DD
bc64e6ed3e
Unique sprite and backdrop names
2018-01-11 11:28:21 -05:00
DD
323aafd165
Update VM's model of monitored blocks
2018-01-10 17:57:04 -05:00
DD
fce83dc2c3
make it work for non-droppable inputs
2018-01-10 17:50:48 -05:00
Eric Rosenbaum
eca66e9dde
Check for runtime
2018-01-09 19:22:33 -05:00
Eric Rosenbaum
283804c21c
Init and dispose audio player
2018-01-09 15:57:33 -05:00
Eric Rosenbaum
7c0117e9ed
Clones get synced to parent’s sound state
2018-01-09 15:56:58 -05:00
DD
db662b8584
fix lint
2018-01-09 14:55:46 -05:00
Paul Kaplan
327d1179d9
Update the mouse io to give scratch coordinates and client coordinates
...
Fixes GUI #642 https://github.com/LLK/scratch-gui/issues/642
Fixes GUI #179 https://github.com/LLK/scratch-gui/issues/179
2018-01-09 10:37:16 -05:00
Paul Kaplan
bbcb6bd5b7
Differentiate clamped from non clamped mouse io data (GUI#179)
2018-01-09 09:42:16 -05:00
DD Liu
0b6d7adf3e
Update monitor on dropdown change
2018-01-08 20:22:18 -05:00
Paul Kaplan
63be5bc487
Transform sb2 looks reporters to new menu blocks
2018-01-04 10:24:13 -05:00
Paul Kaplan
d6f1c48c08
Add opcodes for new looks reporters with menu for costume number/name
2018-01-04 10:04:54 -05:00
Paul Kaplan
4fd7ba896a
Merge pull request #881 from sjhuang26/issue-gui1127-pen-trails
...
No pen trails when dragging
2017-12-29 10:22:18 -05:00
Paul Kaplan
6d90a34ff1
Add setDragMode primitive and unit test
2017-12-29 09:38:21 -05:00
sjhuang26
72dee72148
Change let to const
2017-12-29 09:13:18 -05:00
sjhuang26
f7d80459c7
Fixed pen behavior when dragging
2017-12-29 09:01:30 -05:00
sjhuang26
b726c4c18d
Changed postSpriteInfo logic
2017-12-29 08:31:59 -05:00
Paul Kaplan
477ef531ba
Update specmap and sb2 import to add new fields to layering blocks.
2017-12-28 14:53:35 -05:00
Paul Kaplan
fe51bd6450
Update layering blocks
2017-12-28 14:40:08 -05:00
Paul Kaplan
d001a85571
Add setDragMode primitive and unit test
2017-12-28 12:31:23 -05:00
David Aylaian
a22879631f
Optimize stepThread by reducing the number of calls to peekStack
2017-12-27 19:44:49 -05:00
Paul Kaplan
9d5bbdbf3a
Merge pull request #860 from kchadha/broadcast-input-functionality
...
Broadcast Inputs and Implicit Message Deletion
2017-12-27 11:47:56 -05:00
Paul Kaplan
d0e402ddb7
Merge pull request #877 from cwillisf/fix-legacy-pen-blocks
...
Fix legacy `setPenHueToNumber` and `changePenHueBy`
2017-12-27 11:30:46 -05:00
Christopher Willis-Ford
ed1fc5f353
Use Scratch 2.0 block labels for legacy blocks
2017-12-22 11:08:05 -08:00
Christopher Willis-Ford
5dbffe67ac
Fix legacy setPenHueToNumber
and changePenHueBy
...
These two blocks were not doing the same shade-oriented math as
`setPenShadeToNumber`: effectively these blocks were using the new color
model instead of Scratch 2.0's hue-shade model. This change pulls the
hue-shade color update logic into a separate function, now called by all
the legacy pen blocks.
2017-12-22 10:47:11 -08:00
Karishma Chadha
6fc554daa5
Implicit deletion behavior for broadcast blocks.
2017-12-21 19:06:11 -05:00
Karishma Chadha
720c22db0e
Cleanup/refactoring.
2017-12-21 19:06:11 -05:00
Karishma Chadha
bcbe910643
Translating empty string messages from sb2 into messageN, where N is an integer >= n such that messageN is a fresh name.
2017-12-21 19:06:11 -05:00
Karishma Chadha
154987fbb0
SB2 Import functionality for broadcast blocks with pluggable inputs.
2017-12-21 19:06:11 -05:00
Karishma Chadha
c0e4ae455c
Streamlining broadcast block execution. When arg information is provided to execute function, corresponding broadcast message is looked up by id, if provided, or if not, then name. If neither id nor name is provided, we can't look up the broadcast message and something is wrong, so an error is logged. We no longer need to differentiate between the shadow menu vs. plugged in input cases via the argValue name (e.g. 'BROADCAST_OPTION' vs. 'BROADCAST_INPUT'). This refactor also helps with sb2 import, coming in the next commit.
2017-12-21 19:06:11 -05:00
Karishma Chadha
413d113dda
Adding support for blocks to be plugged into the input of broadcast blocks. SB2 Import to come.
2017-12-21 19:06:11 -05:00
Paul Kaplan
cd66eb7f96
Allow size to be set through postSpriteInfo, and emit updates when it is
...
Required to allow size to be added to sprite info panel in the GUI.
2017-12-20 15:35:35 -05:00
Eric Rosenbaum
ec8d9f2121
Merge pull request #875 from ericrosenbaum/bugfix/stop-literally-all-sounds
...
Stop all sounds for all targets
2017-12-20 15:15:47 -05:00
Andrew Sliwinski
d1d980cb62
Merge pull request #874 from thisandagain/feature/733
...
Accept both objects and strings for 'loadProject'
2017-12-20 14:44:12 -05:00
Eric Rosenbaum
a6d17fcba3
Stop all sounds for all targets
2017-12-20 14:00:23 -05:00
Andrew Sliwinski
05a1a668b3
Accept both objects and strings for 'loadProject'. Resolves GH-733
2017-12-20 11:49:40 -05:00
Eric Rosenbaum
8e554245c8
Check for runtime
2017-12-20 10:56:44 -05:00
Eric Rosenbaum
9f6cd92d93
Clear sound effects for all targets on GF and stop
2017-12-20 10:38:16 -05:00
Paul Kaplan
ebecb1d4fb
Merge pull request #870 from paulkaplan/fix-backdrop-promise
...
Return promise from backdrop loading
2017-12-19 16:27:17 -05:00
Eric Rosenbaum
c24a286666
Merge pull request #871 from ericrosenbaum/feature/extension-category-icons
...
Category menu icons for extensions
2017-12-19 16:27:07 -05:00
Eric Rosenbaum
a81b81251b
Remove current instrument from sound state
2017-12-19 15:54:45 -05:00
Eric Rosenbaum
2d6e91fa59
Merge branch 'develop' into feature/extension-category-icons
2017-12-19 15:39:00 -05:00
Eric Rosenbaum
dad620f015
Update block and menu icons for pen and music extensions
2017-12-19 14:47:37 -05:00
Eric Rosenbaum
9613046b2f
Add optional menuIcon for extension blocks
2017-12-19 14:47:11 -05:00
Eric Rosenbaum
7c853ab7f3
Merge pull request #869 from ericrosenbaum/feature/add-extension-separator
...
Add separator to extension block definition
2017-12-19 13:58:28 -05:00
Paul Kaplan
39115169ca
Return promise from backdrop loading
2017-12-19 11:11:38 -05:00
Paul Kaplan
437cee3c14
Cast to string before asking question. Same as say blocks do.
2017-12-15 15:52:04 -05:00
Eric Rosenbaum
00d6e9e8e7
Merge pull request #863 from ericrosenbaum/feature/blockly-extension-for-scratch-extensions
...
Add blockly extension for scratch extensions
2017-12-15 15:27:26 -05:00
Eric Rosenbaum
5cb0f5d76d
Add separator to extension block definition
2017-12-15 14:09:29 -05:00
Paul Kaplan
cc1cfbf70d
Merge pull request #859 from paulkaplan/fix-always-warp
...
Parse the `warp` property from the mutation instead of using directly.
2017-12-15 13:40:02 -05:00
Paul Kaplan
47549aa63b
Merge pull request #864 from paulkaplan/fix-promise-from-add-costume
...
Return a promise to indicate when a costume has loaded.
2017-12-15 11:16:56 -05:00
Paul Kaplan
cbebc28307
Return a promise to indicate when a costume has loaded.
...
Parallels the way the `addSound` method works. Needed to enable
selecting new assets automatically from GUI.
2017-12-14 16:46:31 -05:00
Eric Rosenbaum
5e6187bee7
Add blockly extension for scratch extensions
2017-12-14 14:37:08 -05:00
Paul Kaplan
0f82e2a84d
Be more cautious about parsing json.
2017-12-14 14:23:16 -05:00
Paul Kaplan
256d7b3d6c
Parse the warp
property from the mutation instead of using directly.
2017-12-13 15:53:55 -05:00
Paul Kaplan
0fe7eca018
Fix procedure name lookup to work with undefined procedures.
2017-12-13 15:37:58 -05:00
Eric Rosenbaum
ba1f217004
Merge pull request #854 from ericrosenbaum/bugfix/extension-block-outline-colour
...
Fix tertiary color of extension blocks
2017-12-13 15:00:07 -05:00
Ray Schamp
b191c87a77
Merge pull request #807 from mzgoddard/benchmark-prototype
...
Benchmark prototype
2017-12-13 14:58:29 -05:00
Ray Schamp
e8fd5b1f13
Replace playground with benchmark
2017-12-12 12:17:33 -05:00
Paul Kaplan
8411ef1c86
Merge pull request #810 from paulkaplan/select-after-drag
...
Select target after drag end
2017-12-12 10:55:27 -05:00
Ray Schamp
921ce24195
Merge branch 'benchmark-prototype' of https://github.com/mzgoddard/scratch-vm into mzgoddard-benchmark-prototype
...
# Conflicts:
# .gitignore
2017-12-12 09:48:52 -05:00
Eric Rosenbaum
25ded4cff7
Fix spelling of coloUrTertiary
2017-12-11 17:01:23 -05:00
chrisgarrity
f51cf9877e
Preliminary localization ( #777 )
...
* localize the block and menu strings in the pen extension
* adds .tx/config to be able to push translations to transifex
* includes format-message to localize strings and extracting them.
* add setLocale function to VM to allow GUI to pass in locale data.
* refresh block definitions when the locale changes.
### Still to be decided
For now just extracting messages from the pen extension into their own file. We’ll need to decide if each category gets its own file, or group all the strings into one resource.
2017-12-11 15:41:45 -05:00
Eric Rosenbaum
f33c6294bc
Merge pull request #825 from ericrosenbaum/bugfix/clones-get-audioplayer-ref
...
Clones get a reference to parent’s audioPlayer
2017-12-08 11:40:31 -05:00
Eric Rosenbaum
d771a24b82
Merge pull request #831 from ericrosenbaum/feature/drum-update
...
Drum update
2017-12-07 15:41:13 -05:00
Chris Willis-Ford
e7bbad60e8
Merge pull request #793 from cwillisf/remove-threads-safely
...
Make _removeThread safe during thread iteration
2017-12-06 17:18:10 -08:00
Paul Kaplan
2d2b691b6f
Return a default falsey value for unknown params based on param type
2017-12-06 11:46:43 -05:00
Eric Rosenbaum
8203eb2c91
Merge pull request #840 from ericrosenbaum/feature/music-block-icon
...
Add icon for music extension blocks
2017-12-05 15:43:10 -05:00
Eric Rosenbaum
506a36b8ef
Merge pull request #838 from ericrosenbaum/feature/move-extensions-into-folder
...
Move pen and wedo into extensions folder
2017-12-05 15:43:03 -05:00
Paul Kaplan
e6bd474720
Merge pull request #845 from kchadha/broadcast-msg-extra-create-bugfix
...
Broadcast Msg Bugfix
2017-12-05 15:38:12 -05:00
Paul Kaplan
bb69d157cd
Merge pull request #832 from paulkaplan/custom-procedure-updates
...
Updates for editable custom procedures
2017-12-05 15:37:56 -05:00