Commit graph

1382 commits

Author SHA1 Message Date
Michael "Z" Goddard
02dd9a8c22
Unset justReported after reading its value
Avoid justReported values leaking to other argValues by setting back to the
default null value.
2018-04-24 19:05:20 -04:00
kchadha
cde801bc17
Merge pull request #1075 from kchadha/load-costume-no-metadata
Load costume without metadata
2018-04-23 17:52:04 -04:00
Eric Rosenbaum
2590cf53e7 wip 2018-04-23 17:49:01 -04:00
Andrew Sliwinski
eeab0695d6
Merge pull request #1079 from thisandagain/bugfix/1072
Various refinements to Video Motion extension
2018-04-23 17:04:17 -04:00
Paul Kaplan
f118e912bf
Merge pull request #1081 from paulkaplan/fix-stage-clicks
Activate stage click hats if no other sprites are clicked
2018-04-23 14:47:26 -04:00
Paul Kaplan
978906d926 Activate stage click hats if no other clicks are hit.
Also check the bounds before to make sure clicks are inside the stage bounds.
2018-04-23 14:25:58 -04:00
Andrew Sliwinski
add879ab0a Enable video layer when loading extension. Resolves GH-1072 2018-04-23 13:03:56 -04:00
Andrew Sliwinski
ced4de8995 Flip sort order of sensing object menu in video motion extension. Resolves GH-1074 2018-04-23 13:00:20 -04:00
Andrew Sliwinski
717ac46bbd Reorder video motion blocks. Resolves GH-1073 2018-04-23 12:57:14 -04:00
Karishma Chadha
af7ed61016 Fix bitmap support. In Scratch 3.0, we are defaulting to bitmapResolution = 2 for all costumes. 2018-04-22 21:22:03 -04:00
Karishma Chadha
e1d9df3b1b Undo an unnecessary change from the last commit. 2018-04-20 18:11:14 -04:00
Karishma Chadha
dfa3408add Update sound dataFormat after editing 2018-04-20 14:13:57 -04:00
Andrew Sliwinski
968643ed16
Merge pull request #1069 from thisandagain/bugfix/underscore
Replace extension delimiter with '_'
2018-04-20 11:46:25 -04:00
Paul Kaplan
0f16e2fe65
Merge pull request #1070 from paulkaplan/fix-bubbles
Fix drag and empty costume bugs with say bubbles
2018-04-20 11:43:15 -04:00
Andrew Sliwinski
192084e0e7 Do not load extension if prefix is undefined 2018-04-20 11:36:16 -04:00
Andrew Sliwinski
fd97892eb1 Remove console log 2018-04-20 10:58:35 -04:00
Andrew Sliwinski
57b7e9916d Resolve issue with SB2 import 2018-04-20 10:58:03 -04:00
Andrew Sliwinski
645a42b843 Address feedback from review 2018-04-20 10:49:06 -04:00
Paul Kaplan
393b5d54df Handle positioning bubbles for empty costumes 2018-04-20 10:45:54 -04:00
Paul Kaplan
54d5be8bba Do not bother repositioning bubbles for invisible sprites 2018-04-20 10:45:34 -04:00
Paul Kaplan
9782c137bb Use the new general target visual change for updating bubbles. 2018-04-20 10:44:55 -04:00
Paul Kaplan
c36ff056a2 Add new event for all visual target changes, not just moving. 2018-04-20 10:43:45 -04:00
Andrew Sliwinski
9ec3d41ea1 Clarify 'core' list for SB2 import 2018-04-20 10:34:17 -04:00
Andrew Sliwinski
f86cad3305 Replace extension delimeter with '_' 2018-04-20 07:54:02 -04:00
Karishma Chadha
54b52ba96c Use calculated rotation center from renderer when rotation center is not provided with the costume being loaded. 2018-04-20 00:04:08 -04:00
Karishma Chadha
d6f28f2266 Correct what is being passed into scratch-render if some metadata (rotationCenter, bitmapResolution) is missing. 2018-04-18 14:21:29 -04:00
kchadha
47a2d76a14
Merge pull request #1060 from kchadha/fix-sound-metadata
Update sound metadata and retrieve mp3 correctly from storage
2018-04-17 11:02:56 -04:00
Michael "Z" Goddard
d04d6b2c6a
Revert "Revert "Push reported""
This reverts commit 107adad647.
2018-04-16 13:21:53 -04:00
Paul Kaplan
5b9dc4df77
Merge pull request #1061 from kchadha/video-transparency-save-load-fix
Fix video transparency save/load issue.
2018-04-13 13:58:19 -04:00
Karishma Chadha
bd0bcb9395 video transparency should be a number. 2018-04-13 13:47:05 -04:00
Paul Kaplan
d42135a40a
Merge pull request #1057 from thisandagain/bugfix/1056
Rename pen 'clear' to 'erase all'
2018-04-13 13:26:54 -04:00
Paul Kaplan
aff8f93999 Change displayed name to Video Motion 2018-04-13 12:52:46 -04:00
Karishma Chadha
e71e51866f Fix typo. 2018-04-13 11:28:04 -04:00
Karishma Chadha
dca9270730 Use sound returned from audio engine to set sample rate and sample count since the sound gets resampled by the audio engine. Also, check for an mp3 format in deserialize assets, and otherwise default to wav. 2018-04-13 11:20:16 -04:00
Paul Kaplan
0838f6c875 Remove duplicate play 2018-04-13 11:12:44 -04:00
Paul Kaplan
c46d1157fa Slicing array buffers with no args throws on Safari 2018-04-13 11:08:32 -04:00
Paul Kaplan
71333765c9 Use new mediaDevices API for getUserMedia 2018-04-13 11:08:32 -04:00
Andrew Sliwinski
6f80403e8a Rename pen 'clear' to 'erase all'. Resolves GH-1056 2018-04-13 10:53:13 -04:00
kchadha
0e0d09c235
Merge pull request #1042 from mzgoddard/target-video-state
Configure video device with stage video settings
2018-04-13 09:12:25 -04:00
Andrew Sliwinski
3ac2922a07
Merge pull request #1028 from mzgoddard/motion-detect-4
Motion detect 4
2018-04-13 08:16:34 -04:00
kchadha
8739a524eb
Merge pull request #1031 from kchadha/block_serialization_compression
Block serialization compression
2018-04-11 19:17:42 -04:00
kchadha
7311b103fa
Merge pull request #1045 from kchadha/broadcast-message-shadow-fix
Fix import of broadcast block empty string obscured shadow import
2018-04-11 18:13:20 -04:00
Michael "Z" Goddard
8ebd659094
Use string enumerated values for videoSensing sensor block 2018-04-11 10:30:58 -04:00
Karishma Chadha
6c538d0659 Sounds should still get loaded from storage even if there is not an audio engine present. This is analagous to costumes getting loaded even if there is no renderer present. 2018-04-11 10:28:22 -04:00
Michael "Z" Goddard
cef9f58c2a
Set video device state and transparency from values in stage
Set the video device state and transparency to the values in the stage target
when the video sensing extension is loaded. Changing video state and
transparency from the extension's blocks will also store that setting to the
stage target.
2018-04-11 10:15:53 -04:00
Michael "Z" Goddard
b9911332c7
Default stage.videoState to ON
Set to ON, adding a video extension when a user selects a video extension in
the gui, the video extension will use stage.videoState to turn on the video
device. Adding a video extension as part of loading a project, the stage's
videoState will be set to the stored value in the project's saved data, and the
extension will set the video device's state with that saved value.
2018-04-11 10:15:52 -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
Paul Kaplan
f23b5a9625
Merge pull request #1041 from paulkaplan/fix-clone-drag
Only select the original target after a drag.
2018-04-11 10:04:25 -04:00
Paul Kaplan
64c2d1f7b1
Merge pull request #1038 from paulkaplan/skin-size
Attach the costume size to the costume when loaded and modified
2018-04-11 09:30:02 -04:00
Paul Kaplan
2478f2ff8b
Merge pull request #1040 from paulkaplan/filter-dragging-touching
Filter out dragging targets from touching sprite check.
2018-04-11 09:17:52 -04:00
Paul Kaplan
4a9adcc3d9 Make stopDrag deal with bare targets and add tests 2018-04-11 09:12:43 -04:00
Karishma Chadha
6f3c84bf77 Ensure we are serializing file extensions for costumes and sounds as lower case. 2018-04-10 17:01:31 -04:00
Karishma Chadha
585a46f334 Add one last pass to block serialization to remove orphan primitive shadow blocks. 2018-04-10 16:55:27 -04:00
Karishma Chadha
0df937f5c0 Adding a bit more clarification to comment. 2018-04-10 16:53:07 -04:00
Karishma Chadha
18c1a20eaa Remove unnecessary comments. 2018-04-10 15:44:32 -04:00
Karishma Chadha
2f53996c9c Switch video flipped string back to hyphen. 2018-04-10 15:43:29 -04:00
Chris Willis-Ford
631d7fb4de
Merge pull request #1021 from cwillisf/features-for-control-extension
Features for control extension
2018-04-10 12:17:43 -07:00
Karishma Chadha
a4d9ff9266 Fix issue with importing broadcast block with obscured empty string shadow. 2018-04-10 15:16:18 -04:00
Michael "Z" Goddard
461d523729
Add block comments to videoSensing.videoToggle and setVideoTransparency 2018-04-10 14:34:27 -04:00
Michael "Z" Goddard
d4037808a7
Add VideoState enum to Scratch3VideoSensingBlocks 2018-04-10 14:34:27 -04:00
Paul Kaplan
da539ea6cd Only select the original target after a drag.
This allows you to still drag clones around, but when you stop dragging,
the original sprite gets selected.
2018-04-10 14:31:49 -04:00
Paul Kaplan
92d00b5944 Filter out dragging targets from touching sprite check.
This introduces an asymmetry that matches the Scratch 2 behavior, that
is, a sprite that is being dragged can detect other sprites using
touching <sprite>, but cannot be detected by other sprites while it is
being dragged.
2018-04-10 14:20:51 -04:00
Corey Frang
fe7aa8a78f
Add @param documentation for the frameInfo descriptor param 2018-04-10 13:59:23 -04:00
Corey Frang
a86202b8e2
make onError a prototype method 2018-04-10 13:59:23 -04:00
Corey Frang
0180964333
Simplify setup method promise, add onError 2018-04-10 13:59:23 -04:00
Corey Frang
89dd4720a4
store ghost state so previews will use last value whenever setup 2018-04-10 13:59:23 -04:00
Corey Frang
d0a71dcaf9
store the ghost effect in case preview is setup after it was last set 2018-04-10 13:59:23 -04:00
Corey Frang
e20723994f
fix sb2 conversion to load into correct VIDEO_STATE 2018-04-10 13:59:22 -04:00
Corey Frang
9cd5e4da2b
Reduce indentation waterfall 2018-04-10 13:59:22 -04:00
Corey Frang
f3a956af2b
add enabled state tracking, disable state waits for setup complete 2018-04-10 13:59:22 -04:00
Corey Frang
ce03e978dc
stop the track in the "on-off" scenario 2018-04-10 13:59:22 -04:00
Corey Frang
825ff22fa4
Guard against some issues that could happen with enable/disable video quickly 2018-04-10 13:59:22 -04:00
Corey Frang
f19ae793c0
enableVideo - get rid of "requests" 2018-04-10 13:59:22 -04:00
Corey Frang
efa6b3a069
stop track 2018-04-10 13:59:22 -04:00
Corey Frang
46b4ef4d80
Use a global mirror state 2018-04-10 13:59:21 -04:00
Corey Frang
90166dc732
Add extra control blocks for video transparency and on/off control 2018-04-10 13:59:21 -04:00
Corey Frang
e4bd9cf6b2
Move methods around to sort the public interface nearer the top 2018-04-10 13:57:54 -04:00
Corey Frang
992e884668
Make disableVideo a public method 2018-04-10 13:57:54 -04:00
Corey Frang
d512042415
Add set preview ghost 2018-04-10 13:57:54 -04:00
Corey Frang
da05e673fa
_singleSetup makes more sense 2018-04-10 13:57:54 -04:00
Corey Frang
c10696f88c
Rewrite the setup/disable process from review comments 2018-04-10 13:57:53 -04:00
Corey Frang
eef88f6c2d
First draft of video IO device 2018-04-10 13:57:53 -04:00
Michael "Z" Goddard
cd7e03f0f6
Merge pull request #1019 from mzgoddard/motion-detect-3
Test VideoMotion and VideoSensing blocks
2018-04-10 13:06:58 -04:00
Paul Kaplan
89eb1ce39b Set the costume asset size when a costume is loaded or modified. 2018-04-10 09:51:29 -04:00
Paul Kaplan
f29482957c Change getSkinSize to getCurrentSkinSize for renderer update. 2018-04-10 09:50:18 -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
kchadha
d177f4cd0c
Merge pull request #1033 from towerofnix/counter-vm
Implement counter blocks
2018-04-09 13:55:35 -04:00
kchadha
b794e19c31
Merge pull request #1032 from towerofnix/while-vm
Implement "while" block
2018-04-09 13:48:08 -04:00
Florrie
797d16be26 Implement counter blocks 2018-04-07 16:02:49 -03:00
Florrie
c57d0c94eb Add implementation for while 2018-04-07 14:04:00 -03:00
Florrie
27d053acff Add doWhile -> control_while to specmap 2018-04-07 14:04:00 -03:00
Michael "Z" Goddard
d3ff8b5eed
Test VideoMotion and VideoSensing blocks
- Add pngjs dev dependency to read test images
2018-04-06 18:09:50 -04:00
Karishma Chadha
9ce6040b0f Fix lint error... 2018-04-06 16:57:52 -04:00
Karishma Chadha
1861b5a262 Can't have hyphens in identifiers. 2018-04-06 16:51:46 -04:00
Karishma Chadha
e92db8fa1e Don't really need level 9 compression. 2018-04-06 15:47:24 -04:00
Karishma Chadha
44b1a2f798 List limit should apply to insert block as well. 2018-04-06 15:31:10 -04:00
Karishma Chadha
5d46f8de99 Not providing a zip to deserialize asset functions is not an error. 2018-04-06 15:04:03 -04:00
Michael "Z" Goddard
0591b475f2
Merge pull request #1020 from gnarf/sb2-spec-when-video-motion
Allow specmap to have methods to branch into multiple sb3 opcodes
2018-04-06 14:28:17 -04:00
Eric Rosenbaum
25f1c1a5e6
Merge pull request #1017 from ericrosenbaum/bugfix/clones-inherit-instrument
Clones inherit music custom state
2018-04-06 13:38:03 -04:00
Karishma Chadha
8c1e6095cb Remove code that was temporarily accomodating for the old version of the default project in gui. 2018-04-06 11:33:44 -04:00
Karishma Chadha
4ec25b32b1 Code cleanup and commenting. 2018-04-06 11:33:44 -04:00
Karishma Chadha
9892dac904 Custom state (e.g. tempo, volume, video related state) should show up in a target that has been 'flattened' via JSON.stringify. 2018-04-06 11:33:44 -04:00
Karishma Chadha
2dbcdc2244 The stage should always be called 'Stage'. 2018-04-06 11:33:44 -04:00
Karishma Chadha
b436b5fd82 Add a limit to the number of items a list can have. No-op on 'addToList' block if trying to add to a list that is already at the limit. 2018-04-06 11:33:44 -04:00
Karishma Chadha
6c0d257a63 Deserialize tempo, volume, and video related state. 2018-04-06 11:33:44 -04:00
Karishma Chadha
4dd83cf717 Todo comment for clarity... 2018-04-06 11:33:44 -04:00
Karishma Chadha
118c6f0356 Use bitmap asset type and 'png' for various costume formats. 2018-04-06 11:33:44 -04:00
Karishma Chadha
d61ea23e1e Deserialize compressed primitives. 2018-04-06 11:33:44 -04:00
Karishma Chadha
21d60604ac Some block serialization compression -- compress primitives. This is a WIP since we don't deserialize blocks serialized in this way. 2018-04-06 11:33:44 -04:00
Karishma Chadha
334058b081 Block and variable compression. No need to serialize uid of block and shadow if they are the same, reduce duplication of information. 2018-04-06 11:33:44 -04:00
kchadha
4b62a938c4
Merge pull request #1000 from kchadha/deserialize-assets-in-sb2
Deserialize sb2 assets while loading local .sb2.
2018-04-06 11:33:00 -04:00
Ray Schamp
efb1bdb1ea Remove video motion icon until we have one 2018-04-06 09:55:16 -04:00
Michael "Z" Goddard
91747fd229
Add back missing Scratch3VideoSensingBlocks.INTERVAL
The INTERVAL time defines how often to analyze a frame. Without the value the
test whether a frame should be analyzed will always be false.
2018-04-05 17:47:07 -04:00
Corey Frang
78199c41a5 Allow specmap to have methods to branch into multiple sb3 opcodes 2018-04-05 15:39:41 -04:00
Christopher Willis-Ford
3be16eddb1 Add code to load 'core' extensions 2018-04-05 12:20:03 -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
Eric Rosenbaum
2a90e5868d Fix runtime scope and unit test 2018-04-05 15:01:52 -04:00
Ray Schamp
41955913aa
Merge pull request #1007 from mzgoddard/motion-detect-2
Motion detect 2
2018-04-05 11:59:59 -04:00
Eric Rosenbaum
88b13e218d Clones inherit music custom state 2018-04-05 11:27:54 -04:00
Christopher Willis-Ford
defdd42c47 Add TargetType enum for use by/with extensions 2018-04-04 23:45:26 -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
Eric Rosenbaum
21ae14c499
Merge pull request #1014 from ericrosenbaum/bugfix/video-state
Import and store video state
2018-04-04 19:59:14 -04:00
Eric Rosenbaum
5dc8e51c6d Import and store video state 2018-04-03 16:36:58 -04:00
Michael "Z" Goddard
d4bffcbddb
Rename playground/motion.html to video-sensing.html 2018-04-03 16:19:52 -04:00
Michael "Z" Goddard
6d2c29530f
Document VideoMotionView 2018-04-03 16:19:52 -04:00
Michael "Z" Goddard
9a2e937271
Document VideoMotion class
- Rename video_sensing/lib.js to video_sensing/library.js
2018-04-03 16:19:52 -04:00
Michael "Z" Goddard
a32b15a8f9
Add VideoSensing math module
- motionVector takes motion component and returns a 2d vector
- scratchAtan2 takes a y and x value and returns an angle in degrees
  referencing Scratch's coordinate system
2018-04-03 16:19:52 -04:00
Michael "Z" Goddard
b46c956203
Comment items in Scratch3VideoSensingBlocks 2018-04-03 16:19:51 -04:00
Michael "Z" Goddard
c291a04cc7
Add file comment block to video_sensing/debug.js 2018-04-03 16:19:51 -04:00
Michael "Z" Goddard
e65b7985cb
Add whenMotionGreaterThan hat block to video sensing ext 2018-04-03 16:19:51 -04:00
Michael "Z" Goddard
cfd74a7c7f
Add checkboxes for each video sensing debug view 2018-04-03 16:19:51 -04:00
Michael "Z" Goddard
b012d60689
Add video sensing debug C_CELL and AB_CELL views
- Rename UV to UV_CELL, UV cannot be rendered in a non-cell format

Modify C and AB views as well to better represent in color the work being done.
If you watch the debug views with XY_CELL, AB_CELL, C_CELL, and UV_CELL you can
see how AB_CELL and C_CELL affect UV_CELL in similar color patterns.
2018-04-03 16:19:51 -04:00
Michael "Z" Goddard
0a58a6d806
Merge pull request #1001 from mzgoddard/motion-detect
Motion detect
2018-04-03 16:19:26 -04:00
Florrie
b861c78086 Implement 'get item # of (thing) in (list)' 2018-03-31 13:25:50 -03:00
Michael "Z" Goddard
f3d19dc1a1
Use videoSensing extension for sb2 senseVideoMotion 2018-03-29 19:02:07 -04:00
Michael "Z" Goddard
c206dc3241
Add motion playground page for debugging video sensing 2018-03-29 19:02:07 -04:00
Paul Kaplan
2d9bd92140
Merge pull request #930 from ericrosenbaum/bugfix/loudness-performance
Only measure loudness once per step
2018-03-29 16:27:10 -04:00
Michael "Z" Goddard
3c473f6ba8
Translate scratch 2 video sensing into scratch 3 extension
- Add videoSensing extension to extension-manager
2018-03-29 15:15:11 -04:00
kchadha
51306e3492
Merge pull request #963 from towerofnix/foreach-vm
Implement for-each block
2018-03-28 10:52:14 -04:00
Karishma Chadha
b8e67a7727 Hookup sb2 import code to deserialize assets from local sb2 file. 2018-03-25 18:14:30 -04:00
Paul Kaplan
13641297fd
Merge pull request #996 from paulkaplan/fix-bubble-bounds
Position the speech bubble more tightly.
2018-03-23 14:36:52 -04:00
Paul Kaplan
ea534b35ea Position the speech bubble more tightly. 2018-03-23 10:51:19 -04:00
kchadha
dbc7b9597f
Merge pull request #979 from kchadha/serialization-cleanup
SB3 Serialization & Load Project
2018-03-23 10:11:49 -04:00
Paul Kaplan
a27ed888d2
Merge pull request #992 from paulkaplan/stage-clicked
Make "when clicked" blocks  target dependent.
2018-03-23 09:20:22 -04:00
Chris Willis-Ford
9dc3df1fda
Merge pull request #994 from cwillisf/looks-extension-support
Looks extension support
2018-03-22 15:16:21 -07:00
Florrie
1db4a2c7a7 Compatibility implementation 2018-03-22 18:55:36 -03:00
Eric Rosenbaum
4e3c5c7f2e
Merge pull request #991 from ericrosenbaum/bugfix/clones-share-activesoundplayers
Clones share their parent’s activeSoundPlayers object
2018-03-22 16:49:04 -04:00
Karishma Chadha
c4ad76eef1 Turns out ArrayBuffers are not views of themselves. 2018-03-22 16:19:36 -04:00
Karishma Chadha
3a4f620318 Check if loadProject input is any typed array using ArrayBuffer.isView. This allows us to pass a project's asset.data (from storage) directly instead of calling toString on it first. 2018-03-22 14:04:58 -04:00