Katie Broida
356a4e7880
Declare const once to be resused in for loop
2019-01-29 10:47:54 -05:00
Erik Mejer Hansen
c750957465
Convert lint breakage
2019-01-24 13:21:46 +01:00
Karishma Chadha
e5723e299a
Add runtime to blocks container since it was getting passed in everywhere where it was being referenced. Update calls to blocks constructor.
2019-01-23 18:18:38 -05:00
Erik Mejer Hansen
ceaa3c7857
Add support extensions to define custom field types.
...
This is done by adding a new element "customFieldTypes" to the extension info structure. Ex:
```
customFieldTypes: {
angleField: {
implementation: { fromJson: options => new AngleField(options) },
output: 'number',
outputShape: 2,
}
}
```
Field types are defined by an implementation that has to match what is expected by ScratchBlocks.Field.register and its output and shape.
src/engine/runtime.js has been updated to handle the new "customFieldTypes"-field:
- Existing (global) field types cannot be overridden
- New fields are "namespaced" to the extension in the same way as opcodes are.
Once the custom field type has been picked up by scratch-vm a "EXTENSION_FIELD_ADDED" event is emitted.
It is then up to the hosting app to call ScratchBlocks.Field.register to register the field type with ScratchBlocks. Ex:
```
vm.addListener('EXTENSION_FIELD_ADDED', fieldInfo => {
this.ScratchBlocks.Field.register(fieldInfo.name, fieldInfo.implementation);
});
```
2019-01-20 21:24:32 +01:00
Evelyn Eastmond
7831256044
Change event names to be more descriptive. Fix some typos.
2019-01-16 20:17:19 -05:00
Evelyn Eastmond
7ec9494804
Making corrections based on discussion with ericr.
2019-01-16 15:54:38 -05:00
Evelyn Eastmond
156b1bc21a
Adding new runtime event for intentional peripheral disconnects.
2019-01-16 15:22:58 -05:00
Karishma Chadha
59a865ef47
Create a new addTarget
function on the runtime which populates the targets list as well as the executable targets list.
2019-01-14 11:48:11 -05:00
Karishma Chadha
85843e5d6f
Fix cloud variable limit
2019-01-07 11:12:47 -05:00
Karishma Chadha
6c4fb29523
Move tracking of edge activated hat values into target.
2018-12-12 12:05:55 -05:00
Karishma Chadha
19737d4e39
Fix issue where edge-activated hats only run on one sprite when sprite is duplicated or cloned.
2018-12-11 12:28:37 -05:00
picklesrus
ebe06a97d9
Merge pull request #1818 from picklesrus/monitor-vars-project-load
...
Clear out the blocks in dispose. Fixes #1758 where old monitored vari…
2018-12-07 15:08:09 -05:00
picklesrus
3f3c34b43a
Given the bug found with the old approach, fix this by going and deleting all of the monitor blocks for each sprite and the global variables.
2018-12-06 18:59:58 -05:00
Paul Kaplan
ff3391718d
Merge pull request #1815 from paulkaplan/clear-pen-on-dispose
...
Clear the pen layer when runtime dispose happens.
2018-12-05 12:30:24 -05:00
picklesrus
cddcea652b
Clear out the blocks in dispose. Fixes #1758 where old monitored variables were getting kept across project loads
2018-12-05 12:09:12 -05:00
Paul Kaplan
6bd2307c99
Clear the pen layer when runtime dispose happens.
2018-12-04 16:43:31 -05:00
Katie Broida
967cab8f20
Make the wait block's logic and behavior more consistent with Scratch 2 ( #1759 )
2018-12-04 10:35:42 -05:00
Eric Rosenbaum
536305af1b
Remove vestigial device manager ( #1793 )
2018-12-03 15:52:23 -05:00
Karishma Chadha
ff2566fec4
Merge pull request #1778 from kchadha/emit-cloud-data-update
...
Emit cloud data update
2018-11-28 17:23:29 -05:00
Karishma Chadha
6d033af61e
When clearing the runtime, emit has cloud data update.
2018-11-28 15:03:20 -05:00
Karishma Chadha
b828444ea8
Update comments for addCloudVariable and removeCloudVariable.
2018-11-28 15:03:20 -05:00
Karishma Chadha
86d61a4c20
Emit event tracking when the project's hasCloudData status changes. Cloud var creation now happens regardless of connectivity to the provider.
2018-11-28 15:03:19 -05:00
picklesrus
4a542b455d
fix code review comments
2018-11-28 10:36:22 -05:00
picklesrus
f214d3a191
VM changes for the sensing_of block. This handles lists properly (by ignoring them like Scratch2 and makes the attribute menu update based on what was chosen in the target menu.
2018-11-28 10:35:35 -05:00
Paul Kaplan
421aac6340
Ensure setCompatibilityMode continues to restart if previously started.
...
This was previous behavior, but the previous commit which prevents restarts based on _steppingInterval truthiness broke it because clearInterval does not modify the value of _steppingInterval
2018-11-28 08:47:51 -05:00
Paul Kaplan
4378603d36
Prevent the runtime from spawning new stepping intervals
2018-11-28 08:34:22 -05:00
Paul Kaplan
ffb02c607d
Merge pull request #1783 from paulkaplan/emit-start-event
...
Emit a RUNTIME_STARTED event to track if the vm has been started
2018-11-27 16:38:27 -05:00
Paul Kaplan
cc4751228e
Emit a RUNTIME_STARTED event to track if the vm has been started
2018-11-27 11:37:01 -05:00
Ray Schamp
5022227c15
Add "project changed" event
...
And emit it whenever we think the project has changed. Try to not emit it when a change has happened internally that shouldn't affect the serialized project.
This iteration fires the event too frequently, e.g., when switching sprites. This is meant as a simple initial implementation that can be improved.
2018-11-26 17:10:43 -05:00
Karishma Chadha
0c9da5d963
Merge pull request #1755 from kchadha/cloud-var-create
...
Create cloud variables
2018-11-14 21:39:29 -05:00
Karishma Chadha
3fc1b89b30
Add ability to create cloud variables, and have cloud provider wait for confirmation from server.
2018-11-13 16:43:51 -05:00
Karishma Chadha
14bee14d8c
Update extensions to load when deserializing monitors. This is necessary when the monitor is the only part of the project that uses the extension. Update extension monitor color category.
2018-11-09 23:45:49 -05:00
Karishma Chadha
1a4f0a75f2
Serialize and deserialize monitors. Obtain monitor block information from runtime. Fix issue where stage monitors weren't getting loaded correctly.
2018-11-09 23:45:48 -05:00
Karishma Chadha
4bb2d19584
Merge pull request #1683 from mzgoddard/sequencer-thread-cleanup
...
Sequencer thread cleanup
2018-11-07 17:15:11 -05:00
Eric Rosenbaum
2cff4159bb
Use the new note picker field in music and EV3 extensions ( #1720 )
...
* Add note field type
* Note picker in music extension plays notes
* Use note picker in EV3 beep block
2018-11-07 11:50:15 -05:00
Paul Kaplan
596d0c4f5f
Include the origin blockId of the top block being dragged.
...
This is required by the GUI in order to take a snapshot of the blocks for the backpack. Only the ID is needed, the rest can be done by the GUI.
2018-11-01 14:13:07 -04:00
Karishma Chadha
ffef2e92fc
Fix up docs and incorrect initialization of cloud data manager functions. Add 'spec' unit tests that the cloud data manager functions are actually functions.
2018-10-31 19:20:13 -04:00
Michael "Z" Goddard
2ffa8eb333
update runtime thread tests
...
Threads are now removed after every "inner" step. Any thread that
reaches its DONE conditions is immediately removed instead of requiring
an extra step to remove it. As such tests that check the number of
threads have been updated to consider this.
2018-10-31 17:56:12 -04:00
Karishma Chadha
1df6743a5f
Refactor cloud data manager to break out cloud data limit check vs. limit update.
2018-10-31 13:40:05 -04:00
Karishma Chadha
848deaff30
Track whether a project has cloud data and enforce a cloud data limit on projects being loaded into the runtime.
2018-10-30 18:53:57 -04:00
Katie Broida
6ef600dc2c
Add runtime event for when the project is loaded ( #1669 )
2018-10-30 15:26:22 -04:00
Karishma Chadha
4959ab9ff3
Create a new cloud io device
2018-10-29 00:58:30 -04:00
DD
91e2f3a935
Revert 1643 Confirm extension in use in sb2 serialization
2018-10-18 11:06:13 -04:00
Evelyn Eastmond
2564b24d71
Differentiate peripheral errors: request vs. disconnect ( #1654 )
...
* Beginning to add differentiation for hardware disconnect alerts.
* Set connected status after error is sent.
2018-10-17 15:48:07 -04:00
Katie Broida
899ce56214
Confirm extension in use in sb2 serialization ( #1643 )
...
Add a check when serializing sb2 projects to see whether an extension is actually in use in a block or a visible monitor.
2018-10-17 10:49:08 -04:00
Andrew Sliwinski
23f6346045
Merge pull request #1631 from mzgoddard/stop-other-asks
...
Stop other asks
2018-10-15 13:16:49 -04:00
Michael "Z" Goddard
56ec22df77
add Runtime.executableTargets
...
executableTargets is a list of the targets in the reverse order of
their execution. This order matches the draw list's order in the
renderer.
2018-10-04 00:42:05 -04:00
Michael "Z" Goddard
574749bbba
add STOP_FOR_TARGET runtime event and respond for ask blocks
...
Remove questions for targets that are individually stopping and
progress the asked question if it is from a stopping target.
2018-10-03 10:38:14 -04:00
Eric Rosenbaum
f5edcfa3bb
Update event name to MIC_LISTENING
2018-09-20 12:06:31 -04:00
Eric Rosenbaum
e44eff48e3
Add mic indicator update event for speech2text
2018-09-18 10:58:49 -04:00
Chris Willis-Ford
8977ce1e93
Merge pull request #1565 from cwillisf/extension-monitors
...
Extension monitors
2018-09-12 18:10:12 -04:00
Christopher Willis-Ford
346e1383ed
Split extended opcode with splitFirst instead of split
2018-09-12 17:02:18 -04:00
Evelyn Eastmond
ec432e3b2f
Refactor for hardware extensions ( #1555 )
...
* Beginning refactor: renaming 'device' to 'peripheral', shortening function names, reordering functions, etc.
* Continuing refactoring: renaming some functions to be more verbose in the runtime, adding JSDocs, etc.
* Changing 'device' to 'peripheral', etc.
* Changing 'session' to 'socket'.
* Fixing EV3 menus and menu arg validation, reordering functions, etc.
* Add _send, add some references to documentation, etc.
* Factored out _outputCommand and _inputCommand, renamed some enums, etc.
* Fixed _outputCommand, some other minor cleanup.
* Make _outputCommand and _inputCommand public.
* Added TODO.
* Renamed BLE UUID enums to be clearer.
* Change WeDo2 in comments to WeDo 2.0, etc.
* Changed some WeDo2Motor command names, cleaned up some JSDocs.
* Beginning a major EV3 refactor.
* WeDo2 formatting and comment changes.
* Motor refactoring in EV3: motorTurnClockwise and motorTurnCounterClockwise initial working state.
* Add reminders to possibly cast motor menu args in WeDo2.
* Continue to move motor commands in EV3 to EV3Motor class, don't create new EV3Motor on every poll cycle, etc.
* Factoring EV3 polling value commands, etc.
* Fixing EV3 motor power, position and button pressed, and some commenting, etc.
* Move EV3 motor position parsing to EV3Motor class, move directCommand and directCompoundCommand functions, some commenting, etc.
* Changed WeDo2 motor label enum name.
* Removed some EV3 motor functions that aren't needed, changed menu label enum names, moved some opcodes up to enums.
* Fixing comments and documentation.
* Some commenting.
* Adding further documentation and references to PDFs, changed reply check to be safer, etc.
* Some comment changes.
* Moving some functions around in EV3 and WeDo2 to match.
* Commenting, etc.
* Some renaming of session, etc.
* Fix stopAllMotors in EV3.
* Fixing clearing of motors in EV3.
* Some comment changes.
* Change runtime .extensions/registerExtension to .peripheralExtensions/registerPeripheralExtension.
* Renaming outputCommand/inputCommand to generateOutputCommand/generateInputCommand, etc.
* Moved motorCommandIDs to EV3Motor class, renamed directCommand to generateCommand, etc.
* Adding a reminder to rename something.
* JSDoc fix in EV3Motor class.
* Fixing microbit function name.
* Adding a todo item.
* Changing Ev3 menu formats to be backwards compatible, moving a BLE function up.
* Fixing EV3 ports again, and button pressed returning a boolean.
* Fixing menu value to be a string in EV3.
2018-09-07 17:01:23 -04:00
Christopher Willis-Ford
8602d5798a
Allow extension reporter only if no block args
2018-09-07 12:16:48 -07:00
Christopher Willis-Ford
f5182a231e
Add getLabelForOpcode
for use by monitors
2018-09-07 12:01:13 -07:00
Christopher Willis-Ford
701fb6c1c5
Enable extension monitors, add flag to disable
...
Extension reporters now offer a monitor checkbox by default, unless the
`disableMonitor` flag is set in the extension block metadata.
2018-09-07 11:13:13 -07:00
Karishma Chadha
62bf790d8f
Fix stack glows so that stacks glow as soon as the first block in the stack starts running as opposed to after the first block has finished. Make sure that monitored reporters in the flyout are not glowing.
2018-08-22 14:44:06 -04:00
Ray Schamp
4b5cf6505a
Merge pull request #1398 from paulkaplan/publish-docs
...
Publish jsdoc to gh-pages
2018-08-08 16:46:48 -04:00
Paul Kaplan
79ab2fcb72
Add turbo mode events
2018-08-02 10:00:21 -04:00
Paul Kaplan
138d7136af
Fix various jsdoc issues preventing the docs from building
2018-07-31 11:22:42 -04:00
Paul Kaplan
6d4c6df692
Add UserData ioDevice for setting and getting username from blocks
2018-07-23 09:38:58 -04:00
Paul Kaplan
7aa45ddb38
Update the category info name when the extension is refreshed.
...
Fixes an issue where changing languages did not update the name in the category menu.
2018-07-18 15:01:22 -04:00
Evelyn Eastmond
c4ee7065a2
EV3/Microbit critical fixes for code freeze ( #1354 )
...
* Resolves - BLESession and BTSession should emit PERIPHERAL_SCAN_TIMEOUT #1348 .
* Resolves - BLESession should handle 'could not find service' error #1350 .
* Resolves - BTSession should handle 'no peripheral connected' error #1351 .
* Fixing a typo that caused device scan timeout bugs.
* Resolves - Add casting and clamping throughout the EV3 extension #1352 .
* Fixing a linting error.
* Further fixes for issue #1351 .
2018-07-17 16:03:05 -04:00
Karishma Chadha
2b2fc2e561
Code cleanup, refactor, abstraction
2018-07-13 12:58:45 -04:00
Paul Kaplan
e463781bc1
Merge pull request #1330 from paulkaplan/glow-on-stack-click
...
Always glow threads that come from stack clicks
2018-07-13 07:53:05 -04:00
DD Liu
004f38190a
Merge branch 'develop' into loadCostume
2018-07-12 15:16:17 -04:00
Paul Kaplan
9dbb362b36
Remove log line
2018-07-12 14:40:13 -04:00
Paul Kaplan
bcd76c995e
Always glow threads that come from stack clicks
2018-07-12 11:24:06 -04:00
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