Open
Description
Extensionification!
Goals
- All blocks in Scratch 3.0 should be entirely defined within
scratch-vm
. Adding a new block should not require modifications inscratch-gui
orscratch-blocks
. - All blocks in Scratch 3.0 should be implemented in the same way. We should not maintain two (or more) different ways to define blocks.
- The extension system should be enhanced such that it becomes powerful enough to implement every existing Scratch 3.0 block.
Tasks
- Supporting features
- Extensions should be able to place buttons in the toolbox
- Extension blocks should refresh when changing targets
- Extension blocks should refresh on certain actions (create/update/delete variable, list, procedure, message, etc.)
- Extensionified categories can be interleaved with categories defined in
scratch-gui
'smakeToolboxXML
- Serialization
- Existing SB3 files, including those containing variables, lists, or custom procedures, can be loaded correctly when those categories are extensionified.
- An SB3 file saved with extensionified variables, lists, or custom procedures can be loaded correctly in an older editor (esp. Scratch Desktop).
- Categories
- Motion
- Looks
- Sound
- Events (including
broadcast _
& friends) - Control (including
stop _
) - Sensing (including
_ of _
) - Operators
- Variables
- My Blocks