Groups: objects of type "group" draw nothing; members carry the group's id in a new `group` field (groups nest). A hidden group hides everything in it (Doc::hidden_in_groups, skipped by the driver), a locked one locks it in the Studio. Removing a group moves its members up into its parent group. isokit check warns about members of missing groups. New `order` op: the whole object order at once (each id once), one undo step. Studio object list as a tree in the document order, front first: each group sits just after its members, so it draws as one block, and ground pieces higher in the list lie on top. Groups fold open and shut; every row has an eye and a lock (shown on hover or when set); a click on a group selects all of it, so a drag on the map moves it all. Group / Ungroup (Ctrl+G, Ctrl+Shift+G), Order up/down (Ctrl+] Ctrl+[, with Shift to the front / back), drag rows above, below or into a group. Group panel: name, zoom, ungroup, to front / back, lock, hide, delete with contents. MCP: group field in the object schema, order op, guidance. Tests: Rust 81 (ops: groups, order, removal; driver: nested hidden groups), Studio 131, web 100.
This commit is contained in:
1 parent
5ec164a633
commit
540b37020c
15 files changed
+573
-30
No files matched your search
@@ -168,6 +168,14 @@ spread within `r` of the object, each facing its rotation give or take 70°,
|
||||
each its own sprite. Flocks of birds, butterflies and bees use `swim` with a
|
||||
`shape`.
|
||||
|
||||
## Groups and the drawing order
|
||||
|
||||
Objects of type `group` are never passed to scripts (they draw nothing), nor is anything inside a
|
||||
hidden group (`Doc::hidden_in_groups`); prefabs never see the `group` field's effect. The order of
|
||||
`scene.json` is the drawing order of the `ground` layer (unsorted): later ground pieces lie on
|
||||
top. Sorted layers ignore it except for ties. The Studio keeps each group's members just before
|
||||
the group object (`tree`, `flatten` in studio.js) and sends tree edits as one `order` op.
|
||||
|
||||
## Routes
|
||||
|
||||
`routes.rhai` (`route` prefab, meta `shape: "path"`: the Studio draws it point by point and
|
||||
|
||||
Reference in new issue
Block a user