sugarlabs / musicblocks-v4

A complete overhaul of Music Blocks
http://www.sugarlabs.org/music-blocks/
GNU Affero General Public License v3.0
68 stars 96 forks source link

Masonry - Brick submodule checklist #413

Open meganindya opened 1 week ago

meganindya commented 1 week ago

Brick

Config

Code

Notes

Karan-Palan commented 1 week ago

I've compiled the properties for each brick type based on the configuration you provided. I’ve organized them into common and unique properties under each category.

(A) Instantiation Properties

Common Properties (Across All Brick Types):

Unique Properties:

  1. BrickBlock

    • args: Arguments for the brick, including labels and data types.
      • argId
      • argLabel
      • argTypeIncoming (enums)
    • connectAbove: Indicates if the brick can connect above.
    • connectBelow: Indicates if the brick can connect below.
  2. BrickData

    • dynamic: Indicates if the data is dynamic.
    • input: Type of input (e.g., boolean, number, string, options).
    • argTypeOutgoing
  3. BrickExpression

    • args: Arguments for the brick, including labels and data types.
    • argTypeOutgoing
  4. BrickStatement

    • args: Arguments for the brick, including labels and data types.
    • connectAbove: Indicates if the brick can connect above.
    • connectBelow: Indicates if the brick can connect below.

(B) Input State Properties

Common Properties (Across All Brick Types):

Unique Properties:

  1. BrickBlock

    • argExtents (map):
      • argLengthX (optional)
      • argLengthY
    • folded: Boolean indicating if the brick is folded.
  2. BrickExpression

    • argExtents (map):
      • argLengthX (optional)
      • argLengthY

(C) Output State Properties

Common Properties (Across All Brick Types):

(D) Connection Point Properties

Common Connection Points (Across All Brick Types):

Unique Properties:

  1. BrickBlock

    • connectionPoints:
      • Top
      • Bottom
      • TopInner
      • ArgsIncoming (already common)
  2. BrickData

    • connectionPoints:
      • ArgsOutgoing (already common)
  3. BrickExpression

    • connectionPoints:
      • ArgsIncoming (already common)
      • ArgsOutgoing (already common)
  4. BrickStatement

    • connectionPoints:
      • ArgsOutgoing (already common)

I will proceed with integrating these properties into the respective classes and updating the factory and warehouse modules accordingly.

Let me know if there are any changes you'd like to see or if anything else needs to be addressed.

Karan-Palan commented 1 week ago

Updated Abstract Classes

1. BrickModel (Base Class)

2. BrickModelArgument

3. BrickModelInstruction

4. BrickModelData

5. BrickModelExpression

6. BrickModelStatement

7. BrickModelBlock