Commit graph

308 commits

Author SHA1 Message Date
Kreg Hanning
06c4e5516f Add micro:bit matrix field block (#1314)
* Add micro:bit matrix field block

* Remove debug logs

* Remove rowcol menu

* Fix lint errors
2018-07-11 16:13:49 -04:00
DD Liu
6aefd13af6 Break load costume into more functions, and update how bitmaps are loaded 2018-07-10 10:30:38 -04:00
Eric Rosenbaum
6f5ff31eb3 Add disconnectExtensionSession and getPeripheralIsConnected 2018-07-09 13:49:41 -04:00
Evelyn Eastmond
4332725d33 Adding more errors based on web socket onerror and onclose. Moved extension runtime mapping of devices back to MicroBit class. 2018-07-09 13:41:57 -04:00
Evelyn Eastmond
9d66c54f8a Adding error reporting to runtime from BLESession. 2018-07-09 13:41:57 -04:00
Evelyn Eastmond
730b798686 Extension/runtime protocol refactoring. 2018-07-09 13:41:57 -04:00
Eric Rosenbaum
d778ddf00e wip 2018-07-09 13:41:57 -04:00
kchadha
6c118cf8e0
Merge pull request #1301 from kchadha/variable-scope
Variable scope
2018-07-06 14:39:56 -04:00
Karishma Chadha
ed608ffe6f Refactor to fix issue with global var not checking for name conflicts on all sprites. 2018-07-03 23:20:49 -04:00
Andrew Sliwinski
840510c733 Update colors for extensions. Resolves GH-1275 2018-06-27 18:10:51 -04:00
Eric Rosenbaum
aa400ea15b
Show extension status button via XML attr not button (#1270) 2018-06-27 15:53:18 -04:00
Eric Rosenbaum
8c748cebb4
Merge pull request #1233 from ericrosenbaum/feature/extension-status-button
Add extension status button
2018-06-14 11:51:32 -04:00
Ray Schamp
f5234c777a
Merge pull request #1211 from mzgoddard/broadcast-and-wait-promise
yield a tick if broadcastandwait is waiting on threads waiting for a future tick
2018-06-13 15:58:37 -04:00
Eric Rosenbaum
7d0c45546c Add extension status button XML 2018-06-13 15:52:51 -04:00
Connor Hudson
38756e1022 Update code comments to address PR feedback 2018-06-11 08:37:25 -04:00
Connor Hudson
0e394fc873 Add monitor show/hide functions, changed remove monitor to delete state 2018-06-08 15:59:35 -04:00
Connor Hudson
2cb276c476 Consolidate some logic in requestAddMonitor and requestUpdateMonitor 2018-06-07 15:18:45 -04:00
Connor Hudson
833c27ef21 Remove debug comments, tweak logic for monitor data merging 2018-06-07 11:24:55 -04:00
Connor Hudson
77dda04228 Set visible: false instead of deleting state in requestRemoveMonitor
This potentially has performance implications, to be investigated later.
2018-06-06 17:14:09 -04:00
Connor Hudson
18640d7ddc use mergeWith in requestAddMonitor, requestUpdateMonitor
So undefined values don't overwrite defined ones
2018-06-06 15:54:12 -04:00
Michael "Z" Goddard
0a006dc981
add Runtime.isWaitingThread
Add a Runtime Thread helper to check if a thread is in a state where it
will not change at least until next frame. This includes any state
where the thread is done, as that will not change either.
2018-06-06 10:16:05 -04:00
kchadha
a85f641d25
Merge pull request #1148 from kchadha/stage-layering
Layer group ordering.
2018-05-25 09:10:05 -04:00
Chris Willis-Ford
b3db00fab7
Merge pull request #1154 from vincentbriglia/issue1552
Allow override of icons per block
2018-05-25 01:10:57 -07:00
Vincent Briglia
0c8662bc23 Allow override of icons per block 2018-05-17 15:27:24 +02:00
Vincent Briglia
76ce7d6fe6 add option to override colours 2018-05-17 15:25:20 +02:00
Karishma Chadha
67b114b9c9 Layer group ordering. 2018-05-15 22:22:44 -04:00
Eric Rosenbaum
bdda3bc2c9 Add extension id to toolbox category XML 2018-05-10 15:41:44 -04:00
DD Liu
5c003641f9
Merge pull request #1126 from fsih/fixQuirksOnLoadCostume
Run quirks mode fixes on costumes loaded from sb2s
2018-05-10 13:42:48 -04:00
DD
589dd7d5e0 Attach the svg renderer instead of providing it in order to fix VM tests 2018-05-10 12:03:38 -04:00
Paul Kaplan
cc1314d289 Clear out monitor state on vm.clear
Fixes https://github.com/LLK/scratch-gui/issues/1848
2018-05-09 11:34:01 -04:00
Ray Schamp
23e72525bf
Merge pull request #1065 from mzgoddard/push-reported-again
Push reported again. Now with empty boolean support!
2018-04-30 09:36:32 -04:00
Andrew Sliwinski
f86cad3305 Replace extension delimeter with '_' 2018-04-20 07:54:02 -04:00
Michael "Z" Goddard
d04d6b2c6a
Revert "Revert "Push reported""
This reverts commit 107adad647.
2018-04-16 13:21:53 -04:00
Michael "Z" Goddard
044370790c
Merge pull request #1016 from gnarf/io-video
Video IO Device Implementation
2018-04-11 10:14:56 -04:00
Corey Frang
eef88f6c2d
First draft of video IO device 2018-04-10 13:57:53 -04:00
Christopher Willis-Ford
53b5ba93f5 Add tests for converting extension metadata
These tests convert some extension metadata into scratch-blocks JSON and
XML, then verify that the JSON and XML are as expected.
2018-04-09 15:37:08 -07:00
Christopher Willis-Ford
f8db6c3f02 Support extension translation
The new `maybeFormatMessage` function detects whether its argument
looks like a message descriptor object and, if so, will call
`formatMessage` on it. This is now used for all user-visible text fields
in extensions.

Also, messages may use "select" to check the target type with a message
like this: '{targetType, select, stage {text for stage} sprite {text for
sprite} other {text for other}'. Note that the "other" clause is
required by `formatMessage`.
2018-04-05 12:17:05 -07:00
Christopher Willis-Ford
de9e2be265 Add EVENT extension block type
An EVENT block is like a HAT block but it has no implementation
function. Its stack runs when the VM emits the corresponding event.
2018-04-04 23:44:59 -07:00
Christopher Willis-Ford
af058b8146 Support LOOP and CONDITIONAL blocks in extensions
A LOOP block is like a conditional, but the LOOP block will be
re-evaluated after any child branch runs.

Also:
- Support using '---' as a block separator
- Refactor common code from `_registerExtensionPrimitives` and
  `_refreshExtensionPrimitives` into new `_fillExtensionCategory`
- Improve error reporting during block conversion
2018-04-04 22:19:48 -07:00
Chris Willis-Ford
219f083a29
Merge pull request #934 from picklesrus/extensions-dynamic-menu
Extensions dynamic menu
2018-03-06 16:33:26 -05:00
picklesrus
026b9dc282 Stop wrapping function for no reason. 2018-03-02 11:02:56 -08:00
DD
8355dd662f Switch to sending end drag event to be handled by gui 2018-02-23 11:57:19 -05:00
DD
fe4b3d3c01 Pass through block drag event 2018-02-20 16:09:08 -05:00
Chris Willis-Ford
8e1719b716
Merge pull request #920 from towerofnix/scroll-detection
Scroll wheel detection for "when key (up/down) pressed" blocks
2018-02-16 12:21:27 -08:00
picklesrus
1910968b13 Fix lint errors. 2018-02-16 10:49:26 -08:00
Eric Rosenbaum
22038c947c When getting sprite by name, skip the stage 2018-02-12 15:33:27 -05:00
kchadha
107adad647
Revert "Push reported" 2018-02-02 12:42:09 -05:00
picklesrus
b6bb92d8f6 Adding support for dynamic menus in extensions. 2018-01-26 14:36:36 -08:00
Florrie
be83c0ee74 Mouse wheel IO system
Towards fixing #865. This adds an IO class for detecting the mouse wheel
being scrolled. Basic tests are included; they mock the runtime to see
what blocks are activated by scrolling.
2018-01-26 17:13:01 -04:00
Michael "Z" Goddard
4286e3e982
Add Thread.blockContainer
Store the thread's blocks at blockContainer letting execute quickly
determine the block source. Monitor threads are a monitor thread. They
do not become a target thread suddenly.
2018-01-24 17:00:35 -05:00
Eric Rosenbaum
2d6e91fa59
Merge branch 'develop' into feature/extension-category-icons 2017-12-19 15:39:00 -05:00
Eric Rosenbaum
9613046b2f Add optional menuIcon for extension blocks 2017-12-19 14:47:11 -05:00
Eric Rosenbaum
5cb0f5d76d Add separator to extension block definition 2017-12-15 14:09:29 -05:00
Eric Rosenbaum
5e6187bee7 Add blockly extension for scratch extensions 2017-12-14 14:37:08 -05:00
Eric Rosenbaum
25ded4cff7 Fix spelling of coloUrTertiary 2017-12-11 17:01:23 -05:00
chrisgarrity
f51cf9877e
Preliminary localization (#777)
* localize the block and menu strings in the pen extension
* adds .tx/config to be able to push translations to transifex
* includes format-message to localize strings and extracting them.
* add setLocale function to VM to allow GUI to pass in locale data.
* refresh block definitions when the locale changes.

### Still to be decided
For now just extracting messages from the pen extension into their own file. We’ll need to decide if each category gets its own file, or group all the strings into one resource.
2017-12-11 15:41:45 -05:00
Chris Willis-Ford
e7bbad60e8
Merge pull request #793 from cwillisf/remove-threads-safely
Make _removeThread safe during thread iteration
2017-12-06 17:18:10 -08:00
sjhuang26
eede8105d1 Clear answer on green flag 2017-12-01 20:06:55 -05:00
DD Liu
58dd57fe48
Merge pull request #784 from fsih/perSpriteMonitors
Execute monitors on a given target ID when block is sprite-specific
2017-11-21 10:23:53 -05:00
DD
ec9d8094bd fix review comments 2017-11-20 17:23:59 -05:00
Christopher Willis-Ford
b19af399fa Make _removeThread safe during thread iteration
Before: `_removeThread` stops a thread and immediately removes it from
the runtime's thread array. If this happens while iterating over the
thread array, such as in the case of clone deletion, some elements of
the array can be missed.

After: `_removeThread` has been renamed to `_stopThread`. It still stops
the thread immediately but it no longer removes the thread from the
runtime's thread array. Instead, `_stopThread` marks the thread for
later removal. Such threads are removed at the top of the next `_step`.
2017-11-17 12:56:25 -08:00
Michael "Z" Goddard
3d92553459
Return restarted threads in list from startHats
Add restarted threads to the list of newThreads returned by startHats.
2017-11-16 11:23:51 -05:00
Michael "Z" Goddard
9864403bc9
A thread in the runtime but with the DONE status is not active
return false from isActiveThread if thread's status is done even when
its contained in the runtime threads list. As it is done, the thread
will not be run until either its replaced by a new copy of the thread
or the thread is removed from the list and another is added at a later
time.
2017-11-16 11:23:51 -05:00
DD
0958db2618 Move data to blocks files 2017-11-15 17:53:43 -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
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
DD
9048a9b9e7 Pipe through whether a monitor is sprite-specific 2017-11-14 12:20:24 -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
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
Paul Kaplan
18398d010b Add hideFromPalette flag for hiding legacy blocks 2017-11-01 11:30:15 -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
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
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
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
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
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
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
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
06252e020b Extensions: add support for color-picker arguments 2017-09-27 00:02:53 -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
403adb743c Track extension blocks in the Runtime 2017-09-06 00:57:03 -06: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
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