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
Florrie
f4488d1b60
Begin work on 'old text' costumes
2017-09-03 20:35:27 -03: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
DD
e5208445ac
Add updateSVG to tell the renderer about the updated drawing
2017-08-31 11:43:41 -04:00
Ken
f61366643d
Clamp transparency value (at least for set)
2017-08-31 09:24:41 +08:00
DD
5f5f7b1684
add get svg function
2017-08-30 14:23:03 -04:00
Ken
fc4f073526
Add glide (number) secs to [dropdown] block ( #662 )
...
* Add glide to dropdown block
* Use helper functions instead of copy-paste
* Wrong syntax for array 😒
* Aha
* Fix some Travis issues
* Aha!! This should work
* Wow, Travis is strict about spacing!
* Make requested changes
Rename function getTarget to getTargetXY
Rename parameter TO to targetName
2017-08-28 15:44:34 -04:00
Ray Schamp
f367f2d358
Merge pull request #670 from rschamp/eslint-config-scratch-4
...
Update eslint and eslint-config-scratch
2017-08-26 13:26:05 -04:00
Ray Schamp
32bc087bba
Fix remaining lint issues
2017-08-26 13:24:10 -04:00
Ray Schamp
5113876588
Pass with --fix
2017-08-26 13:24:10 -04:00
Ken
8a77329c79
Fix lint issue and update maximums
...
Inferring from the issue, the maximum seems to be 100, not 255 (default for set is 50 and change is 10). Changed that.
A comment line was too long (thanks lint) so it has now been reworded.
2017-08-25 15:24:56 +08:00
Ken
e30e5809d1
Add new blocks
...
change pen transparency by (num)
set pen transparency to (num)
2017-08-25 15:07:38 +08:00
Ray Schamp
f6189903f8
Merge pull request #668 from SillyInventor/develop
...
Switch from parseInt to Math.floor
2017-08-24 12:24:13 -04:00
Andrew Sliwinski
d1af3ef808
Merge pull request #562 from bigeyex/feature/fix-deleted-clone-sequence-order
...
Fix the next thread is skipped after clone deleted
2017-08-23 09:51:38 -04:00
SillyInventor
525b601253
Switch from parseInt to Math.floor
2017-08-22 10:30:41 -04:00
Chris Willis-Ford
2665ef2b2b
Merge pull request #640 from cwillisf/feature/message-dispatch
...
Implement message dispatch system
2017-08-17 10:57:23 -07:00
Ken
884e24f782
*facepalm*
2017-08-11 02:23:43 +12:00
Ken
28e61dbf48
Cleaned up
2017-08-11 01:58:59 +12:00
Ken
328514ae63
This kinda doesn’t make sense, but ok
2017-08-11 01:46:26 +12:00
Ken
5af99566fa
Wait includes is case sensitive
...
Made it convert to lowercase before comparing
2017-08-11 01:27:31 +12:00
Ken
3b601e8595
Add string contains string
2017-08-11 00:52:41 +12:00
Christopher Willis-Ford
b4c0cfe940
Refactor common code in {central,worker}-dispatch
...
Central dispatch and worker dispatch share most of their code now by
inheriting from a new shared dispatch class.
Also, the format of passed messages has been altered to make it easier
to understand in a debugger.
2017-08-09 17:30:00 -04:00
neurosie
86e2b2338e
Fix variable deserializing
2017-08-08 16:00:31 -04:00
DD Liu
a48efe681e
tests
2017-07-31 17:57:51 -04:00
DD Liu
cc1678fa9e
Also run monitor blocks every frame
2017-07-28 14:38:26 -04:00
DD Liu
2aef75bc11
Merge branch 'develop' into timerBlock
2017-07-28 11:35:47 -04:00
TheBrokenRail
936ff04b0f
Fix setting Infinity to direction ( #612 )
...
* Create rendered-target.js
* Update math-util.js
* Update rendered-target.js
* Update math-util.js
* Update rendered-target.js
2017-07-26 17:44:02 -04:00
Paul Kaplan
f2bd32a81a
Merge pull request #653 from paulkaplan/sound-ids
...
Use sound ID instead of md5 for playing sounds
2017-07-26 09:00:00 -04:00
Paul Kaplan
25a0e2ffaf
Use new audio engine api to retreive and set sound buffers
2017-07-25 17:03:26 -04:00
Paul Kaplan
44298fd71b
Use soundId instead of md5 for playing sounds
2017-07-25 12:20:32 -04:00
Paul Kaplan
0cf05647d2
Merge branch 'develop' into fix-asset-naming
2017-07-25 10:48:25 -04:00
Paul Kaplan
f96a92b4d1
Move renaming and adding into rendered-target with tests
2017-07-25 10:32:25 -04:00
Christopher Willis-Ford
97d67d75f4
Allow 'then' on service registration
...
This allows a service to postpone communication with other services
until it can be sure that it's registered with central dispatch. Service
registration on the main thread always happens immediately, but that
version of `setService` still returns a Promise for consistency.
2017-07-21 13:23:52 -07:00
Christopher Willis-Ford
0fcc248ac1
Add tests for message dispatch system; fix bugs
...
The tests run using TinyWorker, which emulates web workers on Node.
There are quite a few quirks in that situation due to the differences
between Node and Webpack as well as the differences between TinyWorker
and real Web Workers.
The tests also exposed a few bugs in the dispatch system, which have now
been fixed. Most notably, if a method called through the dispatch system
throws an exception that exception will now be passed back to the
caller. Previously the exception would escape the dispatch system and
the caller would never hear any response at all.
2017-07-21 13:23:52 -07:00
Christopher Willis-Ford
09d3fe330f
Implement message dispatch system
...
This message dispatch system allows a "service" to register itself under
a particular name, and then anyone can call any method on that service
from any context (the main "window" thread or any worker). Return values
are passed back through promise resolution.
2017-07-21 13:22:14 -07:00
Paul Kaplan
bd3a29650b
Fix variable import scoping
2017-07-17 12:28:44 -04:00
DD Liu
912e7daa81
Merge pull request #636 from fsih/deleteMonitors
...
Update monitors when deleting or renaming variables
2017-07-17 11:06:29 -04:00
Paul Kaplan
0e33d061fe
Merge pull request #633 from paulkaplan/fix-sound-indexing
...
Fix sound indexing and add tests
2017-07-13 15:08:05 -04:00
Paul Kaplan
eb04fcab57
Merge pull request #634 from paulkaplan/sound-costume-renaming
...
Add public API for costume and sound renaming
2017-07-13 09:00:19 -04:00
DD Liu
3722aefb17
fix greater than hat block click activation, and also event activation which was only on half the time
2017-07-12 15:46:23 -04:00
DD Liu
01db5da8ce
fix value
2017-07-11 13:08:18 -04:00
DD Liu
4b1307bb11
fix test
2017-07-11 11:51:47 -04:00
DD Liu
7f1f9079e3
support rename variable
2017-07-10 18:29:25 -04:00
Paul Kaplan
a83c0808a0
Add public API for costume and sound renaming with tests
2017-07-07 08:19:32 -04:00
Paul Kaplan
2ddb6215fd
Add tests and fixes for set instrument and play drum
2017-07-06 14:56:46 -04:00
Paul Kaplan
1b6baf8114
Make playSound use one indexing
2017-07-06 14:28:11 -04:00
Paul Kaplan
6fa49b1e7a
Merge pull request #629 from marisaleung/develop
...
ChangeBlock uses id's of variable instead of name.
2017-06-30 08:10:55 -04:00
Chris Willis-Ford
47fc38fd9a
Merge pull request #619 from cwillisf/clone-custom-state
...
Clone custom state
2017-06-27 22:37:30 -07:00
marisaleung
22f87e32f8
ChangeBlock uses id's of variable instead of name.
2017-06-27 16:28:37 -07:00
Paul Kaplan
b0fb4f0b55
Merge pull request #614 from marisaleung/develop_cherry-picks
...
Updated variables and var_fire event listener.
2017-06-23 13:05:03 -04:00
marisaleung
875ccf5b88
Updated variables and var_fire event listener.
2017-06-23 09:57:01 -07:00
Eric Rosenbaum
01f801a2a2
Remove all audio effects except pitch and pan
2017-06-19 14:56:29 -04:00
Christopher Willis-Ford
06d5994a32
Use targetWasCreated
event to clone pen state
...
Remove explicit cloning of `_customState` in favor of smarter,
state-specific cloning.
2017-06-16 14:22:51 -07:00
Christopher Willis-Ford
04871e24d6
Move RenderedTarget.runtime into Target
...
Some code in `Target` was already assuming a `runtime` property was
available, so this change just makes it official.
2017-06-16 13:16:13 -07:00
DD Liu
2fb502fb70
add ability to refresh workspace for current editing target
2017-06-15 11:53:30 -04:00
Paul Kaplan
93bac9ad85
Merge pull request #608 from paulkaplan/unshadow-variable-dropdown
...
Use variable field instead of input shadow
2017-06-15 10:02:08 -04:00
Paul Kaplan
5df4456c4a
Use variable field directly
2017-06-14 16:31:29 -04:00
Christopher Willis-Ford
884ba19aab
Add support for older SB3 JSON
...
If the `dataFormat` field is absent, fall back on the older `assetType`
field. That can at least help us tell if something is a vector or bitmap
image, though it doesn't tell us which kind of bitmap.
2017-06-13 14:56:06 -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
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
Paul Kaplan
4b5e7a57a5
Fix binding issues
2017-04-19 08:53:07 -04:00
Paul Kaplan
f161640876
Update tests
2017-04-18 11:55:38 -04:00
Paul Kaplan
d86fe6a075
Do not add targets to runtime until they are fully loaded
2017-04-18 09:27:58 -04:00
Ray Schamp
a4f095db5e
Use ES6 style classes
2017-04-17 19:42:48 -04:00
Ray Schamp
4455b0694f
Fix remaining no-var and no-use-before-define's
2017-04-17 17:15:19 -04:00
Ray Schamp
e01c4ae108
Pass with --fix
2017-04-17 15:10:04 -04:00
Ray Schamp
f646a61c5b
Use es6 lint rules
2017-04-17 15:09:57 -04:00
Rasmus Haglund
b693d4f4ef
Fix rounded get size reporting
2017-04-08 19:35:29 +02:00
Eric Rosenbaum
092084cc6b
Merge pull request #513 from ericrosenbaum/feature/loudness
...
Add loudness block
2017-04-07 14:06:18 -04:00
Chris Willis-Ford
44623db5e3
Merge pull request #522 from presight/develop
...
Fix so that size is set in float to ensure backward compatibility with Scratch 2.0
2017-04-06 14:55:08 -07:00
Paul Kaplan
aa2e255add
Merge pull request #526 from paulkaplan/report-sound-costume-data
...
Report sound costume data
2017-04-06 11:45:50 -04:00
Paul Kaplan
8e84b2757e
Report costume and sound data in sprite json
2017-04-06 09:37:39 -04:00
spenen
41082a76cd
Fixed xml import/export in Playground
2017-04-05 20:23:16 +02:00
spenen
0f0292320b
Added size to playground render info
2017-04-05 18:51:16 +02:00
spenen
8c7097f724
Fix #521 so that size is set in float to ensure backward compatibility with Scratch 2.0
2017-04-05 13:46:42 +02:00
Paul Kaplan
771f18e23b
Merge pull request #516 from paulkaplan/add-sound-public-api
...
Expose VM#addSound publicly
2017-04-04 09:05:45 -04:00
Paul Kaplan
2d6eaae01e
Update jsdoc
2017-04-03 16:00:58 -04:00
Paul Kaplan
33f436811c
return sound in promise
2017-04-03 16:00:31 -04:00
Ray Schamp
57e73a68a6
Add costume dataURI to costumes from storage ( #517 )
...
* Add costume dataURI to costumes from storage
Towards #515 , LLK/scratch-gui#279
* Fix tests
* Load costumes incrementally
Some of our tests assume that at least some of our costume data is available before the costume data is loaded. So, provide as much costume data as is available.
* Remove unnecessary filter for null costumes
Resolved when we updated to load costumes incrementally.
/ht @cwillisf
2017-04-03 15:58:13 -04:00
Chris Willis-Ford
a4aa3810ae
Merge pull request #462 from griffpatch/optimise/reduceGetBlockCalls
...
Optimise reducegetblockcalls
2017-04-03 13:00:05 -04:00
Paul Kaplan
251244ce9c
Expose VM#addSound publicly
2017-04-03 09:33:23 -04:00
Paul Kaplan
828f7bfd1c
Merge pull request #514 from paulkaplan/fix-costume-backdrop-loading
...
Use costume loading from importer in public costume and backdrop loader
2017-03-31 12:52:06 -04:00
Paul Kaplan
70530dbeb3
Do not need to emit targets update, done in setCostume
2017-03-31 12:35:20 -04:00
Paul Kaplan
2559f9557f
Resolve to null on error
2017-03-31 11:26:20 -04:00
Eric Rosenbaum
5d14315199
Use log.error
2017-03-29 12:28:20 -04:00
Paul Kaplan
6531dbc2fe
Add logger (thanks linter)
2017-03-27 15:12:25 -04:00
Paul Kaplan
df44134e1c
Use costume loading from importer in public costume and backdrop loader
2017-03-27 15:04:44 -04:00
Eric Rosenbaum
b74c03dbbd
Loudness returns -1 if no audio engine exists
...
To match Scratch 2.0 behavior
2017-03-27 13:20:44 -04:00
Eric Rosenbaum
1ec1165905
Audio engine decodes sounds
2017-03-27 11:56:28 -04:00
Eric Rosenbaum
2303a1abc5
Remove call to loadSounds from rendered-target initDrawable
2017-03-27 11:56:28 -04:00
Chris Willis-Ford
c8b4871b19
Merge pull request #498 from cwillisf/use-scratch-storage
...
Load projects & costumes through scratch-storage
2017-03-23 22:10:25 -07:00
Christopher Willis-Ford
10cb97c52e
Report missing storage module as an error
2017-03-23 16:03:32 -07:00
Silly Inventor
77775cdadb
Switch to using number directly, instead of toNumber for costume switch ( #499 )
2017-03-23 18:34:04 -04:00
griffpatch
c754cc7cf8
Remove line break
2017-03-22 09:11:53 +00:00
griffpatch
220d854f28
Merge remote-tracking branch 'refs/remotes/LLK/develop' into optimise/reduceGetBlockCalls
...
# Conflicts:
# src/engine/execute.js
2017-03-22 08:58:01 +00:00
griffpatch
25429b1192
Tidy up commit and revert direct member access
2017-03-22 08:48:30 +00:00
griffpatch
a5ce0f60cf
Merge remote-tracking branch 'refs/remotes/LLK/develop' into optimise/reduceGetBlockCalls
2017-03-22 07:56:04 +00:00
Eric Rosenbaum
144c587e78
Merge pull request #507 from ericrosenbaum/bugfix/clamp-audio-inputs
...
Clamp audio inputs
2017-03-21 17:48:10 -04:00
Eric Rosenbaum
b4a94c266f
Add loudness block
2017-03-20 17:01:44 -04:00
Eric Rosenbaum
106db6a024
Clamp range for each audio effect
2017-03-20 14:53:04 -04:00
Paul Kaplan
8bbb395b35
Add sprite name incrementing and reserved naming
2017-03-20 12:52:57 -04:00
Paul Kaplan
052ecef91c
Add string utils with tests
2017-03-20 12:12:38 -04:00
Paul Kaplan
5d2352e471
Add test for skipping rename on blank input
2017-03-20 11:14:25 -04:00
Eric Rosenbaum
c9338f37ed
Clamp tempo range
...
The function in AudioEngine for change tempo can now be removed
2017-03-17 18:13:33 -04:00
Eric Rosenbaum
f2ac365859
Clamp beat durations for play note, play drum and rest
2017-03-17 17:29:23 -04:00
Eric Rosenbaum
1ba7ad0218
Clamp range for “play note” input
...
Clamp to 36-96, which is C2-C7.
This is a temporary fix to prevent errors, until we have a new instrument player implementation, which may have a different range.
2017-03-17 17:23:53 -04:00
Chris Willis-Ford
3d7f1187e5
Merge branch 'develop' into use-scratch-storage
2017-03-13 15:48:21 -07:00
Christopher Willis-Ford
c945b37288
Fix lint, missing require
2017-03-13 15:44:13 -07:00
Moran
94d2a39cc1
Merge branch 'develop' of https://github.com/LLK/scratch-vm into develop
2017-03-13 18:07:17 -04:00
Christopher Willis-Ford
6ad0f3351b
Check if storage module is present before using it
2017-03-13 15:06:28 -07:00
Christopher Willis-Ford
e4fd9d57a2
Fix tests involving scratch-storage
...
- Attach the storage module to the VM for tests which load projects or
other assets.
- Move `import_sb2.js` from `test/unit/ into `test/integration` since it
now depends heavily on `scratch-storage`.
- Skip loading costumes when there is no renderer.
2017-03-09 15:50:43 -08:00
Ray Schamp
b03768cad6
Remove filter toolbox utility ( #496 )
...
* Revert "Merge pull request #486 from rschamp/fix-filter-tests"
This reverts commit ba00db897f
, reversing
changes made to 739c5deb63
.
* Revert "Show Categories that use custom code to load (variables, procedures) (#483 )"
This reverts commit 739c5deb63
.
* Revert "Merge pull request #461 from rschamp/filter-toolbox"
This reverts commit 343b5bfe8e
, reversing
changes made to 370f2c6a47
.
2017-03-09 16:41:06 -05:00
Christopher Willis-Ford
c23e9c6bf8
Load projects & costumes through scratch-storage
...
This also sets up the framework to load sounds through scratch-storage,
to be finished in a later change.
2017-03-09 11:25:55 -08:00
Paul Kaplan
2ebb112d30
Merge pull request #495 from paulkaplan/fix-target-id
...
Add check to make sure `target` exists
2017-03-08 12:13:10 -05:00
Paul Kaplan
8aaadf2fab
Add check to make sure target exists
2017-03-08 11:40:02 -05:00
Paul Kaplan
5b82096670
Clear gfx on stop all
2017-03-06 15:54:52 -05:00
Moran
d8e1d42bf2
Merge branch 'develop' of https://github.com/LLK/scratch-vm into develop
2017-03-03 15:23:43 -05:00
Ray Schamp
bf2303f6de
Merge pull request #490 from rschamp/dnd
...
Add methods for dragging and dropping sprites
2017-03-03 09:50:34 -05:00
Ray Schamp
d0cd9cd897
Add methods for dragging and dropping sprites
...
* Add `getTargetIdForDrawableId` to translate between renderer picks and VM targets
* Add `startDrag` to stop sprite motion while dragging
* Add `stopDrag` to return sprite motion after dragging
2017-03-03 09:43:31 -05:00
Ray Schamp
319f27a060
Merge pull request #487 from rschamp/draggability
...
Add draggable property to sprites
2017-03-02 15:56:12 -05:00
Ray Schamp
11e28111c5
Activate click hats on mouse up to match 2.0
2017-03-02 11:32:10 -05:00
Andrew Sliwinski
a4578ba086
Default bitmapResolution to 1 if not provided in costume metadata ( #485 )
...
* Default bitmapResolution to 1 if not provided in costume metadata. Resolves GH-484
2017-03-02 11:21:01 -05:00
Ray Schamp
8dadc42857
Add draggable property to sprites
...
This property should be managed by the VM so that it can be displayed in the sprite info panel in the GUI.
2017-03-01 18:49:17 -05:00
Andrew Sliwinski
7042bdb45c
Merge pull request #472 from griffpatch/bug/escapeFromConditionalBranches
...
Bug - escapeFromConditionalBranches
2017-03-01 16:42:30 -05:00
TheBrokenRail
739c5deb63
Show Categories that use custom code to load (variables, procedures) ( #483 )
2017-03-01 09:25:11 -05:00
Ray Schamp
390b2373e9
Refactor filter methods into util
2017-02-27 12:57:38 -05:00
Ray Schamp
a9b495fced
Filter the playground toolbox
2017-02-27 12:57:38 -05:00
Ray Schamp
99e1b24285
Add rudimentary toolbox filtering method
2017-02-27 12:57:38 -05:00
Ray Schamp
370f2c6a47
Merge pull request #459 from griffpatch/feature/FencingAgain
...
Feature fencing again
2017-02-24 11:27:10 -05:00
Chris Willis-Ford
a56db95aba
Merge pull request #446 from magmaboat/hasownproperty
...
Perform hasOwnProperty validation
2017-02-22 13:55:54 -08:00
griffpatch
c5eb8ece16
Handle actual looping cases
...
And it starts to get a little less elegant :/
Wondering if this should not be handled better in another part of the
codebase?
We don't want to be duplicating existing code stepping functionality
locally at the end of the promise script really... What do you think?
2017-02-20 09:40:32 +00:00
griffpatch
362a231279
bug - escape from conditional branches
...
Execution bug: can't escape from conditional branches that end with a
Promise-resolution-terminating command block (see #464 )
2017-02-20 08:20:21 +00:00
griffpatch
a141bfb1b9
Fix lint issues
2017-02-16 10:54:17 +00:00
griffpatch
7bc141e76e
Feature Fencing
...
This is a re-comit after the previous pull was reverted.
2017-02-15 15:59:54 +00:00
Ray Schamp
39158c9d48
Revert "Feature fencing"
2017-02-15 09:40:10 -05:00
griffpatch
75e3f6002b
Fencing - Take 3
...
Dependant on scratch-render pull request.
2017-02-14 09:12:35 +00:00
Christopher Willis-Ford
18107cde7b
Reverse target iteration in allScriptsDo
...
The `allStacksAndOwnersDo` function in Scratch 2.0 runtime iterates
targets in reverse and projects sometimes rely on that for correct
initialization. If, for example, each sprite runs a "go back 999 layers"
or "go to front" block as its first action, the order of execution will
determine the ordering of the layers.
This change makes Scratch 3.0 match the Scratch 2.0 execution order.
2017-02-13 14:45:29 -08:00
Christopher Willis-Ford
bd76395676
Minor cleanup around cloning methods
2017-02-13 14:44:51 -08:00
griffpatch
75a1542fc3
Merge remote-tracking branch 'refs/remotes/origin/develop' into optimise/reduceGetBlockCalls
2017-02-11 15:39:33 +00:00
griffpatch
9aa81d6776
Merge remote-tracking branch 'refs/remotes/LLK/develop' into feature/fencing
2017-02-11 14:30:59 +00:00
griffpatch
4d63dcac3b
Rename fencing method
2017-02-11 14:30:18 +00:00
griffpatch
ea59f8cd66
Reduce calls to getBlock
2017-02-11 14:26:23 +00:00
Christopher Willis-Ford
243d68f88b
Use Webpack to generate the whole playground
...
The previous configuration mixed Webpack output with static content in
order to create the playground. This change moves that static content
from `/playground/` into `/src/playground/` and adds a Webpack rule to
copy it into the playground as part of the build.
On the surface this might seem unnecessary, but it provides at least two
benefits:
- It's no longer possible to accidentally load stale build output
through `webpack-dev-server` in the event of a misconfiguration. This
was very easy in the previous configuration, and might in fact be the
only way that `webpack-dev-server` ever worked for this repository.
- It's simpler to ensure that various rules apply to the hand-authored
content and not build outputs. This includes lint rules, `.gitignore`,
IDE symbol search paths, etc.
2017-02-10 14:21:37 -08:00
Eric Rosenbaum
99be466aa7
Merge pull request #444 from ericrosenbaum/bugfix/playnote-volume
...
Pass volume to audioengine playnote
2017-02-10 14:09:55 -05:00
Ray Schamp
fb181d5ce3
Merge pull request #447 from CSnap/fix_keyPressToUpperCase
...
Switch From Return Null to Return Empty String in keyCodeToScratchKey
2017-02-10 14:00:50 -05:00
griffpatch
246ff28363
Merge remote-tracking branch 'refs/remotes/LLK/develop' into bug/WhiteSpaceEqualsZero
2017-02-10 08:02:43 +00:00
griffpatch
ad5bc1afbd
Pull white space checks into function
...
Clean up code by pulling white space checks into a seperate helper
function
2017-02-10 08:02:11 +00:00
griffpatch
338b2f3458
Merge remote-tracking branch 'refs/remotes/LLK/develop' into bug/WhiteSpaceEqualsZero
2017-02-10 07:43:44 +00:00
Magmaboat
85eee4f18e
Perform hasOwnProperty validation
2017-02-09 21:12:47 -05:00
Eric Rosenbaum
cd750b5dda
pass volume to audioengine playnote
2017-02-09 14:52:15 -05:00
SillyInventor
8354774fcf
Switch from return null to return empty string in keyCodeToScratchKey
2017-02-09 14:09:01 -05:00
Chris Willis-Ford
cde9ebd6bf
Merge pull request #442 from griffpatch/bug/PenColorOpacity
...
Bug pen opacity reset
2017-02-09 07:53:15 -08:00
morant
19275799df
Load md5 information from sounds
2017-02-09 10:44:28 -05:00
Andrew Sliwinski
4bb5f30bd8
Merge pull request #410 from griffpatch/optimisation/only-check-for-compatability-once
...
Optimisation - Only check browser compatability once
2017-02-09 08:17:51 -05:00
Andrew Sliwinski
d650e5393e
Merge pull request #439 from griffpatch/bug/StopThisScript
...
Implement "Stop this script" function
2017-02-09 08:10:00 -05:00
griffpatch
464722f7bd
Feature - Fencing of sprites
...
This change requires that the pull request for scratch-render (Feature
fencing #82 ) be taken first
2017-02-09 10:02:45 +00:00
griffpatch
a6c56a6e20
Merge remote-tracking branch 'refs/remotes/LLK/develop' into bug/PenColorOpacity
2017-02-09 08:51:10 +00:00
griffpatch
2ba177aa0f
Bug - Return pen opacity to opaque
...
When setting the pen color using pen blocks, the opacity should be reset
to fully opaque if no alpha is supplied.
2017-02-09 08:50:37 +00:00
griffpatch
276ae82769
Fixes Case Insensitive Broadcast Bug
...
Broadcasts are case sensitive #433
2017-02-08 10:05:48 +00:00
griffpatch
9cb595312e
Implement "Stop this script" function
...
Existing implementation incorrectly terminates the entire thread.
See: http://llk.github.io/scratch-vm/#144142535
2017-02-08 09:44:10 +00:00
griffpatch
cf215bf0bc
Fix for the "Empty or white space strings equal 0" bug
...
See: Empty or white space strings equal 0 #435
2017-02-08 08:38:50 +00:00
griffpatch
7d69ecc005
Optimisation - Only check browser compatability once
...
Disable use of more accurate timer temporarilly due to performance.
However, with the rearrange and introduction of the 'nowObj' it turns
out most of the delay is in resolving 'self.performance'... so keeping
this cached in nowObj actually mitigates most of the delay.
2017-02-08 08:11:10 +00:00
griffpatch
57c222e94f
Merge remote-tracking branch 'refs/remotes/LLK/develop' into optimisation/only-check-for-compatability-once
2017-02-08 08:04:47 +00:00
morant
ed978e3062
Read sprite costume names from JSON, and write currentCostume to JSON
2017-02-07 20:12:55 -05:00
morant
6b545ea16d
Update isStage for each sprite when loading JSON, removing things copied from SB2 which are not relevant.
2017-02-07 18:38:44 -05:00
morant
0dc1883e9f
Write costumes and sounds to JSON on save
2017-02-07 18:15:11 -05:00
morant
e16f2924a3
Merge branch 'develop' of https://github.com/LLK/scratch-vm into develop
2017-02-07 09:53:17 -05:00
Andrew Sliwinski
92ff57de7d
Add basic test coverage for the sound blocks
2017-02-03 17:39:36 -05:00
Eric Rosenbaum
9741dc2e35
Merge branch 'develop' of https://github.com/LLK/scratch-vm into sound
2017-02-02 16:37:07 -05:00
Ray Schamp
727fcc7875
Lint for eslint-config-scratch@3
2017-02-01 16:27:55 -05:00
Eric Rosenbaum
0947775a31
Merge branch 'develop' of https://github.com/LLK/scratch-vm into sound
2017-02-01 10:18:01 -05:00
SillyInventor
1ac89f5aa4
Added new util function that sends tan function infinities correctly
...
Changed mathop to call new math util
Changed sin & cos to round correctly (to get 0)
Added testing for the new math util function
Added testing for the new mathop functions
2017-01-31 19:05:54 -05:00
Eric Rosenbaum
53127f6320
use customstate for sound volume, instrument, effects
2017-01-31 18:33:32 -05:00
Eric Rosenbaum
95e29ed66a
move sound-related code out of rendered target
2017-01-31 18:32:46 -05:00
Andrew Sliwinski
fff63e3af2
Merge pull request #414 from thisandagain/bugfix/413
...
Bugfix - Continue import if opcode is not found during SB2 import
2017-01-30 15:36:24 -05:00
Andrew Sliwinski
c2a488a197
Merge pull request #408 from griffpatch/optimisation/avoid-negative-index-lookups
...
Optimisation - Avoid negative index lookups #407
2017-01-30 15:06:02 -05:00
Andrew Sliwinski
249c0d6dca
Merge pull request #409 from griffpatch/optimisation/remove-redundant-lookups
...
Optimisation - Remove redunant lookups
2017-01-30 15:04:42 -05:00
Andrew Sliwinski
7c18b33f99
Continue import if opcode is not found during SB2 import. Resolves GH-413
2017-01-30 14:32:32 -05:00
Eric Rosenbaum
2d8491123e
Merge branch 'develop' of https://github.com/LLK/scratch-vm into sound
2017-01-30 11:28:52 -05:00
Eric Rosenbaum
dd30e07052
comments on getSoundIndex
2017-01-30 10:56:50 -05:00
Eric Rosenbaum
9d8819ddc7
audio engine handles rest block
2017-01-30 10:56:31 -05:00
Eric Rosenbaum
cb4209b27a
target handles playnote via audio engine
2017-01-30 10:56:06 -05:00
Eric Rosenbaum
5966a46bbd
target manages instrument setting
2017-01-30 10:54:24 -05:00
Eric Rosenbaum
4e4b0b86e1
target manages audio effect values
2017-01-30 10:53:12 -05:00
Eric Rosenbaum
01e237a2d5
audio engine loads all sounds
2017-01-30 10:50:28 -05:00
Eric Rosenbaum
4e57ab561d
move playsound function to target
2017-01-30 10:45:15 -05:00
Eric Rosenbaum
d5e0d433aa
include md5 in sprite sound object
2017-01-30 10:43:28 -05:00
griffpatch
fbf2c0c345
Optimisation - Recycle Stack Frame for cosecutive blocks
...
This saves popping, destroying, recreating, and pushing the stack frame,
and then reassigning the warp mode attribute for every block to block
step in the execution.
2017-01-28 17:06:07 +00:00
griffpatch
bd405ecc4a
Optimisation - Only check browser compatability once
...
This saves doing the checks everytime the time functions are referenced
2017-01-28 16:43:37 +00:00
griffpatch
76c9c993f2
Optimisation - Remove redunant lookups
...
It's surprising how much time it takes to do an object member lookup, so
reducing these is a great idea.
2017-01-28 16:33:20 +00:00
Andrew Sliwinski
824628220c
Merge pull request #406 from griffpatch/bugfix/end-warp-bug
...
Runtime does not exit warp mode if at end of loop #398
2017-01-28 09:56:04 -05:00
griffpatch
bd9159b9fb
More negative index checks
2017-01-28 14:39:22 +00:00
griffpatch
a25e117412
optimisation/avoid negative index lookups #407
...
Run-time Optimisation
The thread.stackFrames array is accessed all the time to retrieve the
'parent' stack frame. This is done using as index of [this.stack.length
- 1]. However, a lot of the time this evaluated to [-1]. Although this
results in null, which is fine, to get to this javascript actually
defers from a numeric array lookup to an object lookup using the string
"-1". This is roughly 100 times slower to compute and so a simple catch
for negative indexes is well worth the extra check.
2017-01-28 14:38:13 +00:00
griffpatch
c6a872ef4a
Fix whitespace issues
2017-01-28 14:11:48 +00:00
griffpatch
5f100129b6
Fix for ending warp bug
...
When popping down the stack frame it is assumed that you keep using the
previous warp state rather than looking at the warp state of the level
you just popped out to. This causes the loss of screen updates if the
warping block was the last statement in a loop as the loop does not obey
it's 'non warp' status.
2017-01-28 14:03:29 +00:00
morant
c6c1a63ff0
Merge branch 'feature/194' of https://github.com/morantsur/scratch-vm into develop
...
+ Solve code conflicts, and handle deserialization of 3.0 projects.
# Conflicts:
# src/index.js
# test/unit/serialization_sb2.js
2017-01-27 20:05:54 -05:00
Andrew Sliwinski
de4035055b
Merge pull request #403 from griffpatch/feature/Support-ARGB-for-pen
...
Fix for Support ARGB for pen #393
2017-01-27 17:07:43 -05:00
griffpatch
0dcaa46107
Fix lint issues
...
Had to update the test scripts to handle the alpha channel, also I note
that all the hex tests are using CSS notation, not scratch notation
(which is 0x not #)
2017-01-27 17:05:17 +00:00
Andrew Sliwinski
eb3b7bfd40
Merge pull request #401 from griffpatch/Effect-not-correctly-copied-to-clones
...
Effect not correctly copied to clones #337
2017-01-27 10:52:24 -05:00
griffpatch
b856041d9a
Fix for Support ARGB for pen #393
...
Requires fix to scratch-render before this will work (see:
6f5acfee7b961d71237f1fd50bb3d5a5139c527e)
2017-01-27 13:45:16 +00:00
griffpatch
2ac4b73a1f
Importers: adjust block coordinate calculation so blocks overlap less. #326
...
This change imports the scratch blocks much closer to the Scratch 2
spacing.
2017-01-27 13:39:21 +00:00
griffpatch
cf43efe3ee
Effect not correctly copied to clones #337
...
Fixes Effect not correctly copied to clones #337
2017-01-27 13:11:17 +00:00
Christopher Willis-Ford
88cc50aa18
Code review: more docs, move constants, clone util
...
Changes include:
- Added missing JSDoc for items in `scratch3_pen.js` and `target.js`.
- Moved constants used by `Scratch3PenBlocks` into the class.
- Created a constant for minimum and maximum pen size.
- Added `util/clone.js` to host cloning functionality.
- Pen blocks now check for the renderer before trying to use it.
- The pen integration test covers all blocks, though `clear`, `stamp`,
and `pen down` will skip some of their functionality when there is no
renderer.
2017-01-20 11:26:18 -08:00
Christopher Willis-Ford
d0845728ee
Add unit tests for new color-related functionality
...
Also, fix a math error in `Color.rgbToHsv`.
Newly covered functions:
- `toRbgColorObject` from `util/cast.js`
- `hsvToRgb` from `util/colors.js`
- `rgbToHsv` from `util/colors.js`
- `mixRgb` from `util/colors.js`
2017-01-19 15:24:45 -08:00
Christopher Willis-Ford
a6190da774
Lint fixes and related cleanup
2017-01-19 12:50:46 -08:00
Christopher Willis-Ford
369c02b5d5
Implement pen blocks
...
These blocks implement pen features as found in Scratch 2.0
Supporting changes include:
- `Target` is now an event emitter
- `RenderedTarget` now emits an event when it moves
- `Target` can now store arbitrary "extra" data, called "custom state"
in the code, using a `Target`'s `setCustomState` and `getCustomState`
methods. This is used to store per-target pen state without requiring
`Target` or `RenderedTarget` to know anything about the pen.
- `Cast` can now cast to an RGB color object.
- `Color` now has functions to convert between RGB and HSV, constants
for for black & white, and a `mixRgb` function to lerp between two
colors.
2017-01-19 11:51:22 -08:00
Ray Schamp
c6c4c4c00c
Merge pull request #379 from rschamp/bugfix/empty-rotation-center
...
Only update costume rotationCenter if it exists
2017-01-13 16:55:39 -05:00
Chris Willis-Ford
9b04392211
Move build outputs into a dist/
subdirectory ( #375 )
...
* Move Node output: /dist.js => /dist/node/scratch-vm.js
* Move web output: /vm{.js,.min.js} => /dist/web/scratch-vm{.js,.min.js}
* Update build output references in package.json and the playground's index.html
* Move the VirtualMachine class out of index.js into its own file, referenced by index.js. The VirtualMachine class is otherwise unchanged.
* Add .gitattributes rules for new file types which were added to this repository without specifying their text/binary attributes
* Turn on source maps in webpack and add corresponding .gitignore rule
2017-01-13 13:34:26 -08:00
Ray Schamp
a56346d0a9
Only update costume rotationCenter if it exists
...
This prevents sending `NaN`s to the renderer as the rotation center, which prevents the initial render of the costume/backdrop.
Towards LLK/scratch-gui#18
2017-01-13 13:05:06 -05:00
Ray Schamp
4ba76bbdbd
Fix adding SVG costumes
...
Previously it assumed every costume to have a `bitmapResolution` property which doesn't apply to vector costumes. This caused the renderer to not render added SVG costumes when they were added with setCostume.
2017-01-12 15:34:05 -05:00
Eric Rosenbaum
4022703537
move audio state vars into rendered target
2017-01-11 15:42:07 -05:00
Eric Rosenbaum
9cc1c316d6
wrapclamp drum and instrument to num available
2017-01-11 11:41:21 -05:00
Eric Rosenbaum
f2ad364b90
vm converts one-indexing of drums and instruments to zero-indexing
2017-01-11 11:23:39 -05:00
Eric Rosenbaum
71339874de
fix name of DRUM arg
2017-01-11 11:22:58 -05:00
Eric Rosenbaum
76a475c31c
cast args to numbers
2017-01-10 18:00:33 -05:00
Eric Rosenbaum
3344c92f7e
change ‘drumtype’ to ‘drum’ in specmap
2017-01-10 18:00:02 -05:00
Eric Rosenbaum
f034564603
Merge branch 'develop' of https://github.com/LLK/scratch-vm into sound
2017-01-09 15:51:47 -05:00
Eric Rosenbaum
4d7ff97011
instrument number is zero-indexed inside audio engine
2017-01-09 15:48:31 -05:00
Eric Rosenbaum
ce8b069140
include volume reporter
2017-01-09 15:48:02 -05:00
Eric Rosenbaum
2d7cfd128a
use a single global tempo owned by audioengine
2017-01-09 15:47:29 -05:00
Eric Rosenbaum
dc9126e067
Merge pull request #373 from ericrosenbaum/sound
...
Integrate audio engine
2017-01-06 16:28:09 -05:00
Eric Rosenbaum
bd8fdad1d4
add check for audioengine
2017-01-06 16:24:16 -05:00
Eric Rosenbaum
18c88c8ee0
fix stop for audio
2017-01-06 16:14:41 -05:00
Eric Rosenbaum
b88c6c96e2
initialize audio player once per sprite (not for clones)
2017-01-06 16:14:27 -05:00
Eric Rosenbaum
9980f4da3f
lint
2017-01-06 16:13:43 -05:00
Eric Rosenbaum
fec9e5b91a
add audio to playground
2017-01-06 11:49:25 -05:00
Eric Rosenbaum
9350baef3b
add current volume block
2017-01-06 10:31:11 -05:00
Eric Rosenbaum
dbe2cef93c
move promise into audio engine
...
changes to play note, play drum and rest blocks so their promises to wait are returned by the audio engine
2017-01-06 10:31:01 -05:00
Eric Rosenbaum
c0d57b4b6b
separate out main audioengine from audioplayer for each clone
2017-01-04 18:37:55 -05:00
Eric Rosenbaum
5a1386f727
remove redundant type check
2017-01-04 14:42:00 -05:00
Eric Rosenbaum
3bf9238e0c
treat numeric input to sound name as 1-indexed
2017-01-04 14:41:14 -05:00
Eric Rosenbaum
7a49a3ae43
lint
2017-01-03 23:41:49 -05:00
Andrew Sliwinski
5daaaa4438
Merge pull request #362 from thisandagain/bugfix/coverage
...
Add integration test coverage
2017-01-03 09:38:14 -05:00
Andrew Sliwinski
6d83931341
WIP clean-up
2016-12-30 10:19:58 -05:00
Andrew Sliwinski
04d9620631
Merge branch 'patch-24' of https://github.com/TheBrokenRail/scratch-vm into feature/194
2016-12-24 08:46:50 -05:00
Andrew Sliwinski
4709cae4b7
Basic integration (end-to-end) testing for default project
2016-12-23 10:39:19 -05:00
Andrew Sliwinski
48721dd336
If not hat fields are not found, check inputs before continuing. Resolves GH-360
2016-12-23 09:38:18 -05:00
Eric Rosenbaum
f0e01d3e87
fix name of sounds menu
2016-12-22 14:12:20 -05:00
Eric Rosenbaum
f90807e8a4
add get sound index by name
2016-12-21 16:42:19 -05:00
Eric Rosenbaum
f2793a1d59
Merge branch 'develop' of https://github.com/LLK/scratch-vm into sound
...
# Conflicts:
# package.json
# src/engine/runtime.js
# src/sprites/clone.js
2016-12-21 15:29:57 -05:00
TheBrokenRail
2ffb17458d
Update index.js
2016-12-11 12:45:35 -05:00
TheBrokenRail
838608af86
Update sprite.js
2016-12-11 12:42:39 -05:00
TheBrokenRail
04fc32b294
Update rendered-target.js
2016-12-11 12:40:06 -05:00
TheBrokenRail
b304cecefb
Add Testing Pt. 1
2016-12-11 12:33:02 -05:00
Ray Schamp
e9da046969
Report full sprite info in targetsUpdate
...
We need more than just the name for the initial render, so send everything consistent with sprite info reports.
2016-12-07 17:11:08 -05:00
TheBrokenRail
06e5124a3c
Update index.js
2016-12-04 08:42:28 -05:00
TheBrokenRail
a58bcb93e6
Update index.js
2016-12-04 08:39:22 -05:00
TheBrokenRail
c4750d64b6
Fix Drawable Properties Not Getting Updated
2016-12-03 16:50:06 -05:00
TheBrokenRail
7fe597c9f9
Now Actually loads Rendered Target Properties
2016-12-03 16:29:56 -05:00
TheBrokenRail
05a827c0ea
Update index.js
2016-12-02 16:30:34 -05:00
TheBrokenRail
f2a08b466d
Update Names
2016-12-02 16:03:52 -05:00
TheBrokenRail
34d2676db3
Update index.js
2016-12-02 15:57:56 -05:00
TheBrokenRail
424b41ac31
Pretty Print
2016-12-02 15:41:55 -05:00
TheBrokenRail
a520990a80
Update index.js
2016-12-02 15:37:35 -05:00
TheBrokenRail
0707c4bcc8
Update index.js
2016-12-02 15:35:35 -05:00
TheBrokenRail
dd86759915
Update rendered-target.js
2016-12-02 15:34:01 -05:00
Ray Schamp
adaf2df743
Emit sprite info report for all sprites
...
This allows costume data to reach listeners even when the sprite isn't the editing target.
Filter out non-editing target reports in the playground to match previous behavior.
2016-11-30 13:21:00 -05:00
Ray Schamp
ce17fdbd30
Include costume data in sprite info reports
...
Also emit the report on all costume changes
2016-11-30 13:19:49 -05:00
TheBrokenRail
72b44b3ec7
Update rendered-target.js
2016-11-29 18:57:35 -05:00
TheBrokenRail
74b8378a7c
Update sprite.js
2016-11-29 18:55:38 -05:00
TheBrokenRail
1980fbc98d
Update rendered-target.js
2016-11-29 18:53:38 -05:00
TheBrokenRail
f4959305ab
Update index.js
2016-11-29 18:14:12 -05:00
TheBrokenRail
1777ab6a21
Update index.js
2016-11-29 18:09:28 -05:00
TheBrokenRail
51d829786c
Update index.js
2016-11-29 18:07:50 -05:00
TheBrokenRail
16449ae73d
Add Loading And Exporting
2016-11-29 17:50:31 -05:00
TheBrokenRail
0f4e80cbfc
Add Export To Sprite
2016-11-29 17:23:28 -05:00
TheBrokenRail
cac52020a4
Add Export To Rendered Target
2016-11-29 17:18:20 -05:00
Ray Schamp
d00cdd6b2c
Account for done threads on threadCount update
...
Also rename inactiveThreads -> doneThreads, since this describes them better. They are the threads that have completed in the step.
2016-11-28 10:49:05 -05:00
Ray Schamp
0003b294cb
Lint
2016-11-24 10:36:30 -05:00
Ray Schamp
55ac7e269c
Add PROJECT_RUN_START/STOP events
...
These events signal when any threads are running or when all threads have stopped running. This maps to whether the green flag or the stop button should be illuminated in the GUI.
2016-11-23 15:47:49 -05:00
Ray Schamp
2ff719f2ba
Fix consistency of existing emits
2016-11-23 15:43:05 -05:00
Tim Mickel
a767c5ec79
Keep min and max scale in relative bounds as in Scratch 2.0
2016-11-14 12:20:29 -05:00
Tim Mickel
4deee071b2
Don't copy threads in step; stable restartThread ( #331 )
2016-11-10 15:05:49 -05:00
Ray Schamp
2c3e4536eb
Merge pull request #316 from tmickel/feature/remove-empty-project
...
Remove empty project
2016-11-10 12:56:31 -05:00
Tim Mickel
b99f089ae7
Fix #327 , "switch costume to [next/previous]" ( #330 )
2016-11-09 11:22:17 -05:00
Tim Mickel
f235cb47e6
Merge remote-tracking branch 'LLK/develop' into feature/remove-empty-project
...
# Conflicts:
# src/index.js
2016-10-31 10:39:36 -04:00
Eric Rosenbaum
6dadaba117
onStopAll function for stop button
2016-10-27 16:28:39 -04:00
Eric Rosenbaum
1e5555e96d
add volume and tempo blocks
2016-10-27 11:31:22 -04:00
Tim Mickel
0ede7e6ca1
Rename and delete sprites ( #319 )
...
* Add function to rename sprites
* Add delete sprite function
* Add `isSprite` helper and duplicate check for rename
2016-10-26 13:27:24 -04:00
Tim Mickel
56ef01745f
Implement sprite info emitting and posting ( #320 )
2016-10-26 13:27:12 -04:00
Tim Mickel
1dc4aaa2d7
Remove rAF usage and inline into _step ( #318 )
2016-10-26 11:32:15 -04:00
Tim Mickel
2f0ce7137c
Rename Clone -> RenderedTarget ( #317 )
2016-10-26 11:19:43 -04:00
Tim Mickel
6e9b3f262c
Divide rotation center by bitmap resolution ( #309 )
2016-10-26 10:38:24 -04:00
Tim Mickel
d75f1c5965
Remove empty project
2016-10-26 10:30:16 -04:00
Tim Mickel
cf20ca1add
Fix #313 (block specs in shadow) ( #315 )
2016-10-26 10:26:56 -04:00
Tim Mickel
28a0831e8d
Fix 1-1 in daysSince2000
2016-10-26 10:26:03 -04:00
Tim Mickel
5103cfb853
Address #299 and #300 ( #314 )
...
* Place clones behind sprite
* Disallow stage from cloning itself
2016-10-26 10:06:58 -04:00
Liam
f75577bcbe
Implement '(attribute) of' sensing block ( #311 )
...
* Implement '(attribute) of' sensing block
* Remove unused util parameter
2016-10-24 20:37:27 -04:00
Eric Rosenbaum
90867cd14e
convert string to number for sound index
2016-10-24 17:00:51 -04:00
Andrew Sliwinski
1b4a1ca1bc
Resolve merge conflicts
2016-10-24 15:53:42 -04:00
Andrew Sliwinski
153df22918
Address feedback from PR review
2016-10-24 15:16:06 -04:00
Ray Schamp
659014b45f
Fix typo
2016-10-24 14:07:38 -04:00
Ray Schamp
d2a0e6fa2d
Disable no-useless-call in case of behavior change
2016-10-24 13:01:57 -04:00
Ray Schamp
22bf947ddb
Revert no-lonely-if
2016-10-24 13:01:41 -04:00
Andrew Sliwinski
279a9560af
Resolve JSDoc lint errors
2016-10-24 12:04:06 -04:00
Andrew Sliwinski
336bc65e2d
Add minimal test coverage and docs for mouse module
2016-10-24 11:56:52 -04:00
Ray Schamp
04d7f4f019
Use consistent function declaration style
2016-10-24 11:49:34 -04:00
Andrew Sliwinski
2de58050dd
Conform JSdoc for keyboard module to format used elsewhere
2016-10-24 11:40:07 -04:00
Ray Schamp
9f0c4eb098
Update to eslint-config-scratch 2.0
...
We are on a fast release cycle here.
2016-10-24 11:39:39 -04:00
Ray Schamp
63cfa4229a
Fix space-infix-ops
...
http://eslint.org/docs/rules/space-infix-ops
2016-10-24 11:19:07 -04:00
Ray Schamp
7712b2902f
Fix quote-props
2016-10-24 11:02:19 -04:00
Ray Schamp
14a2dbc50f
Revert no-lonely-if
2016-10-24 10:28:31 -04:00
Ray Schamp
73edb65c4d
Replace console with minilog
2016-10-23 22:20:30 -04:00
Ray Schamp
f6c0064235
All linting other than console statements
2016-10-23 22:20:29 -04:00
Ray Schamp
68ed110b49
Pass with eslint --fix
...
Resolved whitespace issues, e.g., space-before-function-paren and key-spacing
2016-10-23 12:41:45 -04:00
Andrew Sliwinski
faf8a898a0
Add minimal test coverage and docs for keyboard module.
2016-10-21 18:31:07 -04:00
Tim Mickel
84bd42d734
Functions to add Sprite2/costumes/backdrops ( #291 )
...
* Functions to add Sprite2/costumes/backdrops
* Have sb2import return the top-level target
2016-10-20 11:44:01 -04:00
Tim Mickel
3d57c2e74c
Drop single-stepping and pause modes ( #294 )
2016-10-20 11:42:16 -04:00
Tim Mickel
9af9a87cb6
Pass rotation center and bitmap resolution to renderer ( #288 )
2016-10-19 17:01:48 -04:00
Eric Rosenbaum
0858a22ffb
adding theremin block and set instrument
2016-10-19 15:44:30 -04:00
Tim Mickel
e49f076fa1
Interpreter fixes, enhancements, features ( #280 )
...
* Thread stepping rework; interp.redraw equivalent
* Add turbo mode and pause mode
* Yielding behavior to match Scratch 2.0
* Implement warp-mode procedure threads
* Add check for recursive call
* Inline wait block timer
* Revert to setInterval and always drawing
* Restore yielding in glide
* 30TPS compatibility mode
* 5-call count recursion limit
* Removing dead primitive code
* To simplify, access runtime.threads inline in `stepThreads`.
* Warp mode/timer fixes; recursive check fixes; clean-up
* Add basic single-stepping
* Add single-stepping speed slider
* Allow yielding threads to run in single-stepping
* Restore inactive threads tracking for block glows
* Add clock pausing during pause mode
* Documentation and clean-up throughout
* Don't look for block glows in `thread.topBlock`.
* Add null check for block glows; rename `_updateScriptGlows` to reflect block glowing
* Use the current executed block for glow, instead of stack
* Add more comments to `stepToProcedure`, and re-arrange to match 2.0
* Tweak to Blocks.prototype.getTopLevelScript
* Revert previous
* Fix threads array to be resilient to changes during `stepThreads`
* Restore inactive threads filtering
* Fix typo in "procedure"
* !! instead of == true
2016-10-17 23:23:16 -04:00
Tim Mickel
060d1ab2a5
Updated blocks for new renderer features ( #257 )
...
* Add "touching" block, layers blocks
* Keep in fence, if on edge bounce, fix to touching edge
* Fix degtoRad in "if on edge, bounce"
* Fixes from review
2016-10-17 23:17:55 -04:00
Eric Rosenbaum
6d9f889aa7
fixed sound loading
2016-10-17 17:16:55 -04:00
Eric Rosenbaum
ba84b6e34b
move audioengine to its own module
2016-10-17 17:16:13 -04:00
Eric Rosenbaum
7bd0142deb
Merge branch 'develop' of https://github.com/LLK/scratch-vm into sound
...
# Conflicts:
# playground/index.html
2016-10-17 17:13:43 -04:00
Tim Mickel
352c6516d3
Fix parent setting in sb2 importer ( #283 )
2016-10-17 16:44:33 -04:00
Cosmic Web Services
454eb904a3
Add days since 2000 block ( #272 )
...
* Add days since 2000 block
* Empty line addition
* Add semicolin
* Empty line addition
* Tabed
* Remove extra line
* Make it exactly like scratch 2 was
* Fixed spacing
2016-10-17 13:57:25 -04:00
Ray Schamp
2904152318
Merge pull request #282 from rschamp/feature/vm.clear
...
Add VM.clear method
2016-10-17 13:56:37 -04:00
Ray Schamp
5615583fb2
Lint
2016-10-17 13:54:27 -04:00
Ray Schamp
bd95c1461d
Add VM.clear method
...
Use it before loading projects so targets don't accumulate when multiple projects are loaded on the same instance.
Move check to see if the clone is the original clone onto the block implementation so all clones can be removed.
Fixes #274
2016-10-17 13:43:38 -04:00
Andrew Sliwinski
ace9a96fc2
Fix degToRad function definition. Resolves GH-229
2016-10-17 11:52:02 -04:00
Tim Mickel
3bfd755e60
Complete implementation of stop block ( #271 )
...
* "Other scripts in stage" sb2
* Complete implementation of "stop" block
2016-10-13 23:00:46 -04:00
Tim Mickel
c45b420115
Fix check for existing hat threads ( #269 )
2016-10-13 22:14:19 -04:00
Tim Mickel
1e86d48a31
Clicking blocks in the toolbox ( #267 )
2016-10-13 17:15:49 -04:00
Tim Mickel
8c654bbe60
Procedure blocks ( #264 )
2016-10-13 13:11:26 -04:00
Eric Rosenbaum
31d680a229
lint
2016-10-13 11:54:00 -04:00
Eric Rosenbaum
d808a83f79
lint
2016-10-13 11:48:31 -04:00
Eric Rosenbaum
e084a76485
lint
2016-10-13 11:35:52 -04:00
dekrain
91037a261e
Fix relative localization for assets
2016-10-13 16:19:42 +02:00
Eric Rosenbaum
80764f053d
lint
2016-10-12 17:22:50 -04:00
dekrain
49d6bd3b67
Fix new project creation ( #256 )
...
* Fix new project creation
* Fix new project creation
* const -> var
2016-10-12 13:56:31 -04:00
Eric Rosenbaum
7b179546ed
new setup for use with scratch-gui
2016-10-12 13:17:51 -04:00
Tim Mickel
a7522c7734
Fix data_listcontents block name ( #254 )
2016-10-11 17:12:19 -04:00
Eric Rosenbaum
0024b209bd
Merge remote-tracking branch 'LLK/develop' into develop
2016-10-11 13:47:24 -04:00
Eric Rosenbaum
ed650ba487
Merge remote-tracking branch 'LLK/develop' into develop
2016-10-05 17:16:13 -04:00
Liam
30535d8e6e
Implement "distance to" block ( #239 )
...
* Implement "distance-to" block
* distance-to in stage should always be 10000
2016-10-04 21:26:59 -04:00
TheBrokenRail
9b07889b3f
Fix Stage PNG ( #241 )
...
* Fix Stage PNG
* Add New Stage PNG
* Remove Old Stage PNG
* Delete backdrop1.png
* Rename New Stage PNG
* Delete stage.png
* Fix Stage Resolution
2016-10-04 20:38:11 -04:00
Liam
5871672551
Implement "go to" block ( #238 )
...
* Implement "go to" block
* Add a missing semicolon
My text editor doesn't automatically insert them and I'm not used to using
semicolons so much. :(
* Implement go-to-random
* Clean up the go-to-random code a bit
* Add rounding to _random_ picks
2016-10-04 18:19:52 -04:00
Liam
886bcbe3c1
Implement the point-towards block ( #235 )
...
* Implement the point-towards block
* Pointing towards a nonexistent sprite should do nothing, not throw an error
2016-10-04 15:20:53 -04:00
Eric Rosenbaum
0db0783fe8
working on sound font player
2016-10-04 14:19:04 -04:00
Tim Mickel
0a66c62f6a
Mutations in block representation; an unfeatured procedure call ( #212 )
...
* Add scratch3_procedures and no-op for defnoreturn
* Add mutation adapter to parse mutations in CREATE/CHANGE events
* Add mutation-to-XML
* Update spec map for Blockly procedure names
* Placeholder for procedure special cases
* Basic stepping to procedures
* Remove extra case
* Validation for changeBlock
2016-10-03 17:43:24 -04:00
Tim Mickel
5728d648b1
Ensure clone.effects is defined on each instance ( #225 )
...
* Ensure clone.effects is defined on each instance
* Add regression test for GH-224
2016-10-03 10:16:43 -04:00
Eric Rosenbaum
e1df4b3aaf
fixed dictionary of loaded sounds
2016-10-01 17:27:28 -04:00
Tim Mickel
2226fda19e
Implement rotation style ( #223 )
2016-09-28 17:09:04 -04:00
Tim Mickel
d10ba11c8f
Round costume values ( #221 )
2016-09-28 16:43:12 -04:00
Tim Mickel
a585a08a93
Remove extra calls to updateAllDrawableProperties
( #222 )
2016-09-28 16:43:04 -04:00
Eric Rosenbaum
6988cfc0d3
starting to load sounds from project files
2016-09-28 16:42:25 -04:00
Eric Rosenbaum
7c91565408
Merge branch 'develop' of https://github.com/LLK/scratch-vm into develop
2016-09-27 18:12:20 -04:00
Eric Rosenbaum
39c8e76bdf
adding sound blocks
2016-09-27 17:09:53 -04:00
Tim Mickel
2357d63243
Drop useRound
option from Cast.toListIndex
( #213 )
...
* Drop `useRound` option from `Cast.toListIndex`
* Param fix
2016-09-26 12:01:21 -04:00
Tim Mickel
2d736f2b87
"Wait until" implementation ( #210 )
2016-09-22 17:00:38 -04:00
Tim Mickel
a118d50056
Variables and lists ( #187 )
...
* Import lists and variables from SB2
* Switch to Variable and List objects
* Add Clone.lookupOrCreateVariable, Clone.getVariable, Clone.setVariable
* Add (get, set, change) variable blocks.
* Copy variables and lists on clone instantiation
* Move variable options closer to blocks
* Add list primitives
* Move variable and lists storage to `Target` instead of `Clone`
* Move _computeIndex to a Cast function
* Rename `getList` -> `getListAsString`
* Renames renames
* Remove extra check in Cast.isNaN
2016-09-21 16:38:33 -04:00
Tim Mickel
a687184c3c
Fix and improve playground threads display ( #198 )
2016-09-21 16:31:23 -04:00
Tim Mickel
aa5e8d2648
Clear graphic effects on green flag ( #199 )
2016-09-21 16:31:07 -04:00
Ray Schamp
4e547556a8
Use attachRenderer rather than the constructor
...
This makes the renderer optional as well as making the order of instantiation flexible.
2016-09-20 15:09:21 -04:00
Ray Schamp
fa10a2279a
Only expose VirtualMachine to window for bundles
2016-09-20 10:29:47 -04:00
Ray Schamp
499ba5235c
Scope renderer to instance
...
This allows usage without global scope to attach a renderer to the VM. It also provides the ability to have multiple VMs/renderers to be used at once.
2016-09-20 02:52:33 -04:00
Tim Mickel
c02ee88d02
Add some more info/links to sb2specmap ( #197 )
2016-09-19 15:24:46 -04:00
Tim Mickel
13f287e871
Fix up property imports from SB2 ( #196 )
...
* Update target's drawable properties after SB2 import
* Always use `hasOwnProperty` parsing SB2 JSON
2016-09-19 14:40:01 -04:00
Tim Mickel
9744bcbb70
Clones ( #150 )
...
* Provide property to Clone to distinguish "original" clones
* Provide method to clone a clone's properties
* Don't report clones in the UI target list
* Add target info to Thread
* Allow hats to skip clones (for green flag)
* Green flag skips clones
* Implement "create clone" and hat
* Pass the runtime to sprites and clones (for start hats)
* Clone disposal; trigger hats after drawable initializes.
* Separate stop threads for target; fix handling of stop button
* Remove extraneous `skipClones` property
* Add global clone limit
* Don't allow a non-clone to delete itself.
* Rename `cloneClone` -> `makeClone`
* Variable updates in runtime.js
* Synchronous drawable initialization (until we put it back to promises)
2016-09-15 19:37:12 -04:00
Tim Mickel
542899949e
Update for RenderWebGLLocal -> RenderWebGL ( #181 )
...
* Update for RenderWebGLLocal -> RenderWebGL
* Move button under title
2016-09-15 19:02:03 -04:00
Tim Mickel
6b3f0d3d8a
Playground update; update SB2 spec map for list, _ of _ blocks ( #184 )
...
* Playground update
* Update SB2 spec map for list, _ of _ blocks
2016-09-15 17:10:32 -04:00
Eric Rosenbaum
8872f663a4
Merge remote-tracking branch 'LLK/develop' into develop
...
# Conflicts:
# playground/index.html
# playground/playground.js
# src/engine/execute.js
# src/engine/runtime.js
# src/index.js
# src/sprites/clone.js
2016-09-15 16:58:41 -04:00
Eric Rosenbaum
47c0f18e85
adding more sound blocks
2016-09-15 16:51:24 -04:00
Eric Rosenbaum
aa812aa6b7
worker less audio engine, can meow
2016-09-15 15:59:29 -04:00
Tim Mickel
8987330853
Cleanly handle deleting running scripts ( #162 )
...
* Cleanly handle deleting running scripts
* Turn off glow request on retire thread; add null check
2016-09-15 13:51:40 -04:00
Tim Mickel
1ebee14eb0
Update sb2specmap.js for droppable broadcast ( #182 )
2016-09-14 16:43:21 -04:00
Eric Rosenbaum
e19c1942c3
Merge remote-tracking branch 'LLK/develop' into develop
...
# Conflicts:
# src/index.js
# src/sprites/clone.js
# src/worker.js
2016-09-13 18:09:43 -04:00
Tim Mickel
dec5d054c8
Better handling of float values ( fix #172 ) ( #176 )
...
* Better handling of float values (fix #172 )
* Stricter equality in Cast.isInt
2016-09-13 17:53:17 -04:00
Eric Rosenbaum
d9a703b4ad
play sound and play note block
2016-09-13 17:52:54 -04:00
Tim Mickel
6b08b95b97
Escape field values for XML-unsafe characters ( #177 )
...
* Escape field values for XML-unsafe characters
* String equality check ===
2016-09-13 17:51:17 -04:00
Tim Mickel
08b40b4d1d
Drop worker support ( #175 )
...
* Take out worker code
* Fix Blockly event listening (minus worker)
* Recompile Sept. 13
2016-09-13 17:49:45 -04:00
Tim Mickel
833c5ed313
When clicked hats ( #156 )
2016-09-12 17:16:10 -04:00
Tim Mickel
c357a62005
Key repeats, with OS delay ( #168 )
2016-09-12 13:52:44 -04:00
Tim Mickel
91cdec1547
Implement glide ( #154 )
2016-09-12 13:26:10 -04:00
Tim Mickel
bbea1af5a3
Better shadow evaluation ( #160 )
...
* Better shadow evaluation
* Audit and improve casting for all primitives
* Force repeat times to int
* Remove colorPicker shadow menu
2016-09-12 13:14:16 -04:00
Tim Mickel
ebbfe881db
Augment Timer with documentation and self.performance.now
( #163 )
...
* Augment Timer with documentation and `self.performance.now`
* Add undefined check for `self`.
2016-09-12 13:09:01 -04:00
Tim Mickel
79346c0925
Fixes for #138 ( #166 )
...
* Markup/CSS adjustments
* Move assets to folder
* Strip extra font-family
* More robust handling of project-load fail state
* Move empty project creation to its own function
* Move green flag/stop back out of the tab
* Restore default id
2016-09-12 12:03:24 -04:00
TheBrokenRail
40b530fa7e
Offline Support [READY TO MERGE?] [ALONG WITH THE SCRATCH-RENDER PR] ( #138 )
...
* Remove Fallback Project
* Added A Newline and Removed Fallback Project
* Made The SB2 Project Import Field Fit In More With All Other Textboxes
* Better Description Of SB2 Import Field
* Oops!
* The XML Import Area Doses Not Need To Be Resizable!
* That Didn't Work As Planned
* Now it won't rezize
* Added SB3New
* Add Code For SB3New
* Better 404
* Indentation
* NodeJS complains about quotes
* Moved And Renamed SB3New
* Renamed Refrences
* Prefix With ./
* Typo
* Newline Fix
* Scratch Cat By Default!
* Single Quotes And Max Legth Fixed
* Better Comment Above loadProject
* Move newProject to index.js
* Added Dependincies to index.js
* Deleted newProject.js
* Removed Unneeeded Semicolon
* @param {?string}
* Added SVG For Scxratch Cat
* Now Uses Scratch Cat Offline (REQUIRES PULL REQUEST MADE TO SCRATCH-RENDER TO BE MERGED OR IT WILL NOT WORK)
* Added Stage PNG
* Added Stage Creation
* Fix Sizing Issues
* Import And Compatibility With Less Hacky Image Import (Scratch-Render)
* Import And Compatibility With Less Hacky Image Import (Scratch-Render)
* Fixed Line Length
* Added Navigation Bar
* Added CSS For Drop Down Menus
* Nicer Scale
* Nicer Dropdowns
* Remobved Dropdown CSS (It Didn't Work)
* Add Scratch Player Bar CSS
* Add Scratch Player Bar HTML
2016-09-12 11:05:16 -04:00
Tim Mickel
d93eeed05d
More color utilities, touching color, color touching color ( #155 )
...
* Fill out color utilities
* Amend Color.decimalToHex name
* Add `Cast.toScaledRgbColor`
* Add touching color, color touching color blocks
* Fix scale of Cast.toRgbColor
* Fix format of colors to use renderer-style lists
* Update `Color.decimalToRgb`
* Lint self
2016-09-12 10:58:50 -04:00
Tim Mickel
5df0acc895
Better glows ( #152 )
...
* Strip out old script glowing in thread management
* Add new tracking mechanism for glowing scripts
* Track parents and use them to determine script glows
* Use top-block for a thread if there's nothing on the stack
* Remove `console.log`
2016-09-08 09:40:53 -04:00
Tim Mickel
797f844de3
Stage, costumes, backdrops ( #149 )
...
* Add `Clone.prototype.getCostumeIndexByName`, keep in range
* Add basic costume primitives from Scratch 2.0
* Add costume getter block
* Add properties and methods for distinguishing stage and sprites-vs-clones
* Add backdrop-related looks blocks
* Fix up "switch to backdrop" to be working
* Costume/backdrop reporters are 1-indexed
* Fire "when backdrop switched" hats
* Cut cloning helpers for a separate PR
* Disable many blocks on the stage
* Refactor into _setCostumeOrBackdrop; implement switch backdrop and wait
* Fire hats even when backdrop unchanged
2016-09-08 09:40:27 -04:00
Tim Mickel
14feb64005
Create a new input if one doesn't exist ( #148 )
...
* Create a new input if one doesn't exist
* Add regression tests for move-into-empty and obscuring shadows via move
2016-09-08 09:40:01 -04:00
Eric Rosenbaum
7709a4095e
first working audio engine using audioworker
2016-09-07 16:55:38 -04:00
Tim Mickel
f7e339f7c2
Remove uppercase from keyboard hat activators
2016-09-07 16:00:22 -04:00
Tim Mickel
3fcd70a802
KEY_OPTIONS -> KEY_OPTION
2016-09-07 15:57:53 -04:00
Eric Rosenbaum
6d21890338
Merge remote-tracking branch 'LLK/develop' into develop
2016-09-06 12:55:19 -04:00
Eric Rosenbaum
8bf2949eea
play note block uses scale degree input
2016-09-06 12:54:58 -04:00
Tim Mickel
3dbfc3fdb6
Tweaks from SB2 importer audit ( #137 )
...
* Fix SB2 variable imports!
* Fix expectedArg field types
* motion_pointindirection uses math_angle
* Fix "think for secs" expected input
* Add handling for empty input case (empty if-else, for example)
* Fix opcodes for if_else, repeat_until, set tempo
* Specialized number fields for SB2 import
* Convert color picker numbers to hex in SB2 import
* KEY_OPTIONS -> KEY_OPTION
* Backdrop blocks get BACKDROP
* Update toolbox XML to match naming changes
* Merge in math_angle case
* Move color converter to its own utility
* Fix merge conflicts
* Add negative color check.
* Fix keyoptions naming
* Pen JSON tweak post-scratch-blocks update
2016-09-06 11:46:10 -04:00
Tim Mickel
9a8b68643a
Shadow improvements ( #135 )
...
* Always add `next` to block representation
* Add `shadow` property to inputs, to maintain obscured shadows
* Create obscured shadows in SB2 import
* Add XML import of obscured shadows
* Alias SB2 shadow inputs to block inputs
* Add shadow to inputs on "delete inputs" test
* Add a small test to ensure obscured shadows are preserved
* Add more obscured shadow tests
2016-09-06 10:55:52 -04:00
dekrain
7caf8e588a
More hats ( #143 )
...
* Key pressed hat
* Tabs -> Spaces
* Oops
* Edge activate
* Fix hat
Phew...
* I forgot to change it also here
:/ :/ :\
* Minor fixes for TravisCi
* Minor docs
* Line length
2016-09-03 16:33:45 -04:00
Tim Mickel
e831866789
Keyboard events, "key is down" reporter ( #117 )
...
* Keyboard events, "key is down" reporter
* Update comment about inputs
* Simplify/generalize keyMap into a keys-pressed list
* Cast values passed to scratchKeyToKeyCode appropriately.
* Cut unspaced key values
* Fix lint from merge commit
2016-09-02 11:23:09 -04:00
Tim Mickel
86f136dd10
Merge pull request #115 from tmickel/feature/2.0-loader
...
Start of a 2.0 project loader
2016-09-02 11:16:35 -04:00
Tim Mickel
77d0376b15
Merge pull request #107 from tmickel/feature/hats
...
Hat blocks
2016-09-02 11:12:07 -04:00
Tim Mickel
ae89cfbb6b
Comment nit
2016-09-02 09:47:27 -04:00
liam4
1437a358e1
getDay is zero-based where Sunday = 0; Sunday should be 1
2016-09-02 10:20:54 -03:00
liam4
602cb47a1e
Remove unused util variable
2016-09-02 01:01:17 -03:00
liam4
f981e8747f
Implement 'current' block
2016-09-02 00:48:14 -03:00
Tim Mickel
c70e9759a9
Add initial SB2 importer and spec map
2016-08-31 13:56:05 -04:00
Tim Mickel
3e749fb9f1
Add loadProject, setEditingTarget, and UI emits
2016-08-31 12:28:09 -04:00
Tim Mickel
23d9999a9f
Add runtime.getTargetById
helper
2016-08-31 12:18:24 -04:00
Tim Mickel
d4a43639f3
Add editingTarget
and map block events to that target
2016-08-31 12:08:54 -04:00
Tim Mickel
08f48c5b30
Always start runtime with an empty target list.
2016-08-31 12:03:41 -04:00
Tim Mickel
ba0cc0dcfc
Pass along newCoordinate of Blockly MOVE events
2016-08-31 11:50:29 -04:00
Tim Mickel
ad82a5cb74
Add naming mechanism for targets/clones
2016-08-31 11:50:10 -04:00
Tim Mickel
2c6722b958
Add unique ID for Targets
2016-08-31 11:39:57 -04:00
Tim Mickel
b1a3026ea1
Blockly XML encoding for Blocks
object
...
Provide two functions, `toXML` and `blockToXML`, which can be used to generate workspaces based on the VM representation of the blocks.
2016-08-31 11:38:45 -04:00
Tim Mickel
c58bda1839
Record coordinate changes in block representation
2016-08-31 11:34:29 -04:00
Tim Mickel
05a5369d7b
Switch Blockly listener to normal function (not closure/generated)
2016-08-31 11:34:17 -04:00
Tim Mickel
aa70c1bc3b
Add shadow, x, y properties to block adapter
2016-08-31 11:32:59 -04:00
Tim Mickel
8339e2769f
Clean up and add documentation to sprite/clone
2016-08-31 11:30:09 -04:00
Tim Mickel
2da121d019
Add UID utility
2016-08-31 11:21:42 -04:00
Tim Mickel
be06078df1
Update sprite and clones to have basic costume support
2016-08-31 11:21:32 -04:00
Tim Mickel
bdc95cffc0
Rename trigger->activate/start
2016-08-29 10:26:26 -04:00
Tim Mickel
1098a06985
Various renames for hat opcodes/top blocks, allScriptsDo
2016-08-29 10:18:49 -04:00
Tim Mickel
3ccfdf3df0
Use hasOwnProperty
in getIsHat
/getIsEdgeTriggeredHat
2016-08-29 10:03:21 -04:00
Tim Mickel
40c90bbcc7
Add isActiveThread
and simplify broadcast-and-wait accordingly
2016-08-29 10:01:31 -04:00
Tim Mickel
64b82f4dc2
Switch back j->i
2016-08-29 09:52:34 -04:00
Tim Mickel
29887e24c9
Simplify execute
hat check.
...
In case a reporter has side-effects, we'd probably like to run hat predicates even if there is no next block.
2016-08-24 11:04:23 -04:00
Tim Mickel
4f81033762
Remove extra Thread require
2016-08-23 18:46:54 -04:00
Tim Mickel
4f2cccf279
Fix issue when broadcasting in a when-broadcast
2016-08-23 18:37:03 -04:00
Tim Mickel
fe2ba2a536
Implementation of timer > _, broadcast, broadcast and wait
2016-08-23 18:14:05 -04:00
Tim Mickel
b4cf64009f
General-purpose hat implementation
2016-08-23 18:12:32 -04:00
Tim Mickel
39fdbaf983
Add atStackTop helper to Thread
2016-08-23 18:12:19 -04:00
Tim Mickel
43f3b59f7c
Add retireThread
to seqeuencer
2016-08-23 15:53:34 -04:00
Tim Mickel
94e389c8fb
Refactor script glowing into its own runtime function
2016-08-23 15:47:21 -04:00
Eric Rosenbaum
5e268d57d3
scale to midi note reporter
2016-08-17 16:45:01 -04:00
Eric Rosenbaum
f8e460f1b4
fixing quantize unit again
2016-08-17 12:45:06 -04:00
Eric Rosenbaum
911a8fa02e
fixing quantize unit (oops)
2016-08-17 11:45:58 -04:00
Eric Rosenbaum
fee8f61079
removing attempted quantization
2016-08-17 11:38:01 -04:00
Eric Rosenbaum
d121a4c6fa
Merge remote-tracking branch 'LLK/develop' into develop
...
# Conflicts:
# src/engine/runtime.js
2016-08-16 16:41:36 -04:00
Eric Rosenbaum
d5e46535e8
playing with quantization
2016-08-16 16:32:35 -04:00
Eric Rosenbaum
27184762bd
fixed panner
2016-08-16 12:04:24 -04:00
Tim Mickel
aebcfde492
Add VM "I/O devices", clock, mouse as demo
2016-08-15 21:37:36 -04:00
Tim Mickel
349cb14c5a
Removing extra cast in join implementation
2016-08-11 19:00:11 -04:00
Tim Mickel
bfe007e29f
Add casting utilities and apply them to operator blocks
2016-08-11 18:47:55 -04:00
Tim Mickel
07e965261d
Implementation of remaining operators
2016-08-11 18:47:55 -04:00
Eric Rosenbaum
8c40e9c383
play sound, play drum and audio effects experiments
2016-08-11 16:47:01 -04:00
Tim Mickel
4faaf1b685
Rename stacks
to scripts
...
Further pushing toward removing ambiguity of what "stack" means in the codebase.
2016-08-11 11:11:27 -04:00
Tim Mickel
7780b25c46
Project wide rename substack -> branch
2016-08-10 11:43:49 -04:00
Eric Rosenbaum
951d7771f3
tonejs synth for play note blocks
2016-08-09 15:40:50 -04:00
Andrew Sliwinski
32c691d404
Merge branch 'develop' of github.com:LLK/scratch-vm into bugfix/2
2016-08-09 09:26:31 -04:00
Tim Mickel
2c031d87f6
Make renderer/self nullable in the Clone
...
Fixes a test issue where renderer is not necessarily defined.
2016-08-08 18:29:44 -04:00
Andrew Sliwinski
32b1d4ec61
Remove memoizee dependency and usage in adapter. Resolves GH-2
2016-08-08 17:07:50 -04:00
Tim Mickel
67c3ceff86
Update clone's scale to match renderer update
2016-08-08 16:47:52 -04:00
Tim Mickel
a6ad34f002
Add primitive for math_angle
, fixing point in direction
2016-08-08 16:44:48 -04:00
Tim Mickel
0b826c0dc9
Remove unused Promise in scratch3_operators
2016-08-08 15:44:55 -04:00
Tim Mickel
c47a061edb
Updates for newly released scratch-render repo
2016-08-08 15:43:52 -04:00
Tim Mickel
c650de8520
Real version of Clone.prototype.setVisible
2016-07-13 16:52:46 -04:00
Tim Mickel
1f19d7a209
Only visually report when an actual value was returned
2016-07-07 19:44:26 -04:00
Tim Mickel
9c6dca8131
Add visual reporting of top-level reporter execution
2016-07-07 19:42:38 -04:00
Tim Mickel
d4353458ff
Don't quit loop when a thread is yielding
2016-07-06 14:16:44 -04:00
Tim Mickel
30dc285a37
Add implementations for math_positive_number and math_whole_number
2016-07-06 14:13:03 -04:00
Tim Mickel
7c24bdc612
More documentation in sprite, clone
2016-07-06 14:09:06 -04:00
Tim Mickel
2e01caa8a6
Add documentation for math-util functions.
2016-07-06 14:04:36 -04:00
Tim Mickel
798368b6c5
Add documentation in src/sprites/clone.js
2016-07-06 13:57:58 -04:00
Tim Mickel
460760bd06
Stub "say" and "think" blocks with console.log
2016-07-06 13:47:32 -04:00
Tim Mickel
0ae0ea5f22
Run threads for 60fps
2016-07-01 16:30:33 -04:00
Tim Mickel
ce941c6fd8
Add show/hide blocks using ghost effect as backend
2016-07-01 12:56:59 -04:00
Tim Mickel
6891a3a5dd
Add direction reporter
2016-07-01 12:56:45 -04:00
Tim Mickel
660029010d
Feed in requestAnimationFrame events to VM
...
Not sure exactly how to use these yet, but it seems helpful to have them in there.
2016-07-01 11:52:43 -04:00
Tim Mickel
bb68fcab25
Additional fix for repeat's executedInFrame
2016-07-01 11:41:52 -04:00
Tim Mickel
57217f0044
Rename executed
in repeat, ifElse
2016-07-01 11:29:32 -04:00
Tim Mickel
ad30fa8059
Temporarily remove per-block glow
2016-07-01 11:27:01 -04:00
Tim Mickel
e4f6c9e90c
"Repeat until" implementation
2016-07-01 11:25:26 -04:00
Tim Mickel
dda4fc8332
Yield frame on an empty substack
2016-07-01 11:24:06 -04:00
Tim Mickel
39c71b559d
Update repeat implementation to execute once per frame
2016-07-01 10:50:31 -04:00
Tim Mickel
de6ba08866
Add single-frame yield mode
2016-07-01 10:44:43 -04:00
Tim Mickel
5876681bc7
Version of random that truncates ints
2016-07-01 10:28:47 -04:00
Tim Mickel
bb5acd1ef4
Fix merge issue in execute.js
2016-06-30 19:01:19 -04:00
Tim Mickel
1eaed6fff3
Implement graphic effects and size blocks
2016-06-30 18:59:47 -04:00
Tim Mickel
7db2981ddc
Add additional motion block implementations
2016-06-30 18:59:47 -04:00
Tim Mickel
42f0f66acd
Implement move steps, turn right, turn left, point in direction
2016-06-30 18:59:47 -04:00
Tim Mickel
727d2c0d23
Clamp clone direction like Scratch 2.0
2016-06-30 18:59:47 -04:00
Tim Mickel
7db38e8422
Implement a few math utilities
2016-06-30 18:59:47 -04:00
Tim Mickel
19da0b0032
Add renderer demo using scratch-render-webgl
2016-06-30 18:59:47 -04:00
Tim Mickel
809528abdc
Straw-man implementation of targets/sprites/clones
2016-06-30 18:59:17 -04:00
Tim Mickel
1c24770f8c
Remove debug calls from execute
2016-06-30 18:56:31 -04:00
Tim Mickel
ec4567aa8a
Simplify logic for Thread status
2016-06-30 18:56:31 -04:00
Tim Mickel
ab6e0d3839
Remove YieldTimers, unused WeDo blocks
2016-06-30 18:56:31 -04:00
Tim Mickel
6daee9a70e
Remove VM-locking yield mode per discussion
2016-06-30 18:56:23 -04:00
Tim Mickel
9a7ab57f6f
Always yield thread when a promise is returned.
2016-06-30 18:56:23 -04:00
Tim Mickel
9881ee76b9
Deal with promise rejection also.
2016-06-30 18:56:23 -04:00
Tim Mickel
57057bfffc
Remove unused require to fix build
2016-06-30 18:56:23 -04:00
Tim Mickel
d72cc55c11
Example that uses promises instead of util.report
2016-06-30 18:56:23 -04:00
Tim Mickel
8f6a88c095
Ensure predicates always return booleans
2016-06-30 18:56:23 -04:00
Tim Mickel
09b9c506a9
Check for blocking case in stepToReporter
2016-06-30 18:56:23 -04:00
Tim Mickel
405ad1044e
getBlockingThread_ returns null when none available.
2016-06-30 18:56:23 -04:00
Tim Mickel
d44b806b4f
Add blocking yield mode
2016-06-30 18:56:23 -04:00
Tim Mickel
c63747e61b
Move stepping logic for reporters to sequencer
2016-06-30 18:56:23 -04:00
Tim Mickel
f802faa461
operator_not in primitive table
2016-06-30 18:56:23 -04:00
Tim Mickel
f210c12d4d
Add more operators for testing
2016-06-30 18:56:23 -04:00
Tim Mickel
e56c6e6980
Rename primitiveReturnValue
-> primitiveReportedValue
2016-06-30 18:56:23 -04:00
Tim Mickel
e83cfa6049
Add comment and clear currentStackFrame.reported
2016-06-30 18:56:23 -04:00
Tim Mickel
9d9749681b
Comment and else
for reporter finishes right away
2016-06-30 18:56:23 -04:00
Tim Mickel
b21c9edf04
Commenting improvements
2016-06-30 18:56:23 -04:00
Tim Mickel
173f0615d3
Refactor: always push reports to the stack frame
2016-06-30 18:56:23 -04:00
Tim Mickel
6181bcd5cb
Refactor Thread.peekParentStackFrame
2016-06-30 18:56:23 -04:00
Tim Mickel
bed3e28c02
Simplifications of execute
ordering
...
and always cache returned reporter values in currentStackFrame.reported.
2016-06-30 18:56:23 -04:00
Tim Mickel
d15c93af05
Keep "waiting reporter name" on the stack frame.
...
Also add highlighting for inputs.
2016-06-30 18:56:23 -04:00
Tim Mickel
7ef3807b18
Example of a yielding reporter (returns random number after 1s)
2016-06-30 18:56:23 -04:00
Tim Mickel
97f7571c6f
Prototype implementation of yielding reporters
2016-06-30 18:56:23 -04:00
Tim Mickel
190208b620
Clean up yield-timers: support multiple, move logic to Threads.
2016-06-30 18:56:23 -04:00
Tim Mickel
b97974e2ac
Implement WebWorker interface
2016-06-21 15:30:27 -04:00
Tim Mickel
783a3688aa
Update index.js to support worker environment
2016-06-21 14:48:54 -04:00
Tim Mickel
652cc8a31c
Fix references to window
2016-06-21 14:29:40 -04:00
Tim Mickel
28432b6f01
Merge pull request #81 from tmickel/feature/update-playground-june-14
...
Update playground and block implementations to match scratch-blocks
2016-06-17 11:55:44 -04:00
Tim Mickel
695d0bd7fd
Merge pull request #80 from tmickel/bugfix/empty-fields
...
Handling empty fields
2016-06-17 11:46:36 -04:00
Tim Mickel
7427fe4ff3
Add fix for adapter
to deal with empty fields
2016-06-14 18:14:04 -04:00
Tim Mickel
a1be1d6566
Update playground and block implementations to match scratch-blocks
2016-06-14 18:08:41 -04:00
Tim Mickel
056fb76492
Remove try/catch in execution - fix #75
2016-06-13 11:23:39 -04:00
Tim Mickel
a58fa43572
Add reset to numYieldingThreads
and comment about YieldTimers
2016-06-10 13:38:35 -04:00
Tim Mickel
e9eb7c6e57
Remove leftover console.groupEnd
s in execute
2016-06-10 13:34:07 -04:00
Tim Mickel
0bf9ab59a1
Add implementation for ifElse
2016-06-10 10:40:15 -04:00
Tim Mickel
ca68c55d57
Implement logic_equals, if blocks
2016-06-10 10:36:05 -04:00
Tim Mickel
506e9c32be
Don't attempt to glow a block that isn't known in the VM
2016-06-10 08:48:39 -04:00
Tim Mickel
7cc0c00da6
Correctly deal with empty substacks.
...
The stack needs to be popped in this situation.
2016-06-10 08:47:54 -04:00
Tim Mickel
559a2a0fab
Remove redundant piece of code
...
The stack is pushed in after the thread finishes (`proceedThread`).
2016-06-10 08:41:44 -04:00
Tim Mickel
526a260101
Simplify execution by removing nextBlock
...
Everything is managed by the stack, including what the execute() function does.
2016-06-09 17:08:30 -04:00
Tim Mickel
2cd6bf93bb
Fix argument for repeat block
2016-06-09 17:05:08 -04:00
Tim Mickel
d52938c255
Bind thread.yield passed to primitive to actual thread
2016-06-09 15:06:24 -04:00
Tim Mickel
27064ce163
Fix implementation of "wait" block
2016-06-09 15:06:11 -04:00
Tim Mickel
88402ee68c
Move popStack to inside execute
2016-06-09 14:45:54 -04:00
Tim Mickel
b0441e2ef5
Implement stub for number and add blocks
2016-06-09 14:29:07 -04:00
Tim Mickel
a987d9d9cc
Only include field value in execute.argValues
2016-06-09 14:27:11 -04:00
Tim Mickel
bcd058bdc4
Disable unimplemented broadcast block
2016-06-09 14:23:45 -04:00
Tim Mickel
c21700380f
Pull sequencer-related callbacks out of execute
2016-06-09 14:23:34 -04:00
Tim Mickel
9df470255e
Add helpers to thread object
2016-06-09 14:22:58 -04:00
Tim Mickel
1d16a97115
Recursive evaluation for block arguments
2016-06-09 13:28:50 -04:00
Tim Mickel
c4517a451b
Add isInput
execution property to avoid proceeding the thread
2016-06-09 13:28:06 -04:00
Tim Mickel
6e5ebcf6df
Split execution into separate function and file
2016-06-09 13:27:30 -04:00
Tim Mickel
3898fe1c45
Instrument blocks.js with getters for fields and inputs
2016-06-09 13:26:07 -04:00
Tim Mickel
bd7f3245a2
Move scratch3 blocks into separate packages.
2016-06-09 11:45:58 -04:00
Tim Mickel
b9bd037963
Fixing eslint JSDoc from merge
2016-06-08 17:25:26 -04:00
Tim Mickel
42d03db28b
Merge branch 'develop' into feature/eslint-jsdoc
...
# Conflicts:
# .eslintrc
# src/index.js
2016-06-08 17:23:41 -04:00
Tim Mickel
d17ffbb99b
Merge pull request #60 from tmickel/feature/vm-playground-execution
...
Instrument VM and playground for better execution debugging
2016-06-08 17:15:36 -04:00
Tim Mickel
1f1a4941f3
Add .eslintrc rule to check JSDoc syntax
...
And fix the broken syntax rules
2016-06-08 16:57:08 -04:00
Tim Mickel
7a42e9ae68
Move blockListener to blocks.js; combine flyout listener
2016-06-08 13:44:09 -04:00
Tim Mickel
8fa29bc6de
Spacing fix in blocks.js
2016-06-08 13:27:01 -04:00
Tim Mickel
c1e30cf2ee
Add sequencer-level debug console logs
2016-06-07 21:05:32 -04:00
Tim Mickel
5767e05d56
Add block-by-block feedback to the VM playground
2016-06-07 20:59:34 -04:00
Tim Mickel
2be27cbc7d
Merge pull request #57 from tmickel/feature/full-tree
...
Update for VM block management
2016-06-07 13:27:41 -04:00
Tim Mickel
2339c5e710
Additional tests for invalid adapter
inputs
2016-06-07 12:01:47 -04:00
Tim Mickel
3b4a00ce46
Add check for null substackNum
, fix numbering
2016-06-07 11:32:29 -04:00
Tim Mickel
f158af18b1
Case problem with blocks.js in index.js
2016-06-06 16:19:57 -04:00
Tim Mickel
fd95d3045d
Fix property check of topLevel
in createBlock
2016-06-06 15:58:54 -04:00
Tim Mickel
f63e261892
Remove breaking check for blockId
2016-06-06 15:58:40 -04:00
Tim Mickel
0efe7e2b27
Fix block events for flyout blocks
2016-06-06 15:44:13 -04:00
Tim Mickel
dbb31462ad
Extend getSubstack to support multiple substacks
2016-06-06 15:31:14 -04:00
Tim Mickel
9be33089a8
Refactor block management into a separate module.
2016-06-06 15:29:34 -04:00
Tim Mickel
25c3a38c16
Allow top-level creation of shadow blocks in adapter
2016-06-06 14:57:58 -04:00
Tim Mickel
aa152fd604
Rewrite of moveBlock to better reflect Blockly
2016-06-06 14:55:01 -04:00
Tim Mickel
214daa8087
Always unset topLevel
in deleteStack_
...
Blocks may have topLevel set even if they are not present in this.stacks
2016-06-06 14:54:32 -04:00
Tim Mickel
18e4228399
Update runtime's handling of delete for new blocks structure
2016-06-06 14:53:59 -04:00
Tim Mickel
285c2792ef
Only add to stacks if topLevel is true in CREATE
2016-06-06 14:53:42 -04:00
Tim Mickel
e5b677c7f6
Fix naming of MOVE event in index.js
2016-06-06 14:53:27 -04:00
Tim Mickel
9fef9d7edd
Fix up adapter's domToBlock
2016-06-06 14:44:51 -04:00
Tim Mickel
0dfc72893c
Update Runtime createBlock for new structure; _addStack helper.
2016-06-06 14:12:43 -04:00
Tim Mickel
b28c50e6a5
Rewrite of adapter to support trees of blocks, inputs
2016-06-06 14:09:27 -04:00
Tim Mickel
9ce3783940
Fix handling of stack click
...
Previously was improperly reading `e.type`.
2016-06-01 13:48:54 -04:00
Tim Mickel
cfed4e1bba
Add "stack click" event handler to VM
...
See: https://github.com/LLK/scratch-blocks/pull/360
2016-06-01 10:26:06 -04:00
Tim Mickel
4d4682912d
Resolve existing motor timeout (instead of reject)
2016-05-09 14:18:33 -04:00
Tim Mickel
dd53b86b8c
Reduce amount of time for executing blocks
2016-05-05 13:09:37 -04:00
Andrew Sliwinski
0de30986aa
Switch WeDo2 led block to use color index rather than absolute RGB values.
2016-05-05 08:33:44 -04:00
Tim Mickel
5c03167ec3
Hack helper for distance sensors
2016-05-03 17:39:02 -04:00
Tim Mickel
85f8e99ca8
Add delay to RGB block
2016-05-03 17:23:59 -04:00
Tim Mickel
659c9b274a
Add motorStop patch to stopAll
2016-05-03 17:18:28 -04:00
Tim Mickel
79b50e5172
Remove block glows from sequencer
2016-05-03 17:18:21 -04:00
Tim Mickel
833f40cfe5
Allow pushing threads that are not on this.stacks
...
For flyout running
2016-05-03 15:58:20 -04:00
Tim Mickel
9363432456
Hacked implementation of broadcasts
2016-05-03 14:57:10 -04:00
Tim Mickel
beebae0d2e
Implement stop block
...
Using a call to the runtime.
2016-05-03 14:39:33 -04:00
Tim Mickel
5f5fe6fafd
Fix to check if block still exists
2016-05-03 14:35:02 -04:00
Tim Mickel
6b1eb6df51
Control blocks argValues
2016-05-03 14:26:43 -04:00
Tim Mickel
17d4485695
Fix WeDo args
2016-05-03 14:25:19 -04:00
Tim Mickel
8facd64376
Hack for getting argument values
2016-05-03 14:25:12 -04:00
Tim Mickel
90a5982ff9
Fix Runtime.stopAll
...
Removing threads as we were looping was causing not all of them to be hit.
2016-05-03 14:11:37 -04:00
Tim Mickel
5b834667eb
Merge pull request #19 from tmickel/feature/repeats
...
Stacks management, stack frames, repeat, forever
2016-05-03 14:04:50 -04:00
Tim Mickel
548d95b765
Fix attempt to pop from the stack
...
-Keeps it in newThreads
-Update thread status to STATUS_RUNNING to keep it going
2016-05-03 13:53:52 -04:00
Tim Mickel
852b11519a
Fix for empty substacks
2016-05-03 13:45:22 -04:00
Tim Mickel
47545e7109
Replacing control_repeat comment
2016-05-03 13:34:39 -04:00
Tim Mickel
add3e9dec9
Strip blockExecutionData
2016-05-03 13:31:03 -04:00
Tim Mickel
379b2dec79
Stack management, stack frames, forever and repeat
2016-05-03 13:28:24 -04:00
Christopher Willis-Ford
63d4f559e3
Fix inconsistent color scale
...
The HSV-to-RGB function had been returning values in the range [0,1].
Now it uses [0,255] to be consistent with the other values returned by
_getColor.
2016-05-03 10:01:52 -07:00
Christopher Willis-Ford
6f949596d8
Use util.timeout instead of setTimeout
2016-05-03 09:53:37 -07:00
Christopher Willis-Ford
e8089cd2a5
Don't check for methods on window.native
...
It turns out that `window.native.someMethod` always evaluates as
`undefined` -- even if calling that method would succeed. This change
removes checks for such methods so that the WeDo2 blocks can work.
Note that the hat blocks are still unimplemented, and some assumptions
are made about the form that arguments and `util` will take.
2016-05-03 09:48:26 -07:00
Christopher Willis-Ford
e1109e8ca6
Improve error exception report for Android Monitor
...
Android Monitor doesn't support passing multiple arguments to
`console.error`, so this change instead builds a single string for the
report.
2016-05-03 09:48:12 -07:00
Christopher Willis-Ford
66e4a55b74
Fix _motorOnFor not setting _motorTimeout
2016-05-03 09:44:13 -07:00
Christopher Willis-Ford
b9af4f7894
WIP implementation for WeDo2 blocks
...
Hat blocks are still TBD.
Motor blocks assume a `util` argument which has methods for `yield()`
and `done()`.
2016-05-03 09:44:13 -07:00
Tim Mickel
4c6f08f665
Add mechanism for per-block metadata
2016-05-03 11:45:25 -04:00
Tim Mickel
417296ac69
Remove debug reference
2016-05-03 11:26:28 -04:00
Tim Mickel
4de24cfc30
Implement thread status, YieldTimer, block glow, wait
2016-05-03 11:26:28 -04:00
Tim Mickel
3eeccf1970
Update nextBlock to be set before primitive call
2016-05-03 11:26:15 -04:00
Tim Mickel
6bbeb2d0fe
Shuffle moveBlock to allow case where e.oldParent !== undefined
2016-05-02 22:31:00 -04:00
Christopher Willis-Ford
751ca97733
Fix eslint errors
...
This includes adding a line to `.eslintrc` to allow `console.log`,
`console.warn`, and `console.error`.
2016-05-02 11:56:52 -07:00
Christopher Willis-Ford
4a3276d026
Improve block primitive lookup and execution
...
Slightly simplify export of block primitives from a block package.
Catch and report exceptions from block functions.
2016-05-02 11:31:37 -07:00
Christopher Willis-Ford
27c06ce476
Add framework for block execution
...
The runtime now stores a mapping of opcode to function.
The `wedo2` and `scratch3` packages are currently stubs.
2016-05-02 11:31:25 -07:00
Tim Mickel
79f6725ff3
Add stack glow and infrastructure for block glow
2016-05-02 13:09:38 -04:00
Tim Mickel
773f2e1bbc
Improve JSDoc on Thread
2016-05-02 13:05:48 -04:00
Tim Mickel
b92a73da0f
Add green flag and stop button functions
2016-04-29 17:58:31 -04:00
Tim Mickel
b46ee0113f
Return if a thread is toggled off
2016-04-29 17:39:18 -04:00
Tim Mickel
7d9f75b14d
updating _removeThread to actually match docs
2016-04-29 17:36:09 -04:00
Tim Mickel
96123f870f
Fix _removeThread documentation and add toggleStack
2016-04-29 17:31:04 -04:00
Tim Mickel
2b2187014f
fix createBlock
2016-04-29 16:55:13 -04:00
Tim Mickel
11c6537f42
Add listener for new blocks that doesn't add to stacks
2016-04-29 16:49:08 -04:00
Tim Mickel
b3e981ba74
Updating timer require
2016-04-26 17:06:24 -04:00
Tim Mickel
92dab97b84
Add thread management and stepping to runtime
2016-04-26 16:50:49 -04:00
Tim Mickel
dbfb3356c6
Move threads list to the Runtime
2016-04-26 15:51:14 -04:00
Tim Mickel
b6186a44f3
Add basics for the sequencer and threads
2016-04-26 15:00:45 -04:00
Tim Mickel
33340125e4
Adding JSDocs, threads, sequencer to runtime
2016-04-26 14:23:22 -04:00
Andrew Sliwinski
f1375ef44f
Delete unused primitives stub
2016-04-26 12:05:38 -04:00
Andrew Sliwinski
389d112729
All tests passing
2016-04-26 09:54:14 -04:00
Andrew Sliwinski
981b85e78f
AST create / change / move / delete from blockly
2016-04-26 09:49:52 -04:00
Andrew Sliwinski
53779220b7
WIP
2016-04-18 18:03:18 -04:00
Andrew Sliwinski
f9f47ed103
WIP
2016-04-18 17:20:30 -04:00