Commit graph

2249 commits

Author SHA1 Message Date
Eric Rosenbaum
9e00c06ddf Localize the makey makey blocks 2019-01-23 14:05:00 -05:00
Karishma Chadha
98b92be2d7
Merge pull request #1928 from kchadha/timer-perf
Improve the performance of the timer utilitiy
2019-01-23 11:41:41 -05:00
Karishma Chadha
7588f08f3b
Use sequencer runtime directly instead of doing an extra lookup 2019-01-23 11:33:36 -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
Eric Rosenbaum
9d4442444f
Merge pull request #1914 from bocoup/sensor-error
Prevent console errors when disconnecting/reconnect to Vernier extension
2019-01-18 17:09:38 -05:00
Eric Rosenbaum
0b251adace
Merge pull request #1763 from evhan55/extensions/disconnect-errors
Various fixes to extension disconnect errors
2019-01-18 16:58:45 -05:00
Evelyn Eastmond
7831256044 Change event names to be more descriptive. Fix some typos. 2019-01-16 20:17:19 -05:00
Evelyn Eastmond
6f9a4864e9 Fix typo. 2019-01-16 19:59:51 -05:00
Evelyn Eastmond
802f752ded Prevent setting onCharactericChanged callback to null. 2019-01-16 19:50:32 -05:00
Evelyn Eastmond
6e290ea937 Calling microbit timeout error in an arrow function. 2019-01-16 16:23:06 -05:00
Evelyn Eastmond
e1e8e57403 Adding TODOs. 2019-01-16 16:08:15 -05:00
Evelyn Eastmond
5c885911e7 Replacing a timeout clear. 2019-01-16 16:06:44 -05:00
Evelyn Eastmond
28a54d6e83 Adding back in the disconnect branch to be fixed later in another PR. 2019-01-16 16:05:13 -05:00
Evelyn Eastmond
2761209631 Changing JSDoc slightly, again. 2019-01-16 16:00:25 -05:00
Evelyn Eastmond
c30807a678 Finetuning a JSDOC. 2019-01-16 15:56:58 -05:00
Evelyn Eastmond
7ec9494804 Making corrections based on discussion with ericr. 2019-01-16 15:54:38 -05:00
Evelyn Eastmond
bd8f129022 Adding a TODO for an optional read param. 2019-01-16 15:22:58 -05:00
Evelyn Eastmond
e4b82aeaef Adding callback back to battery read to fix clearing the characteristicChanged callback by accident. 2019-01-16 15:22:58 -05:00
Evelyn Eastmond
d7b6cfae97 Move micro:bit data stopped error string to constant. Added another jsdoc. 2019-01-16 15:22:58 -05:00
Evelyn Eastmond
f030afbdc5 Removing extra params from a BLE read in WeDo2. 2019-01-16 15:22:58 -05:00
Evelyn Eastmond
156b1bc21a Adding new runtime event for intentional peripheral disconnects. 2019-01-16 15:22:58 -05:00
Evelyn Eastmond
7518a9c149 Changing error to be more accurate. 2019-01-16 15:22:58 -05:00
Evelyn Eastmond
2d9531a15c Removing console logs. 2019-01-16 15:22:58 -05:00
Evelyn Eastmond
fdda1e53e3 Change microbit extension to send BLE socket error on data lost, instead of calling disconnect directly. 2019-01-16 15:22:58 -05:00
Evelyn Eastmond
fab292889f Adding disconnect callback to BT/BLE error system. 2019-01-16 15:22:58 -05:00
Evelyn Eastmond
a177b4eeb7 Adding interval to check for battery level. 2019-01-16 15:22:58 -05:00
Evelyn Eastmond
ae95df553d
Merge pull request #1924 from evhan55/extensions/vernier-withresponse-fix
Removing withResponse flag in GDX-FOR extension write method
2019-01-16 15:14:35 -05:00
Karishma Chadha
0fa5e9181a
Merge pull request #1839 from mzgoddard/fix-missing-no-param
fix: initialize stack frame params for all procedures
2019-01-16 14:06:38 -05:00
Karishma Chadha
325372233d Improve the performance of the timer utilitiy so that it does not garbage collect multiple times per frame. 2019-01-16 10:09:19 -05:00
Eric Rosenbaum
5d329663aa do not load vernier extension yet 2019-01-15 15:20:05 -05:00
Evelyn Eastmond
a6c05d8f61 Removing withResponse flag since it is not needed and was causing a crash on Windows. 2019-01-15 11:43:08 -05:00
Karishma Chadha
d5c2991a25
Merge pull request #1923 from ktbee/missing-block-early-exit
Add early exit for non-existent block
2019-01-15 11:29:40 -05:00
Karishma Chadha
fefb032f17
add comment before using util.initParams
Co-Authored-By: mzgoddard <mzgoddard@gmail.com>
2019-01-15 11:24:47 -05:00
Katie Broida
8256b3d5c5 Add early exit for non-existent block 2019-01-15 11:15:23 -05:00
Eric Rosenbaum
b57b6c0a84
Merge pull request #1916 from ericrosenbaum/bugfix/vernier-dont-keep-data
Prevent excess event emitting in Vernier extension
2019-01-15 11:07:35 -05:00
Eric Rosenbaum
e414e1b246 Add todo comment about keepValues flag 2019-01-15 10:46:22 -05:00
Eric Rosenbaum
2856b32dd5
Merge branch 'develop' into sensor-error 2019-01-15 10:38:51 -05:00
Eric Rosenbaum
8b2f326469
Merge pull request #1920 from evhan55/extensions/vernier-peripheral-list
Properly disconnect BLE socket in GDX-FOR scan/disconnect
2019-01-15 10:31:48 -05:00
Evelyn Eastmond
308bb7095a Properly disconnect BLE socket. 2019-01-14 20:17:18 -05:00
Eric Rosenbaum
7111513169
Merge pull request #1909 from ericrosenbaum/feature/vernier-block-icon
Add Vernier extension block icon
2019-01-14 18:26:12 -05:00
Karishma Chadha
43fd733b15
Merge pull request #1912 from kchadha/executable-targets-fix
Populate executable targets when runtime.targets is populated
2019-01-14 14:57:29 -05:00
Eric Rosenbaum
8f0e025261 Use flag to not keep data, and remove listener hack 2019-01-14 14:01:43 -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
Valerie Young
daccdb0a71 Satisfy linter 2019-01-11 16:53:47 -05:00
Valerie Young
f2f4af2590 Don't send disconnect to a closed device 2019-01-11 16:47:42 -05:00
Valerie Young
328e4480f6 Prevent reading non-existing sensors 2019-01-11 16:43:08 -05:00
Karishma Chadha
fbee37e915 Populate executable targets when runtime.targets is populated so that scripts don't run before they are supposed to (e.g. before targets are done getting installed). 2019-01-11 14:52:34 -05:00
Eric Rosenbaum
730ec44e5d Update block icon 2019-01-11 12:07:16 -05:00
Valerie Young
9e612acb27 Forgotten parens 2019-01-11 11:00:08 -05:00
Valerie Young
92297444a0 Is jumped should call is freefalling 2019-01-10 15:39:46 -05:00
Valerie Young
f669b4bcb7 satisfy linter 2019-01-10 12:19:00 -05:00
Valerie Young
7a1b6d4f60 Remove normal force from acceleration magnitude 2019-01-10 12:19:00 -05:00
Valerie Young
92e1f040c3 Add when jumped and is free falling 2019-01-10 12:19:00 -05:00
Valerie Young
a62f5b9b0e Add facing blocks 2019-01-10 12:19:00 -05:00
Eric Rosenbaum
522b5e1a8e
Merge pull request #1905 from bocoup/update-blocks
Add Vernier's GDX-FOR extension
2019-01-10 11:04:33 -05:00
Valerie Young
ac29927c22 other minor feedback 2019-01-10 10:21:32 -05:00
Valerie Young
477c307304 Remove one copy of constants 2019-01-10 10:11:46 -05:00
Valerie Young
5d4aebf301 Satisfy linter 2019-01-09 18:02:36 -05:00
Valerie Young
ae889304c5 satisfy linter 2019-01-09 17:51:56 -05:00
Valerie Young
d2fec35fd8 Set the period to 10 milliseconds 2019-01-09 17:50:25 -05:00
Valerie Young
338b30a17b Increase speed of sample 2019-01-09 17:09:08 -05:00
Valerie Young
abf84975bd Add tilt blocks 2019-01-09 17:08:01 -05:00
Paul Kaplan
c33d6caa2b
Merge pull request #1902 from picklesrus/unknown-monitors
Allow projects with unknown monitors to load.
2019-01-09 14:50:25 -05:00
Valerie Young
d3e5c7d928 Remove directions option from hats and use magnitude 2019-01-09 13:55:35 -05:00
Eric Rosenbaum
aebc0d25be
Merge pull request #1903 from ericrosenbaum/bugfix/midi-drum-import
Add legacy drum block to specmap
2019-01-08 18:07:43 -05:00
picklesrus
cdec5a1cef Allow projects with unknown monitors to load. 2019-01-08 15:00:00 -05:00
Eric Rosenbaum
a6421b91f8 Add legacy drum block to specmap 2019-01-08 14:49:34 -05:00
Karishma Chadha
bb8463f14a Log a warning for currentCostume out of range when incorrect project is being serialized. 2019-01-08 13:26:06 -05:00
Karishma Chadha
c27b624401 When loading a project, clamp the currentCostume number to an appropriate value. 2019-01-08 13:07:46 -05:00
Valerie Young
da608f6f18 degrees/s instead of radians, normalize force 2019-01-08 12:07:39 -05:00
Valerie Young
a0e1b5aa5b Rename spin speed, make hat blocks work 2019-01-08 11:53:51 -05:00
Valerie Young
be35eb1f70 remove units 2019-01-08 11:15:55 -05:00
Valerie Young
b5decacee2 update name of variable 2019-01-07 18:20:45 -05:00
Valerie Young
5696b76d9a fix typo 2019-01-07 18:17:20 -05:00
Valerie Young
4d75f7776c Remove the onClose skeletons 2019-01-07 18:09:23 -05:00
Valerie Young
4529533aa8 Remove accidental double declarations 2019-01-07 17:45:20 -05:00
Karishma Chadha
36fe6378db
Merge pull request #1899 from paulkaplan/less-cloning
Do not deep clone before serializing.
2019-01-07 13:36:34 -05:00
Paul Kaplan
94240d743e
Merge pull request #1897 from kchadha/fix-cloud-var-limit
Fix cloud variable limit
2019-01-07 13:28:47 -05:00
Paul Kaplan
fd2723ff7d Do not deep clone before serializing.
This was ok when we did not attach assets, but it is not cool now. With large assets, this made saving extremely slow
2019-01-07 13:02:30 -05:00
Valerie Young
9a3517d878 First draft communication with scratch link and vernier 2019-01-07 11:54:15 -05:00
Valerie Young
a0cccba3be satisfy linter 2019-01-07 11:29:26 -05:00
Valerie Young
deab7dd209 Add @vernier/godirect module 2019-01-07 11:29:26 -05:00
Valerie Young
1471248657 Clean up and all sensors working 2019-01-07 11:29:26 -05:00
Valerie Young
d70fb96d01 Force working with vernier node module 2019-01-07 11:29:26 -05:00
Valerie Young
a0bf69f17c Change extension name 2019-01-07 11:29:26 -05:00
Valerie Young
c305379393 format menu 2019-01-07 11:29:26 -05:00
Valerie Young
e4d9f9cdff tilt to speed 2019-01-07 11:29:26 -05:00
Valerie R Young
e209ec3240 satisfy linter 2019-01-07 11:29:26 -05:00
Valerie R Young
1503b0add9 Add some names 2019-01-07 11:29:26 -05:00
Valerie R Young
26067a9287 Draft of goforce blocks 2019-01-07 11:29:26 -05:00
Karishma Chadha
85843e5d6f Fix cloud variable limit 2019-01-07 11:12:47 -05:00
Eric Rosenbaum
ad6f15bfa1
Merge pull request #1869 from apple502j/english-meow-meow
Always use English for kitten
2019-01-07 10:54:14 -05:00
Karishma Chadha
808cb2cd60
Merge pull request #1878 from towerofnix/clamp-ghost
Clamp ghost effect
2019-01-06 17:42:43 -05:00
Ray Schamp
11546c7f0d Skip failing tests, this is @thisandagain's fault :) 2019-01-02 12:41:09 -05:00
Ray Schamp
2406286180 Fix test expectation, this is @kchadha's fault :) 2019-01-02 12:13:43 -05:00
Ray Schamp
80ff7e6756 Generate md5s for uploaded assets
Without this, we were erroneously setting uploaded assets as clean, so they wouldn't be saved when uploaded from an .sb2/3 file.
2019-01-02 11:46:47 -05:00
apple502j
7863731bb4 Change legacy pen color block's behavior 2018-12-29 09:49:31 +09:00
Florrie
fbb6d63e03 Clamp ghost effect
Cherry-picked from 35c8890425 (#1887)
2018-12-28 10:39:42 -04:00
Karishma Chadha
ed21af577c Let errors from loadCostume bubble up so that we do not attempt to call installTargets on an invalid target (e.g. one that has no costumes). 2018-12-26 14:15:57 -05:00
Karishma Chadha
c5284469d3
Merge pull request #1831 from apple502j/stop-ask
Clear ask bubble when stopForTarget
2018-12-26 10:29:23 -05:00
Guilherme Affonso
f4c6816ea7 Fix dynamic menus for string arrays 2018-12-26 19:26:59 +09:00
apple502j
a22d7dd6de
remove todo 2018-12-23 00:22:41 +09:00
apple502j
cbf70d9609 This kitten speaks only English 2018-12-22 17:59:57 +09:00
Karishma Chadha
23298bd18f Fix issue where uploading an sb with jpg images wasn't saving and loading properly. 2018-12-21 16:04:39 -05:00
Karishma Chadha
c38a054d4a Fix issue where uploading the default vector image in place of a broken image was not correctly setting the costume's md5. 2018-12-20 19:29:37 -05:00
Karishma Chadha
4ad101f5d4
Apply suggestions from code review
Co-Authored-By: mzgoddard <mzgoddard@gmail.com>
2018-12-20 14:12:33 -05:00
Karishma Chadha
f1a24e3296
Update src/virtual-machine.js
Co-Authored-By: mzgoddard <mzgoddard@gmail.com>
2018-12-20 14:11:58 -05:00
Michael "Z" Goddard
5593b28984
try handling as a Scratch 1 file after scratch-parser validation fails 2018-12-20 13:55:49 -05:00
Michael "Z" Goddard
a92f33960f
fix: use ValidationError to determine if an SB1File error should throw 2018-12-20 13:32:30 -05:00
Michael "Z" Goddard
f43163fc73
depend on scratch-sb1-converter and convert sb1 files to sb2 2018-12-20 12:09:58 -05:00
Katie Broida
5941b9173e Use default builtin SVG asset for SVGs that can't be loaded for some reason 2018-12-19 14:34:18 -05:00
DD Liu
fe375fa672
Merge pull request #1849 from fsih/addCostumeFromLibrary
Add addCostumeFromLibrary
2018-12-18 12:12:18 -05:00
picklesrus
fee248cd98
Merge pull request #1853 from mzgoddard/fix-execute-last-operation
Always pop the stack when the promised value is from the last op
2018-12-18 11:13:57 -05:00
picklesrus
178bdbd81b
Fix typo in comment 2018-12-18 11:01:53 -05:00
Eric Rosenbaum
724cdb5785 For order of key menu to match the core block 2018-12-17 18:24:14 -05:00
Eric Rosenbaum
d629d10717
Merge pull request #1854 from ericrosenbaum/bugfix/kitten-removes-punctuation
Prevent text to speech kitten voice from speaking names of punctuation
2018-12-17 16:00:28 -05:00
Michael "Z" Goddard
bdebfaf823
always pop the stack when the promised value is from the last op 2018-12-17 15:25:26 -05:00
julescubtree
040aeaa44e
enable loading draggability
in sb3.js, parseScratchObject()
2018-12-14 16:17:36 -08:00
Eric Rosenbaum
3bfc422ce0 Replace all non-space chars with meow 2018-12-14 17:28:45 -05:00
DD
a4744f5ac9 Add addCostumeFromLibrary 2018-12-14 14:20:42 -05:00
Karishma Chadha
6c1031c534
Use '' instead of null
Co-Authored-By: apple502j <33279053+apple502j@users.noreply.github.com>
2018-12-14 17:35:07 +09:00
Karishma Chadha
dfd4735871
Merge pull request #1833 from kchadha/fix-sb2-from-sb1-import
Fix issue importing some sb2s that were originally sb1s, with baseLayerMd5 property formatted differently.
2018-12-13 15:59:44 -05:00
Eric Rosenbaum
f86a23df98
Merge pull request #1790 from ericrosenbaum/midi-play-drum-v3
Add support for scratch 1.x MIDI drum blocks
2018-12-13 13:39:29 -05:00
Paul Kaplan
2f6527cb1d
Merge pull request #1843 from paulkaplan/fix-mouse-rounding
Round the values reported from the sensing mouse x/y reporters
2018-12-13 11:27:05 -05:00
Paul Kaplan
1bede31ec1 Round the values of mouse io getScratchX/Y 2018-12-13 11:06:31 -05:00
Michael "Z" Goddard
20ff75b776
fix: initialize stack frame params for all procedures
A previous change fixed compatibility with Scratch 2 removing 3's
unintentional scope leaking. This furthers that change so that
procedures with no parameters will also not accidentally use values in
other procedure stacks.
2018-12-13 10:51:44 -05:00
Karishma Chadha
6c51c40245
Merge pull request #1834 from kchadha/edge-hat-duplicate-sprite
Fix issue where edge-activated hats only run on one sprite after duplicating the sprite
2018-12-12 21:13:09 -05:00
Karishma Chadha
95dafb43c4 Serialize x and y for topLevel blocks even if one or both of the values is 0. 2018-12-12 18:51:36 -05:00
Karishma Chadha
e5b00dfd95 Fix issues uncovered where clones were triggering automatically on create. 2018-12-12 13:25:19 -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
apple502j
73968895d8 Display the next ask 2018-12-11 18:39:09 +09:00
Karishma Chadha
eeac4e62f6 Fix issue where sb2s originally from sb1s sometimes have baseLayerMd5 formatted incorrectly. 2018-12-10 18:17:24 -05:00
Karishma Chadha
532e63da15
Merge pull request #1830 from kchadha/fix-svg-sprite-upload
Fix sprite upload from vector image uploading at the wrong size
2018-12-10 10:40:19 -05:00
Eric Rosenbaum
fdbb0b26a8 Remove “space space space”, add CCW sequence 2018-12-09 23:16:32 -05:00
Eric Rosenbaum
a785b86949 Clear key press buffer on stop button 2018-12-09 23:13:55 -05:00
apple502j
aea7000917 Clear ask bubble when stopForTarget 2018-12-09 13:14:42 +09:00
Karishma Chadha
c1b697b575 Compare asset type runtime formats instead of AssetType objects because costume assets can get flattened (e.g. while uploading a sprite from file). 2018-12-07 21:46:28 -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
8405ff00d4
Merge pull request #1825 from paulkaplan/emit-start-publicly
Emit PROJECT_START event publicly on green flag click.
2018-12-06 15:38:05 -05:00
Paul Kaplan
56c062eee3 re-emit the PROJECT_START event publicly, add unit test 2018-12-06 11:47:09 -05:00
Karishma Chadha
87f57c8c95
Merge pull request #1823 from kchadha/slider-cloud-vars
Request cloud variable update in top level setVariableValue API
2018-12-06 10:56:07 -05:00
Paul Kaplan
23d9c21a0e
Merge pull request #1822 from paulkaplan/fix-list-clones
Make duplicateVariable deep copy the array instead of keeping reference.
2018-12-06 09:21:41 -05:00
Paul Kaplan
4756726e43
Merge pull request #1816 from paulkaplan/do-save-tl-var-blocks
Add a test and fix for not serializing top-level variable reporters
2018-12-06 05:32:23 -05:00
Paul Kaplan
9e57404222
Merge pull request #1821 from paulkaplan/fix-variable-monitor-switching
Fix an issue where the targetId of a monitor could be reassigned
2018-12-06 05:32:11 -05:00
Karishma Chadha
dc4fd15197 Make a cloud device requestVariableUpdate when setting a variable through the vm's top level setVariableValue API. Add unit test for new functionality. 2018-12-05 22:38:06 -05:00
Paul Kaplan
809d2de9f2 Fix typo uncovered by loading lonely variable reporters 2018-12-05 16:59:47 -05:00
Paul Kaplan
d50504e339 Make duplicateVariable deep copy the array instead of keeping reference. 2018-12-05 16:27:10 -05:00
Paul Kaplan
e0b314d3fb Fix an issue where the targetId of a monitor could be reassigned
This caused a local variable monitor to try running its thread on a different sprite, causing a new local variable to be created with the same monitor id.
2018-12-05 15:02:27 -05:00