simvx.editor.state¶
Editor State — Central state manager for the editor.
Module Contents¶
Classes¶
Central state manager holding all editor state. |
API¶
- class simvx.editor.state.EditorState[source]¶
Bases:
simvx.core.file_state.FileStateMixin,simvx.editor.scene_file_ops.SceneFileOps,simvx.editor.script_ops.ScriptOps,simvx.editor.node_ops.NodeOpsCentral state manager holding all editor state.
Acts as the single source of truth for the editor — panels read from and write to this object, coordinating via signals.
Scene-specific state (edited_scene, selection, undo_stack, editor_camera, viewport_mode, _modified) is delegated to the active scene tab via WorkspaceTabs. Fallback objects are used when no scene tab is active.
Operations are organised into mixins:
SceneFileOps — new/open/save scene, file dialogs, recent files
ScriptOps — attach/detach/create/save scripts
NodeOps — node CRUD, placement mode, scene title
Initialization
- property edited_scene: simvx.core.SceneTree¶
- property current_scene_path: pathlib.Path | None¶
- property selection: simvx.core.Selection¶
- property undo_stack: simvx.core.UndoStack¶
- property editor_camera: simvx.core.EditorCamera3D¶
- property viewport_mode: str¶
- property project_root: str¶
- property modified: bool¶
- open_scene(path: str | pathlib.Path)¶
- save_scene(path: str | pathlib.Path | None = None)¶
- set_script_text(text: str)¶
- attach_script(node: simvx.core.Node, path: str)¶
- detach_script(node: simvx.core.Node)¶
- create_script(node: simvx.core.Node, template_name: str, class_name: str, rel_path: str) str | None¶
- get_scene_title() str¶
- find_node(path: str) simvx.core.Node | None¶
- rename_node(node: simvx.core.Node, new_name: str)¶
- set_node_property(node: simvx.core.Node, prop: str, value)¶
- add_node(node: simvx.core.Node, parent: simvx.core.Node | None = None)¶
- remove_node(node: simvx.core.Node)¶
- duplicate_node(node: simvx.core.Node) simvx.core.Node | None¶
- cancel_place_mode()¶
- place_node_at(x: float, y: float, parent: simvx.core.Node | None = None)¶