Commit Graph
803 Commits
Author SHA1 Message Date
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 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