1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//! EditorHook: what each panel's actions do, one module per surface. A panel's
//! layout half reports what was clicked (`editor/*_panel.rs`); the module here
//! carries that report out. Most of them mutate the working authored entry list
//! and commit it the way every other edit commits (`hook/edits.rs`: the undo
//! snapshot, the live-preview rebuild, and SAVE's atomic write), so a panel
//! action is never a special case of persistence.
//!
//! Two of them mutate no entry and answer a console command instead: `select`
//! resolves /select into a new selection, and `export` compiles the working
//! entries to write one named mesh out as glb.
//!
//! One module per surface: `asset_tree`, `behavior`, `character_shape`,
//! `console`, `content`, `export`, `import`, `lighting`, `map`, `overrides`,
//! `palette`, `select`, `shaders` (with its `shader_edits`, `shader_form` and
//! `shader_source`), `story`, `variables` and `worlds`.
//!
//! Each panel keeps its session state in a `*_state` sibling (`assets_state`,
//! `behavior_state`, `console_state`, `content_state`, `import_state`,
//! `lighting_state`, `map_state`, `palette_state`, `shape_state`,
//! `shaders_state`, `story_state`, `templates_state`, `variables_state` and
//! `worlds_state`), a plain struct with the resets that touch nothing else.
//! Whether a panel is open is the hook's (`EditorHook::open`), not its state's.
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub