# {py:mod}`simvx.core.node` ```{py:module} simvx.core.node ``` ```{autodoc2-docstring} simvx.core.node :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`Node ` - ```{autodoc2-docstring} simvx.core.node.Node :summary: ``` * - {py:obj}`Timer ` - ```{autodoc2-docstring} simvx.core.node.Timer :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`log ` - ```{autodoc2-docstring} simvx.core.node.log :summary: ``` ```` ### API ````{py:data} log :canonical: simvx.core.node.log :value: > 'getLogger(...)' ```{autodoc2-docstring} simvx.core.node.log ``` ```` `````{py:class} Node(name: str = '', **kwargs) :canonical: simvx.core.node.Node ```{autodoc2-docstring} simvx.core.node.Node ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.node.Node.__init__ ``` ````{py:attribute} script_error_raised :canonical: simvx.core.node.Node.script_error_raised :value: > 'Signal(...)' ```{autodoc2-docstring} simvx.core.node.Node.script_error_raised ``` ```` ````{py:method} __init_subclass__(**kwargs) :canonical: simvx.core.node.Node.__init_subclass__ :classmethod: ```{autodoc2-docstring} simvx.core.node.Node.__init_subclass__ ``` ```` ````{py:property} name :canonical: simvx.core.node.Node.name :type: str ```{autodoc2-docstring} simvx.core.node.Node.name ``` ```` ````{py:property} process_mode :canonical: simvx.core.node.Node.process_mode :type: simvx.core.descriptors.ProcessMode ```{autodoc2-docstring} simvx.core.node.Node.process_mode ``` ```` ````{py:method} reset_error() -> None :canonical: simvx.core.node.Node.reset_error ```{autodoc2-docstring} simvx.core.node.Node.reset_error ``` ```` ````{py:method} add_child(node: simvx.core.node.Node) -> simvx.core.node.Node :canonical: simvx.core.node.Node.add_child ```{autodoc2-docstring} simvx.core.node.Node.add_child ``` ```` ````{py:method} remove_child(node: simvx.core.node.Node) :canonical: simvx.core.node.Node.remove_child ```{autodoc2-docstring} simvx.core.node.Node.remove_child ``` ```` ````{py:method} reparent(new_parent: simvx.core.node.Node) :canonical: simvx.core.node.Node.reparent ```{autodoc2-docstring} simvx.core.node.Node.reparent ``` ```` ````{py:method} get_node(path: str) -> simvx.core.node.Node :canonical: simvx.core.node.Node.get_node ```{autodoc2-docstring} simvx.core.node.Node.get_node ``` ```` ````{py:method} find_child(name: str, recursive: bool = False) -> simvx.core.node.Node | None :canonical: simvx.core.node.Node.find_child ```{autodoc2-docstring} simvx.core.node.Node.find_child ``` ```` ````{py:method} find(node_type: type) -> simvx.core.node.Node | None :canonical: simvx.core.node.Node.find ```{autodoc2-docstring} simvx.core.node.Node.find ``` ```` ````{py:method} find_all(node_type: type, recursive: bool = True) -> list :canonical: simvx.core.node.Node.find_all ```{autodoc2-docstring} simvx.core.node.Node.find_all ``` ```` ````{py:property} path :canonical: simvx.core.node.Node.path :type: str ```{autodoc2-docstring} simvx.core.node.Node.path ``` ```` ````{py:method} add_to_group(group: str) :canonical: simvx.core.node.Node.add_to_group ```{autodoc2-docstring} simvx.core.node.Node.add_to_group ``` ```` ````{py:method} remove_from_group(group: str) :canonical: simvx.core.node.Node.remove_from_group ```{autodoc2-docstring} simvx.core.node.Node.remove_from_group ``` ```` ````{py:method} is_in_group(group: str) -> bool :canonical: simvx.core.node.Node.is_in_group ```{autodoc2-docstring} simvx.core.node.Node.is_in_group ``` ```` ````{py:method} ready() -> None :canonical: simvx.core.node.Node.ready ```{autodoc2-docstring} simvx.core.node.Node.ready ``` ```` ````{py:method} enter_tree() -> None :canonical: simvx.core.node.Node.enter_tree ```{autodoc2-docstring} simvx.core.node.Node.enter_tree ``` ```` ````{py:method} exit_tree() -> None :canonical: simvx.core.node.Node.exit_tree ```{autodoc2-docstring} simvx.core.node.Node.exit_tree ``` ```` ````{py:method} process(dt: float) -> None :canonical: simvx.core.node.Node.process ```{autodoc2-docstring} simvx.core.node.Node.process ``` ```` ````{py:method} physics_process(dt: float) -> None :canonical: simvx.core.node.Node.physics_process ```{autodoc2-docstring} simvx.core.node.Node.physics_process ``` ```` ````{py:method} draw(renderer) -> None :canonical: simvx.core.node.Node.draw ```{autodoc2-docstring} simvx.core.node.Node.draw ``` ```` ````{py:method} input_event(event: simvx.core.events.InputEvent) -> None :canonical: simvx.core.node.Node.input_event ```{autodoc2-docstring} simvx.core.node.Node.input_event ``` ```` ````{py:method} input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.node.Node.input ```{autodoc2-docstring} simvx.core.node.Node.input ``` ```` ````{py:method} unhandled_input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.node.Node.unhandled_input ```{autodoc2-docstring} simvx.core.node.Node.unhandled_input ``` ```` ````{py:method} start_coroutine(gen: simvx.core.descriptors.Coroutine) -> simvx.core.descriptors.CoroutineHandle :canonical: simvx.core.node.Node.start_coroutine ```{autodoc2-docstring} simvx.core.node.Node.start_coroutine ``` ```` ````{py:method} stop_coroutine(gen_or_handle) :canonical: simvx.core.node.Node.stop_coroutine ```{autodoc2-docstring} simvx.core.node.Node.stop_coroutine ``` ```` ````{py:method} destroy() :canonical: simvx.core.node.Node.destroy ```{autodoc2-docstring} simvx.core.node.Node.destroy ``` ```` ````{py:attribute} queue_free :canonical: simvx.core.node.Node.queue_free :value: > None ```{autodoc2-docstring} simvx.core.node.Node.queue_free ``` ```` ````{py:property} tree :canonical: simvx.core.node.Node.tree :type: simvx.core.scene_tree.SceneTree ```{autodoc2-docstring} simvx.core.node.Node.tree ``` ```` ````{py:method} get_tree() -> simvx.core.scene_tree.SceneTree :canonical: simvx.core.node.Node.get_tree ```{autodoc2-docstring} simvx.core.node.Node.get_tree ``` ```` ````{py:method} __getitem__(key: str) :canonical: simvx.core.node.Node.__getitem__ ```{autodoc2-docstring} simvx.core.node.Node.__getitem__ ``` ```` ````{py:method} get_properties() -> dict[str, simvx.core.descriptors.Property] :canonical: simvx.core.node.Node.get_properties :classmethod: ```{autodoc2-docstring} simvx.core.node.Node.get_properties ``` ```` ````{py:attribute} get_settings :canonical: simvx.core.node.Node.get_settings :value: > None ```{autodoc2-docstring} simvx.core.node.Node.get_settings ``` ```` ````{py:method} __repr__() :canonical: simvx.core.node.Node.__repr__ ```` ````` `````{py:class} Timer(duration: float = 1.0, one_shot: bool = True, autostart: bool = False, **kwargs) :canonical: simvx.core.node.Timer Bases: {py:obj}`simvx.core.node.Node` ```{autodoc2-docstring} simvx.core.node.Timer ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.node.Timer.__init__ ``` ````{py:attribute} duration :canonical: simvx.core.node.Timer.duration :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.node.Timer.duration ``` ```` ````{py:attribute} one_shot :canonical: simvx.core.node.Timer.one_shot :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.node.Timer.one_shot ``` ```` ````{py:attribute} autostart :canonical: simvx.core.node.Timer.autostart :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.node.Timer.autostart ``` ```` ````{py:method} start(duration: float = 0) :canonical: simvx.core.node.Timer.start ```{autodoc2-docstring} simvx.core.node.Timer.start ``` ```` ````{py:method} stop() :canonical: simvx.core.node.Timer.stop ```{autodoc2-docstring} simvx.core.node.Timer.stop ``` ```` ````{py:property} stopped :canonical: simvx.core.node.Timer.stopped :type: bool ```{autodoc2-docstring} simvx.core.node.Timer.stopped ``` ```` ````{py:property} time_left :canonical: simvx.core.node.Timer.time_left :type: float ```{autodoc2-docstring} simvx.core.node.Timer.time_left ``` ```` ````{py:method} process(dt: float) :canonical: simvx.core.node.Timer.process ```` ````{py:attribute} script_error_raised :canonical: simvx.core.node.Timer.script_error_raised :value: > 'Signal(...)' ```` ````{py:method} __init_subclass__(**kwargs) :canonical: simvx.core.node.Timer.__init_subclass__ :classmethod: ```` ````{py:property} name :canonical: simvx.core.node.Timer.name :type: str ```` ````{py:property} process_mode :canonical: simvx.core.node.Timer.process_mode :type: simvx.core.descriptors.ProcessMode ```` ````{py:method} reset_error() -> None :canonical: simvx.core.node.Timer.reset_error ```` ````{py:method} add_child(node: simvx.core.node.Node) -> simvx.core.node.Node :canonical: simvx.core.node.Timer.add_child ```` ````{py:method} remove_child(node: simvx.core.node.Node) :canonical: simvx.core.node.Timer.remove_child ```` ````{py:method} reparent(new_parent: simvx.core.node.Node) :canonical: simvx.core.node.Timer.reparent ```` ````{py:method} get_node(path: str) -> simvx.core.node.Node :canonical: simvx.core.node.Timer.get_node ```` ````{py:method} find_child(name: str, recursive: bool = False) -> simvx.core.node.Node | None :canonical: simvx.core.node.Timer.find_child ```` ````{py:method} find(node_type: type) -> simvx.core.node.Node | None :canonical: simvx.core.node.Timer.find ```` ````{py:method} find_all(node_type: type, recursive: bool = True) -> list :canonical: simvx.core.node.Timer.find_all ```` ````{py:property} path :canonical: simvx.core.node.Timer.path :type: str ```` ````{py:method} add_to_group(group: str) :canonical: simvx.core.node.Timer.add_to_group ```` ````{py:method} remove_from_group(group: str) :canonical: simvx.core.node.Timer.remove_from_group ```` ````{py:method} is_in_group(group: str) -> bool :canonical: simvx.core.node.Timer.is_in_group ```` ````{py:method} ready() -> None :canonical: simvx.core.node.Timer.ready ```` ````{py:method} enter_tree() -> None :canonical: simvx.core.node.Timer.enter_tree ```` ````{py:method} exit_tree() -> None :canonical: simvx.core.node.Timer.exit_tree ```` ````{py:method} physics_process(dt: float) -> None :canonical: simvx.core.node.Timer.physics_process ```` ````{py:method} draw(renderer) -> None :canonical: simvx.core.node.Timer.draw ```` ````{py:method} input_event(event: simvx.core.events.InputEvent) -> None :canonical: simvx.core.node.Timer.input_event ```` ````{py:method} input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.node.Timer.input ```` ````{py:method} unhandled_input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.node.Timer.unhandled_input ```` ````{py:method} start_coroutine(gen: simvx.core.descriptors.Coroutine) -> simvx.core.descriptors.CoroutineHandle :canonical: simvx.core.node.Timer.start_coroutine ```` ````{py:method} stop_coroutine(gen_or_handle) :canonical: simvx.core.node.Timer.stop_coroutine ```` ````{py:method} destroy() :canonical: simvx.core.node.Timer.destroy ```` ````{py:attribute} queue_free :canonical: simvx.core.node.Timer.queue_free :value: > None ```` ````{py:property} tree :canonical: simvx.core.node.Timer.tree :type: simvx.core.scene_tree.SceneTree ```` ````{py:method} get_tree() -> simvx.core.scene_tree.SceneTree :canonical: simvx.core.node.Timer.get_tree ```` ````{py:method} __getitem__(key: str) :canonical: simvx.core.node.Timer.__getitem__ ```` ````{py:method} get_properties() -> dict[str, simvx.core.descriptors.Property] :canonical: simvx.core.node.Timer.get_properties :classmethod: ```` ````{py:attribute} get_settings :canonical: simvx.core.node.Timer.get_settings :value: > None ```` ````{py:method} __repr__() :canonical: simvx.core.node.Timer.__repr__ ```` `````