# {py:mod}`simvx.editor.state` ```{py:module} simvx.editor.state ``` ```{autodoc2-docstring} simvx.editor.state :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`EditorState ` - ```{autodoc2-docstring} simvx.editor.state.EditorState :summary: ``` ```` ### API `````{py:class} EditorState() :canonical: simvx.editor.state.EditorState Bases: {py:obj}`simvx.core.file_state.FileStateMixin` ```{autodoc2-docstring} simvx.editor.state.EditorState ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.editor.state.EditorState.__init__ ``` ````{py:property} edited_scene :canonical: simvx.editor.state.EditorState.edited_scene :type: simvx.core.SceneTree ```{autodoc2-docstring} simvx.editor.state.EditorState.edited_scene ``` ```` ````{py:property} current_scene_path :canonical: simvx.editor.state.EditorState.current_scene_path :type: pathlib.Path | None ```{autodoc2-docstring} simvx.editor.state.EditorState.current_scene_path ``` ```` ````{py:property} selection :canonical: simvx.editor.state.EditorState.selection :type: simvx.core.Selection ```{autodoc2-docstring} simvx.editor.state.EditorState.selection ``` ```` ````{py:property} undo_stack :canonical: simvx.editor.state.EditorState.undo_stack :type: simvx.core.UndoStack ```{autodoc2-docstring} simvx.editor.state.EditorState.undo_stack ``` ```` ````{py:property} editor_camera :canonical: simvx.editor.state.EditorState.editor_camera :type: simvx.core.EditorCamera3D ```{autodoc2-docstring} simvx.editor.state.EditorState.editor_camera ``` ```` ````{py:property} viewport_mode :canonical: simvx.editor.state.EditorState.viewport_mode :type: str ```{autodoc2-docstring} simvx.editor.state.EditorState.viewport_mode ``` ```` ````{py:property} project_root :canonical: simvx.editor.state.EditorState.project_root :type: str ```{autodoc2-docstring} simvx.editor.state.EditorState.project_root ``` ```` ````{py:property} modified :canonical: simvx.editor.state.EditorState.modified :type: bool ```{autodoc2-docstring} simvx.editor.state.EditorState.modified ``` ```` ````{py:method} new_scene(root_type: type = Node) :canonical: simvx.editor.state.EditorState.new_scene ```{autodoc2-docstring} simvx.editor.state.EditorState.new_scene ``` ```` ````{py:method} open_scene(path: str | pathlib.Path) :canonical: simvx.editor.state.EditorState.open_scene ```{autodoc2-docstring} simvx.editor.state.EditorState.open_scene ``` ```` ````{py:method} save_scene(path: str | pathlib.Path | None = None) :canonical: simvx.editor.state.EditorState.save_scene ```{autodoc2-docstring} simvx.editor.state.EditorState.save_scene ``` ```` ````{py:method} play_scene() :canonical: simvx.editor.state.EditorState.play_scene ```{autodoc2-docstring} simvx.editor.state.EditorState.play_scene ``` ```` ````{py:method} pause_scene() :canonical: simvx.editor.state.EditorState.pause_scene ```{autodoc2-docstring} simvx.editor.state.EditorState.pause_scene ``` ```` ````{py:method} stop_scene() :canonical: simvx.editor.state.EditorState.stop_scene ```{autodoc2-docstring} simvx.editor.state.EditorState.stop_scene ``` ```` ````{py:method} set_script_text(text: str) :canonical: simvx.editor.state.EditorState.set_script_text ```{autodoc2-docstring} simvx.editor.state.EditorState.set_script_text ``` ```` ````{py:method} attach_script(node: simvx.core.Node, path: str) :canonical: simvx.editor.state.EditorState.attach_script ```{autodoc2-docstring} simvx.editor.state.EditorState.attach_script ``` ```` ````{py:method} detach_script(node: simvx.core.Node) :canonical: simvx.editor.state.EditorState.detach_script ```{autodoc2-docstring} simvx.editor.state.EditorState.detach_script ``` ```` ````{py:method} create_script(node: simvx.core.Node, template_name: str, class_name: str, rel_path: str) -> str | None :canonical: simvx.editor.state.EditorState.create_script ```{autodoc2-docstring} simvx.editor.state.EditorState.create_script ``` ```` ````{py:method} get_scene_title() -> str :canonical: simvx.editor.state.EditorState.get_scene_title ```{autodoc2-docstring} simvx.editor.state.EditorState.get_scene_title ``` ```` ````{py:method} find_node(path: str) -> simvx.core.Node | None :canonical: simvx.editor.state.EditorState.find_node ```{autodoc2-docstring} simvx.editor.state.EditorState.find_node ``` ```` ````{py:method} rename_node(node: simvx.core.Node, new_name: str) :canonical: simvx.editor.state.EditorState.rename_node ```{autodoc2-docstring} simvx.editor.state.EditorState.rename_node ``` ```` ````{py:method} set_node_property(node: simvx.core.Node, prop: str, value) :canonical: simvx.editor.state.EditorState.set_node_property ```{autodoc2-docstring} simvx.editor.state.EditorState.set_node_property ``` ```` ````{py:method} add_node(node: simvx.core.Node, parent: simvx.core.Node | None = None) :canonical: simvx.editor.state.EditorState.add_node ```{autodoc2-docstring} simvx.editor.state.EditorState.add_node ``` ```` ````{py:method} remove_node(node: simvx.core.Node) :canonical: simvx.editor.state.EditorState.remove_node ```{autodoc2-docstring} simvx.editor.state.EditorState.remove_node ``` ```` ````{py:method} duplicate_node(node: simvx.core.Node) -> simvx.core.Node | None :canonical: simvx.editor.state.EditorState.duplicate_node ```{autodoc2-docstring} simvx.editor.state.EditorState.duplicate_node ``` ```` ````{py:method} enter_place_mode(node_class: type) :canonical: simvx.editor.state.EditorState.enter_place_mode ```{autodoc2-docstring} simvx.editor.state.EditorState.enter_place_mode ``` ```` ````{py:method} cancel_place_mode() :canonical: simvx.editor.state.EditorState.cancel_place_mode ```{autodoc2-docstring} simvx.editor.state.EditorState.cancel_place_mode ``` ```` ````{py:method} place_node_at(x: float, y: float, parent: simvx.core.Node | None = None) :canonical: simvx.editor.state.EditorState.place_node_at ```{autodoc2-docstring} simvx.editor.state.EditorState.place_node_at ``` ```` `````