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
Karishma Chadha
34b0aff637
Bugfix for scratch-gui issue #994 , where executing a broadcast block from the flyout was creating a conflicting variable, causing a fatal error.
2017-12-04 18:01:29 -05:00
Paul Kaplan
aa306e1f29
Merge pull request #841 from sjhuang26/issue-795-clear-answer
...
Clear answer on green flag
2017-12-04 11:41:16 -05:00
sjhuang26
b2802b75f1
Go to front in stage does nothing
2017-12-02 08:33:32 -05:00
sjhuang26
eede8105d1
Clear answer on green flag
2017-12-01 20:06:55 -05:00
Paul Kaplan
0722708004
Merge pull request #817 from sjhuang26/develop
...
Fix ask-and-wait in stage
2017-12-01 11:53:37 -05:00
Paul Kaplan
a9e95f3b01
Merge pull request #829 from kchadha/broadcast-message-typed-variable
...
Broadcast message functionality
2017-12-01 11:51:38 -05:00
Karishma Chadha
aab4a45622
Minor Refactoring/cleanup.
2017-12-01 11:27:54 -05:00
Eric Rosenbaum
2091ef0636
Add icon for music extension blocks
2017-12-01 11:06:46 -05:00
Eric Rosenbaum
9611401e1c
Move pen and wedo into extensions folder
2017-12-01 10:31:04 -05:00
Karishma Chadha
80da989f01
SB2 Import for Broadcast Blocks (not including the input field functionality for 'broadcast' and 'broadcast and wait
...
'). Currently we also cannot import projects where messages and variables share names.
2017-12-01 10:29:32 -05:00
Eric Rosenbaum
68053adf7f
Quieter snare
2017-11-29 15:35:16 -05:00
Eric Rosenbaum
bcdc951eb1
Update bass drum
2017-11-29 15:27:07 -05:00
Eric Rosenbaum
bf5d489cda
Update crash cymbal
2017-11-29 15:25:40 -05:00
Eric Rosenbaum
799a8ab799
Update open and closed hi-hats
2017-11-29 15:25:34 -05:00
Paul Kaplan
5a53323715
Update to use explicit procedure names and ids
2017-11-29 12:00:00 -05:00
Karishma Chadha
e5378d323d
Adding unit tests for new lookupOrCreate funciton, fixing a bug that came up during testing (using lookupVariableById on a null target). Skipping integration tests that do not work right now because SB2 import of broadcast message blocks has not been implemented yet.
2017-11-29 10:43:07 -05:00
Paul Kaplan
80b4dab104
Decode the encoded argument information
2017-11-29 10:34:59 -05:00
Karishma Chadha
b674a0c047
Code cleanup and refactoring, and getting scratch3_event broadcast functionality to look up the variable name instead of getting it ad-hoc.
2017-11-28 22:33:27 -05:00
Eric Rosenbaum
773c167987
Check for instrument sample before playing
2017-11-28 13:15:48 -05:00
Eric Rosenbaum
a71e06af43
Clones get a reference to parent’s audioPlayer
2017-11-28 12:29:45 -05:00
Eric Rosenbaum
6dffc0e512
Merge pull request #820 from ericrosenbaum/bugfix/extension-menu-values
...
Convert music extension menu values to string
2017-11-27 17:10:23 -05:00
Andrew Sliwinski
519d41d966
Merge pull request #805 from thisandagain/bugfix/802
...
Replace 'got' module with 'nets'
2017-11-27 15:17:04 -05:00
Andrew Sliwinski
b78bdb4c93
Address feedback from review
2017-11-27 15:00:53 -05:00
Eric Rosenbaum
7e87f314fb
Convert menu values to string
2017-11-27 10:06:42 -05:00
sjhuang26
f610816e72
Added wasStage parameter
2017-11-24 21:28:48 -05:00
Karishma Chadha
0a15190b85
Broadcast message functionality (works with creating new messages, and switching back and forth between them as well). This commit includes a temporary workaround for the issue where the default broadcast message, 'message1' wasn't triggering a var_create event (filed in LLK/scratch-blocks#1258 ).
2017-11-21 16:48:48 -05:00
Paul Kaplan
fc61f9e547
Select target after drag end
2017-11-21 11:45:11 -05:00
Eric Rosenbaum
5fbfecb1a9
Note player ( #806 )
...
* Move drums into their own folder
* Load instrument samples
* Play notes
* Concurrency limit is shared across drums and instruments
* Increase MIDI note range
* Set instrument directly on musicState object
* JSDoc
* Clean up the play note functions and add comments
* Cleanup
* Check for audioEngine in playDrumNum
* JSDoc and comments
* Round the instrument number
* Fix unit test for set instrument
* Comment fixes
* Nit (condense onto single line)
2017-11-21 10:36:28 -05:00
DD Liu
58dd57fe48
Merge pull request #784 from fsih/perSpriteMonitors
...
Execute monitors on a given target ID when block is sprite-specific
2017-11-21 10:23:53 -05:00
Boaz Sender
a7314d6f0d
adds ui styling and context to benchmark prototype
2017-11-20 19:18:18 -05:00
Michael "Z" Goddard
7356546072
Add benchmark prototype
...
Build a page with webpack that loads a project and automatically runs
it, collecting performance information for a set amount of time,
stopping and displaying the results.
2017-11-20 18:40:55 -05:00
DD
ec9d8094bd
fix review comments
2017-11-20 17:23:59 -05:00
Andrew Sliwinski
a8c629dc9b
Replace 'got' module with 'nets'. Resolves GH-802
2017-11-20 17:04:17 -05:00
Eric Rosenbaum
614708d48c
Merge pull request #785 from ericrosenbaum/feature/load-drums-from-storage
...
Load drum sounds from storage and play them
2017-11-20 13:56:23 -05:00
Eric Rosenbaum
1e00a0c252
Comment for no-op above concurrency limit
2017-11-20 13:44:44 -05:00
Eric Rosenbaum
c3a72560f9
Clarify @TODO comment about extension status indicator
2017-11-20 13:42:35 -05:00
DD
6d26023104
revert unnecessary changes'
...
:
2017-11-20 13:00:37 -05:00
griffpatch
6ed2ca6caa
Cache Block Inputs & Procedure Definitions
...
* Cache Block Inputs & Procedure Definitions
* @mzgoddard requested changes on this pull request
* Move all caching into a single reusable field _cache.
* Invalidate 'all' caches on any change.
* Use 'typeof' instead of hasOwnProperty.
* Take caching out of Block and use lookup instead.
2017-11-20 10:22:51 -05:00
Christopher Willis-Ford
b19af399fa
Make _removeThread safe during thread iteration
...
Before: `_removeThread` stops a thread and immediately removes it from
the runtime's thread array. If this happens while iterating over the
thread array, such as in the case of clone deletion, some elements of
the array can be missed.
After: `_removeThread` has been renamed to `_stopThread`. It still stops
the thread immediately but it no longer removes the thread from the
runtime's thread array. Instead, `_stopThread` marks the thread for
later removal. Such threads are removed at the top of the next `_step`.
2017-11-17 12:56:25 -08:00
DD Liu
2d9722e69c
Merge pull request #787 from fsih/deleteMonitorBlocks
...
Delete monitor block when variable is deleted
2017-11-16 17:20:26 -05:00
DD
255e160ebb
Change it so we dont have to do string manipulation on IDs to get data out of events
2017-11-16 17:19:51 -05:00
Paul Kaplan
bbb8904467
Merge pull request #789 from paulkaplan/custom-procedure-update
...
Update naming and implementation for custom procedure blocks
2017-11-16 17:07:03 -05:00
Paul Kaplan
34dfbb50ba
Update naming and implementation for custom procedure blocks
2017-11-16 14:17:08 -05:00
Michael "Z" Goddard
3d92553459
Return restarted threads in list from startHats
...
Add restarted threads to the list of newThreads returned by startHats.
2017-11-16 11:23:51 -05:00
Michael "Z" Goddard
9864403bc9
A thread in the runtime but with the DONE status is not active
...
return false from isActiveThread if thread's status is done even when
its contained in the runtime threads list. As it is done, the thread
will not be run until either its replaced by a new copy of the thread
or the thread is removed from the list and another is added at a later
time.
2017-11-16 11:23:51 -05:00
kchadha
9df3b8ad86
Merge pull request #780 from mzgoddard/runtime-profiler
...
Runtime profiler
2017-11-16 10:02:37 -05:00
DD
0958db2618
Move data to blocks files
2017-11-15 17:53:43 -05:00
Eric Rosenbaum
5b0f7453f3
Merge pull request #779 from ericrosenbaum/feature/music-timing-with-stackframe
...
Music extension handles timing
2017-11-15 13:29:33 -05:00
Paul Kaplan
1e27d21b15
Merge pull request #782 from kchadha/list-typed-variable
...
List typed variable
2017-11-15 12:48:56 -05:00
DD
c8d5ba1d5e
Delete block does nothing if the block doesnt exist
2017-11-15 11:56:49 -05:00
DD
aa0064948a
Delete monitor block when variable is deleted
2017-11-15 11:37:27 -05:00
Karishma Chadha
fe86e38210
Addressing PR review comments.
2017-11-15 09:17:20 -05:00
DD
757dccd565
Move is sprite specific verification into VM in a temporary way. Remove monitors when their sprites are deleted.
2017-11-14 18:25:54 -05:00
Eric Rosenbaum
01e9000c04
JSDoc for _playDrumNum
2017-11-14 15:00:27 -05:00
Eric Rosenbaum
75ec76cd57
Fix unit test
2017-11-14 14:58:16 -05:00
Michael "Z" Goddard
ff82699440
Add Block % stats panel
...
Enable profiler when Block % is visible and display percent of time
block functions get to execute versus drawing and any overhead.
2017-11-14 14:57:32 -05:00
Michael "Z" Goddard
f73dae828e
Add enableProfiling and disableProfiling to Runtime
2017-11-14 14:57:32 -05:00
Michael "Z" Goddard
516d4f6f30
Add Profiler events to Runtime, Sequencer and execute
2017-11-14 14:57:32 -05:00
Michael "Z" Goddard
a5b55a5128
Add runtime Profiler
...
Profile internal virtual machine performance down to which blocks take
how long.
2017-11-14 14:57:31 -05:00
Eric Rosenbaum
9665b3ed25
Always yield on first run of a timed block
2017-11-14 14:40:27 -05:00
Eric Rosenbaum
7a65fe7d07
Limit number of concurrent drum sounds
2017-11-14 14:39:50 -05:00
Eric Rosenbaum
b64152637e
Play drums!
2017-11-14 14:39:11 -05:00
Eric Rosenbaum
73dbc82411
Get number of drums from drum info array
2017-11-14 14:36:34 -05:00
Eric Rosenbaum
14e2ca8d99
Round the drum num arg
2017-11-14 14:35:26 -05:00
Eric Rosenbaum
c26198d050
Load drum sounds into an array of buffers
2017-11-14 14:33:14 -05:00
Eric Rosenbaum
91878adfe1
Build menus using drum and instrument info arrays
2017-11-14 14:32:14 -05:00
Eric Rosenbaum
9f1bcd2594
Arrays with drum and instrument name and filename
2017-11-14 14:30:44 -05:00
DD
9048a9b9e7
Pipe through whether a monitor is sprite-specific
2017-11-14 12:20:24 -05:00
Karishma Chadha
386045f033
Some code cleanup.
2017-11-13 16:55:57 -05:00
Karishma Chadha
26d4a3a069
Refactoring representation of variable type.
2017-11-13 16:29:38 -05:00
Eric Rosenbaum
f5b25a190e
Add assets (drum sounds) for music extension
2017-11-13 16:23:10 -05:00
Eric Rosenbaum
961b3476b2
Move the music extension into a new extensions directory
2017-11-13 16:22:37 -05:00
Karishma Chadha
038a65b460
Finishing up lists.
2017-11-13 14:24:30 -05:00
Karishma Chadha
b18938963f
Fixing linting errors
2017-11-13 14:22:36 -05:00
Eric Rosenbaum
be25cd93bd
Use stack timer for timing of drum, note and rest blocks.
2017-11-13 10:43:09 -05:00
Paul Kaplan
95ca10038b
Merge pull request #772 from kchadha/improving-test-coverage
...
Improving test coverage
2017-11-13 10:17:09 -05:00
Eric Rosenbaum
db3b0ca204
Move musical timing into music extension
...
and use the stackframe timer, which improves timing accuracy.
2017-11-09 17:49:42 -05:00
Karishma Chadha
70959cc7f5
First cut at turning lists into typed variables
2017-11-09 17:19:34 -05:00
Karishma Chadha
c31fff8c4c
Fixing linter errors.
2017-11-09 09:18:44 -05:00
Karishma Chadha
7fae93f6e6
Removing unnecessary comments from edits.
2017-11-08 15:59:35 -05:00
Karishma Chadha
70081132cb
Changes to src/virtual-machine based on minor bugs found during testing. This was supposed to be included with the previous commit.
2017-11-08 15:49:51 -05:00
Paul Kaplan
16ca994818
Allow ask to use say bubble via events
2017-11-08 11:12:12 -05:00
Andrew Sliwinski
3fa1599b90
Merge pull request #701 from Scimonster/variable-xml-names
...
Correctly deserialize HTML entities in block DOM
2017-11-08 08:03:56 -05:00
Eric Rosenbaum
50c646259c
Merge branch 'develop' of https://github.com/LLK/scratch-vm into feature/extension-music
2017-11-07 15:54:38 -05:00
Eric Rosenbaum
112bb55b9b
JSDoc
2017-11-07 15:21:47 -05:00
Eric Rosenbaum
9bd48e8761
Mark the buildMenu function private
2017-11-07 15:21:20 -05:00
Ray Schamp
b07bbd4745
Merge pull request #765 from mzgoddard/execute-is-promise-deopt
...
Write src/engine/execute so it can be optimized
2017-11-07 12:19:58 -05:00
Ray Schamp
180e545b4e
Merge pull request #766 from mzgoddard/execute-handle-report-block-utility
...
Extract handleReport and BlockUtility from inside the execute function
2017-11-07 12:19:23 -05:00
Eric Rosenbaum
87cf546b03
Remove music opcodes from sound bocks
2017-11-07 11:28:04 -05:00
Eric Rosenbaum
533ed60d98
Update sb2 specmap with music extension blocks
2017-11-07 11:27:50 -05:00
Eric Rosenbaum
b2941f8c5a
Load music as internal extension
2017-11-07 11:27:33 -05:00
Paul Kaplan
1f98960636
Merge pull request #764 from paulkaplan/ask-answer-events
...
Ask/answer opcode implementation with runtime events.
2017-11-07 10:49:48 -05:00
Ray Schamp
5290570fc5
Merge pull request #758 from mzgoddard/done-threads-indexof
...
Constant time check if a thread is in doneThreads
2017-11-07 10:30:15 -05:00
Michael "Z" Goddard
e3dfe24d7f
Store references to target in say blocks
...
As part of reusing the block utility object, asynchronous say block
functions cannot use the utility in a promise or timeout asynchronous
handle. Store the needed target reference so utility is not needed
later.
2017-11-07 10:21:52 -05:00
Michael "Z" Goddard
bbe7981703
Extract blockUtility from execute to reduce allocations
...
blockUtility as an object literal inside execute creates 11 objects,
one for the object, and 10 for the function closures. As a separate
object and allocated once, setting its sequencer and thread members,
block functions can share the same util object. Extract blockUtility to
cut down on allocations.
2017-11-07 10:21:51 -05:00
Michael "Z" Goddard
78847de660
Extract handleReport and add arguments to prevent closure alloc
...
`handleReport` inside `src/engine/execute.js`'s `execute` method needs
to allocate a closure to be able to refer to the higher scoped
variables. `execute` is called frequently that this has a noticable
impact on memory allocation and later collection. Extract handleReport
and add arguments to prevent the allocation.
2017-11-07 10:21:51 -05:00
Andrew Sliwinski
1efc312c36
Merge pull request #767 from mzgoddard/docs-blocks-param-names
...
Replace duplicate documentation on getProcedureParamNames
2017-11-06 19:34:51 -05:00
Karishma Chadha
cb31f206a0
Improved test coverage of deleteSprite() in src/virtual-machine. Fixed bug where null check was happening after looking up property of given target.
2017-11-06 17:41:57 -05:00
Michael "Z" Goddard
888da915a5
Replace duplicate documentation on getProcedureParamNames
...
Replace the duplicate getProcedureDefintion documentation block above
getProcedureParamNames.
2017-11-06 17:28:34 -05:00
Eric Rosenbaum
fbeb1de1c1
Add music extension file
2017-11-06 16:57:16 -05:00
Michael "Z" Goddard
cd9004ce5b
Write src/engine/execute so it can be optimized
...
Testing with implicitly casted `value` and `value.then` is deoptimizing
isPromise, which deoptimizes execute. In this case deoptimizing means
that the JavaScript VM cannot compile the functions into a form that
can be run faster.
2017-11-06 15:54:22 -05:00
Paul Kaplan
73ffc6a797
Ask/answer opcode implementation with runtime events.
2017-11-06 15:08:15 -05:00
Eric Rosenbaum
a735459427
Merge pull request #762 from ericrosenbaum/bugfix/wedo-tilt-reporter-shape
...
Fix shape of boolean tilt reporter
2017-11-06 11:21:12 -05:00
Eric Rosenbaum
59e0c75abf
Fix shape of boolean tilt reporter
2017-11-06 10:17:53 -05:00
Eric Rosenbaum
323fde3859
Appease the linter
2017-11-06 10:10:41 -05:00
Eric Rosenbaum
cc35bcc791
Merge branch 'develop' of https://github.com/LLK/scratch-vm into feature/wedo-block-icon
2017-11-06 10:02:57 -05:00
Eric Rosenbaum
0540640684
Merge pull request #754 from ericrosenbaum/feature/pen-block-icon
...
Extension block icons (including pen icon)
2017-11-06 10:02:23 -05:00
Eric Rosenbaum
14087ef24f
Add wedo block icon
2017-11-06 10:00:13 -05:00
Paul Kaplan
caa9b97520
Fix linting
2017-11-04 10:10:17 -04:00
Paul Kaplan
8616390fab
Add back pen transparency from color number
2017-11-03 21:24:47 -04:00
Michael "Z" Goddard
6d82c0f115
In place filter threads at end of stepThreads
...
Skip a large array allocation by filtering done threads in place with a
for loop.
2017-11-03 17:48:52 -04:00
Michael "Z" Goddard
4e24a3f380
Constant time check if thread is in doneThreads
...
Remove indexOf tests for thread existence in doneThreads. Maintain a
list of null and thread objects mirroring the index position of threads
that are done in runtime.threads. Filter out null values after
filtering out done threads from runtime.threads.
This has a small side effect that threads that normally became DONE and
were added to doneThreads before being removed or restarted will not be
in doneThreads in this version. Restarted threads (_restartThread) do
not appear in this version but new copies will be in Runtime
this.threads supporting glow and monitor updates. Removed threads
(_removeThread) do not appear in this version if they are removed after
they were seen as DONE by the prior version. Threads removed before
they are seen as DONE do not appear in doneThreads in the prior or this
version.
Threads that are removed before normally becoming DONE do not appear in
doneThreads in either case. Threads that are restarted before the loop
checks if the thread is done do not appear in doneThreads in either
case.
2017-11-03 17:46:50 -04:00
Chris Willis-Ford
ef961c5a4b
Merge pull request #756 from cwillisf/autoload-extensions
...
Autoload extensions
2017-11-03 13:59:01 -07:00
Christopher Willis-Ford
0ad03f8d70
Actually finish SB2 specMap for WeDo 2.0
...
Apparently I took a break at the wrong time and forgot to come back to
this... :/
2017-11-03 13:48:05 -07:00
Christopher Willis-Ford
51dcfb954d
Pen integration test: don't pre-load pen extension
2017-11-03 12:50:37 -07:00
Christopher Willis-Ford
c88a8fa55a
Fix tests & a typo
2017-11-03 11:42:20 -07:00
Christopher Willis-Ford
0af3de9bf0
Load extensions when loading a project or sprite
...
- Accumulate extension info while deserializing JSON
- Install extensions (if any) before installing target(s)
- Merged 'install' steps of the "add sprite" and "load project" paths
2017-11-03 11:20:24 -07:00
Paul Kaplan
c1ba902ebb
Use category info that has colors when building menu blocks
2017-11-03 13:50:50 -04:00
Eric Rosenbaum
2ac464c53e
Prepend icon to each extension block
2017-11-03 11:35:42 -04:00
Eric Rosenbaum
a115d47bb8
Add block icon svg as single-line data URI
2017-11-03 11:25:39 -04:00
Paul Kaplan
e2ac6947af
Merge pull request #753 from paulkaplan/provide-argument-ids
...
Provide argument id list with callers and procdef blocks
2017-11-03 09:48:37 -04:00
Paul Kaplan
007fe2ed53
Fix linting
2017-11-02 17:14:00 -04:00
Paul Kaplan
5b9d4ae23e
Provide argument id list with callers and procdef blocks
2017-11-02 17:03:12 -04:00
Paul Kaplan
c5d3e2dbb4
Merge pull request #746 from paulkaplan/fix-variable-of
...
Search for variables by name in "of" block
2017-11-02 11:09:42 -04:00
Chris Willis-Ford
91420375d5
Merge pull request #724 from cwillisf/no-dupe-extensions
...
Prevent duplicate extensions
2017-11-01 21:29:00 -07:00
Paul Kaplan
2c3c9f9ac8
Search for variables by name in "of" block
2017-11-01 14:31:52 -04:00
Paul Kaplan
18398d010b
Add hideFromPalette flag for hiding legacy blocks
2017-11-01 11:30:15 -04:00
Paul Kaplan
082e051cce
Support legacy pen block op codes
2017-11-01 11:30:15 -04:00
Christopher Willis-Ford
8bb48e2a53
Add built-in extension "URL" to _loadedExtensions
...
Dupe prevention works better when you actually record the necessary
info...
2017-10-31 13:00:19 -07:00
Christopher Willis-Ford
ae878b2050
Simplify extension duplication prevention station
...
Since we will only have builtin extensions for a while, the
more-complicated, watchdog-based extension duplication prevention has
been replaced with one that treats the extension URL as equivalent to
the extension ID. This is true only for built-in extensions, so once we
start supporting third-party extensions we will likely need to bring
back the watchdog (commit e4381b4693
) and
the more-complex duplication prevention (commit
670e51d335
).
The code here should be treated as a last resort: ideally the GUI should
check if a particular extension is loaded (maybe by calling the
Extension Manager's new `isExtensionLoaded` method) and avoid calling
`loadExtensionURL` if it is.
2017-10-31 12:35:18 -07:00
Christopher Willis-Ford
670e51d335
Refuse to register second extension with same ID
...
If an extension attempts to register with the same ID as another
extension which has already registered, the new registration is refused.
If the extension is in a worker and no other extension is successfully
registered by that worker, the watchdog system will terminate the
"empty" worker.
2017-10-31 12:24:26 -07:00
Christopher Willis-Ford
e4381b4693
Add an init watchdog for extension workers
...
If an extension worker does not complete initialization in a reasonable
amount of time (currently 15 seconds) then the worker will be
terminated. A complete initialization includes registering an extension.
2017-10-31 11:28:56 -07:00
Paul Kaplan
48d3b20d69
Stringify things before saying
2017-10-30 15:38:56 -04:00
Paul Kaplan
4f7d6e8f5c
Merge pull request #731 from paulkaplan/fix-global-local-variable-creation
...
Prevent imported local variables from being duplicated on the stage.
2017-10-25 16:26:17 -04:00
Paul Kaplan
d126f799d8
Prevent imported local variables from being duplicated on the stage.
2017-10-25 11:17:29 -04:00
Paul Kaplan
bbbd3dd64b
Make test pass for undefined proc execution
2017-10-25 10:29:07 -04:00
Paul Kaplan
f07c70938a
Merge pull request #729 from paulkaplan/fix-say-think-moving
...
Fix several say/think bugs
2017-10-24 08:40:29 -04:00
Paul Kaplan
c14155c26d
Fix comment on drawableVisible property
2017-10-24 08:17:31 -04:00
Paul Kaplan
09bb01893c
Add back the visibility optimization in a simpler way.
2017-10-23 14:24:54 -04:00
Paul Kaplan
24d550d860
Remove "visible" state flag and use target visibility directly.
...
This fixes several other bugs like "saying" from a hidden sprite.
2017-10-23 13:26:08 -04:00
Eric Rosenbaum
9ffbd60bad
Merge pull request #725 from ericrosenbaum/feature/pen-extension
...
Set/change pen color blocks with color, brightness, saturation, transparency
2017-10-23 11:25:09 -04:00
Paul Kaplan
5ca58c7ceb
Fix new bubbles not moving with their owning sprite.
...
This was the original issue #728 that spurred these changes.
2017-10-23 11:20:46 -04:00
Paul Kaplan
87a0224790
Stop hide timeouts from sticking around through green flag/stop.
2017-10-23 11:19:39 -04:00
Paul Kaplan
44ca62fefc
Fix event listeners not being cleaned up
...
Eventually if you hit the green flag a million times with a "green flag
=> say" stack, you'd get an event emitter memory leak error.
2017-10-23 11:17:39 -04:00
Eric Rosenbaum
0a18ce7287
Lint
2017-10-18 13:16:24 -04:00
Eric Rosenbaum
bddabdbac6
JSDocs
2017-10-18 11:48:45 -04:00
Eric Rosenbaum
b5ad5e1f6b
Warn on set or change unknown color parameter
2017-10-18 11:33:52 -04:00
Eric Rosenbaum
aab1b834d6
On set color using picker, reset transparency to 0
2017-10-17 23:13:05 -04:00
Eric Rosenbaum
a32f7a6402
Default color setting matches default RGB values
...
For color (hue) in range 0-100, to get RGB (0, 0, 1), we need to use 100 * 2/3 = 66.66
2017-10-17 23:10:58 -04:00
Eric Rosenbaum
240c48ad0c
Set or change color param with a single function
2017-10-17 19:31:51 -04:00
Chris Willis-Ford
d8a3e659d5
Playground: use UMD to load storage as global ( #722 )
...
* Playground: use UMD to load storage as global
It appears that `expose-loader` is not compatible with WebPack's UMD
exporter, so the VM playground broke when I converted `scratch-storage`
to use UMD. This change causes the playground to load `scratch-storage`
as an independent script and relies on its UMD loader to expose it as a
global. Bonus points: we get better source mapping this way.
* Playground: tell eslint about global ScratchStorage
2017-10-17 17:40:11 -04:00
Eric Rosenbaum
086df4652e
Remove references to pen shade
2017-10-17 12:23:38 -04:00
Eric Rosenbaum
264042b4cc
Use the word “color” instead of “hue”
2017-10-17 12:22:53 -04:00
Eric Rosenbaum
4f8782cc84
Remove unused function
2017-10-17 11:27:46 -04:00
Eric Rosenbaum
3d6644609f
Add new set/change color param blocks with menu
...
And remove set/change color and shade blocks. All 4 params are now scaled 0-100.
2017-10-17 11:25:22 -04:00
Eric Rosenbaum
22e70ce095
Remove unused arguments for “clear” block
2017-10-17 11:25:22 -04:00
DD Liu
ceb47bd765
Merge pull request #718 from fsih/updateSvgStorage
...
Update storage when the SVG updates
2017-10-13 19:11:41 -04:00
Chris Willis-Ford
c4e79c9732
Merge pull request #713 from cwillisf/fix-extension-hats
...
Fix extension hats
2017-10-13 16:03:51 -07:00
DD
82efc42a13
Update storage when the SVG updates
2017-10-13 17:45:03 -04:00
Chris Willis-Ford
a8ae7bc5b4
Merge pull request #700 from cwillisf/extension-menus
...
Extensions: implement drop-down menus
2017-10-13 09:49:42 -07:00
Chris Willis-Ford
7051ccfd69
Merge pull request #687 from cwillisf/builtin-extensions
...
Builtin extensions
2017-10-13 09:48:56 -07:00
Christopher Willis-Ford
1a9e28bfc9
Small WeDo 2.0 fixups
2017-10-13 01:48:25 -07:00
Christopher Willis-Ford
96fa7315d5
Don't overwrite hat block's fields
...
Due to a typo (I believe) we were overwriting a horizontal hat block's
fields list when collecting hat block inputs. Now we collect inputs into
a temporary object in this case.
2017-10-13 01:46:35 -07:00
Paul Kaplan
4599a71dd7
Try to pin the bubbles within the left/right bounds
2017-10-11 16:34:50 -04:00
Paul Kaplan
b00a619e2d
Only flip bubble if it would fit the other way
2017-10-11 16:27:51 -04:00
Christopher Willis-Ford
309f02542f
Throw if extension tries to build a dynamic menu
...
Dynamic menus are not yet supported for extension menus, though they are
part of the extension spec. This change provides more thorough feedback
if an extension tries to register an unsupported dynamic menu.
2017-10-11 11:41:03 -07:00
Paul Kaplan
f09c4d0bb9
Merge pull request #691 from paulkaplan/say-think
...
Add say/think functionality to looks blocks
2017-10-11 14:24:10 -04:00
Paul Kaplan
fa2db053a7
Fix copy paste error on targetWasRemoved
2017-10-11 14:19:15 -04:00
Paul Kaplan
9af9eb1d92
Fix hide/show
2017-10-10 15:35:48 -04:00
Paul Kaplan
e8c5bbbf80
Fix tests and make chain more resilient
2017-10-10 12:19:27 -04:00
Scimonster
7afb17df7f
Correctly deserialize HTML entities in block DOM
...
E.g. in variable names
2017-10-09 01:19:55 +03:00
Christopher Willis-Ford
2f9796c163
Fix escapeHtml
error caused by rebase
2017-10-06 23:44:27 -07:00
Christopher Willis-Ford
67c788ec8d
Extensions: fix Boolean inputs
2017-10-06 23:33:33 -07:00
Christopher Willis-Ford
c1681e54d5
Implement drop-down menus for extension blocks
...
Also, add `ANGLE` argument type (like `NUMBER` but adds an angle picker)
2017-10-06 23:33:33 -07:00
Paul Kaplan
b0870518a4
Changing parsing of custom procedures for new style
2017-10-06 16:26:19 -04:00
Christopher Willis-Ford
ef3feca385
Fix typo in WeDo 2.0 blocks metadata
2017-10-06 10:56:38 -07:00
Paul Kaplan
14600d7893
Update looks implementation
2017-10-06 13:43:07 -04:00
Christopher Willis-Ford
7297341c51
Fixups from code review
...
- Remove WeDo 2 extension from the runtime's default block packages list
- The WeDo 2.0 extension now calls its own `connect` method on startup
I also renamed `EXTENSION_NAME` to `EXTENSION_ID` for consistency with
the rest of the extension system.
2017-10-06 09:55:19 -07:00
Paul Kaplan
43d061227c
WIP
2017-10-05 17:03:30 -04:00
Paul Kaplan
43a17bdaa8
Add say/think functionality to looks blocks
2017-10-05 11:16:27 -04:00
Christopher Willis-Ford
b6727a766f
Fix pen tests
2017-10-04 16:07:50 -07:00
Christopher Willis-Ford
dd20e09774
Extensions: escape HTML entities in default values
...
This prevents generation of invalid XML due to characters like '<' or
'>' in fields' default values. Unfortunately the value comes back in its
escaped form, so there's still more work to be done.
2017-10-04 13:00:45 -07:00
Christopher Willis-Ford
e9aed49a05
Make loadExtensionURL
handle built-in extensions
...
WeDo2 and Pen blocks have been converted to internal extensions, and can
now be loaded by giving `loadExtensionURL` the string 'pen' or 'wedo2'
instead of an actual URL.
2017-10-04 13:00:39 -07:00
Christopher Willis-Ford
6757fb6de9
Convert pen blocks into an "internal" extension
2017-10-04 12:54:30 -07:00
Paul Kaplan
e4830dfe51
Merge pull request #686 from paulkaplan/fix-extension-labels
...
Remove label generation for extensions
2017-10-04 15:37:06 -04:00
Paul Kaplan
0358d6c0c3
Remove label generation for extensions
2017-10-04 15:02:09 -04:00
Christopher Willis-Ford
99b868c0f0
Explain when it's OK to omit <field> element
...
Also, alphabetize the `ArgumentType` and `BlockType` enums.
2017-10-02 15:29:32 -07:00
Christopher Willis-Ford
772da24d9e
Add integration test for a non-worker extension
2017-10-02 12:02:44 -07:00
Christopher Willis-Ford
06252e020b
Extensions: add support for color-picker arguments
2017-09-27 00:02:53 -04:00
Christopher Willis-Ford
7a21d619bf
Add a way to load an extension without a Worker
...
The new `_registerInternalExtension` method on the extension manager
will register an extension object (an object with a `getInfo()` method)
with the extension system without sandboxing the object in a Worker.
2017-09-27 00:01:47 -04:00
Chris Willis-Ford
6087b5346c
Merge pull request #675 from cwillisf/feature/extensions
...
Feature/extensions
2017-09-14 13:34:18 -07:00
Paul Kaplan
0f04c99e67
Merge pull request #676 from paulkaplan/duplicate
...
Add sprite duplication method
2017-09-13 11:57:13 -04:00
Paul Kaplan
a885e7d619
Refactor error throwing
2017-09-12 10:16:26 -04:00
Paul Kaplan
4a7ba534c1
Fix linter
2017-09-11 15:15:30 -04:00
Eric Rosenbaum
b8bd77e394
Merge pull request #674 from ericrosenbaum/feature/pen-transparency
...
Add pen transparency blocks
2017-09-11 12:41:28 -04:00
Paul Kaplan
81370f7625
Refactor method exports to fix linting and CWF comment
2017-09-11 10:11:48 -04:00
Paul Kaplan
b68b874067
Add sprite duplication method
2017-09-07 11:51:21 -04:00
Christopher Willis-Ford
635c7966eb
Fix tests: don't require('scratch-blocks')
2017-09-06 01:24:24 -06:00
Christopher Willis-Ford
799d61ac98
Cleanup
2017-09-06 00:57:03 -06:00
Christopher Willis-Ford
d99c11ef91
Fix extension conditional blocks' appearance
...
The JSON generated for conditional blocks had slightly incorrect
structure for its `argsN` items and was missing some necessary
`messageN` items.
2017-09-06 00:57:03 -06:00
Christopher Willis-Ford
e7c727977a
Adjust for LLK/scratch-gui#655 & code review
...
- Move extension from this repository into LLK/scratch-gui
- Rename `EXTENSION_WAS_ADDED` event to `EXTENSION_ADDED`
2017-09-06 00:57:03 -06:00
Christopher Willis-Ford
d43749d675
WIP for demo
2017-09-06 00:57:03 -06:00
Christopher Willis-Ford
aaa7784d39
Add methods to fetch scratch-blocks XML and JSON
2017-09-06 00:57:03 -06:00
Christopher Willis-Ford
64bde25d22
Offer a promise for extension worker init
2017-09-06 00:57:03 -06:00
Christopher Willis-Ford
403adb743c
Track extension blocks in the Runtime
2017-09-06 00:57:03 -06:00
Christopher Willis-Ford
42255bbcfa
Collect extension info, prep scratch-blocks data
...
The Extension Manager now calls an extension's `getInfo` method, then
creates `scratch-blocks`-compatible XML and JSON block data from the
results.
2017-09-06 00:57:03 -06:00
Christopher Willis-Ford
7fb7f0dc7b
WIP Extension Manager
...
When asked to load an extension, the Extension Manager starts up a new
Worker. That worker runs the message dispatch system as well as an
instance of the new `ExtensionWorker` class, which will load the desired
extension and register it with the extension system.
Extensions, placed in `./src/extensions/*.js`, are now processed by
Webpack as separate entry points and packed into an `extensions`
subdirectory in the output.
Still to do: query an extension's information, including the blocks it
provides, and register that information with the VM, GUI, etc.
2017-09-06 00:57:03 -06:00
Eric Rosenbaum
58eaeaaf6a
Add pen transparency, clamped 0-100
2017-09-05 18:00:34 -04:00
DD
caf98cb185
change order
2017-09-05 17:53:27 -04:00
DD
48fec12391
add jsdoc
2017-09-05 17:49:30 -04:00
DD
29540e705e
Add updating the rotation center to updateSvg
2017-09-05 16:51:03 -04:00
Eric Rosenbaum
2b89063827
Merge branch 'patch-1' of https://github.com/Kenny2github/scratch-vm into Kenny2github-patch-1
2017-09-05 11:38:27 -04:00
Ken
3185eb27e1
Rewrote transparency block
...
Wrapping of the value is now handled by a new function, _wrapTransparency;
_updatePenColor now handles the transparency value;
DEFAULT_PEN_STATE now includes a transparency value (100).
2017-09-01 14:11:09 +08:00
DD
5606b067e5
More comment fixes
2017-08-31 13:41:47 -04:00
DD
7d3b9a866c
Fix comment
2017-08-31 11:55:17 -04:00