Skip to content

Extensionification: All blocks should be implemented using extension system #2120

Open
@cwillisf

Description

@cwillisf

Extensionification!

Goals

  • All blocks in Scratch 3.0 should be entirely defined within scratch-vm. Adding a new block should not require modifications in scratch-gui or scratch-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's makeToolboxXML
  • 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

Metadata

Metadata

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions