Skip to content

Conversation

@justin212407
Copy link
Member

Summary

This PR adds full support for disconnecting and dragging towers of bricks within the MusicBlocks‑v4 Masonry workspace. It wires up pointer events, updates the Recoil state, and ensures towers can be picked up, moved, and dropped as independent structures.

Key Features:

  • Brick disconnection: Added TowerModel.disconnectSubtree and handleBrickDisconnect to pick up a brick (and its subtree) as a new tower on drag‑out.

  • Tower utilities & traversal: Introduced getNodeChildren, getAllDescendants, and related helpers for nested, argument, and stacked node traversal.

  • Bounding‑box & layout fixes: Fixed edge cases in path‑based bounding‑box calculations and iteration logic through nested/stacked children, with new unit tests.

  • Workspace refactor & typing cleanup: Refactored canvas logic into WorkspaceView, updated imports, and replaced all any casts in drag handlers with precise MouseEvent typings.

Screenshots:

Recording.2025-07-30.144314.mp4

saumyashahi and others added 15 commits July 23, 2025 12:50
@justin212407 justin212407 added the gsoc Prospective task for GSoC label Jul 30, 2025
@justin212407 justin212407 changed the title GSoC/DMP Week 6: feat(masonry): Add tower disconnection and dragging of tower in Workspace GSoC/DMP Week 7-8: feat(masonry): Add tower disconnection and dragging of tower in Workspace Jul 30, 2025
@meganindya meganindya merged commit d5e53da into develop Aug 3, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gsoc Prospective task for GSoC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants