simvx.ide.panels.debug_panel¶

Debug panel – toolbar, variables, call stack, and breakpoints tabs.

Module Contents¶

Classes¶

DebugToolbar

Horizontal bar of debug action buttons.

VariablesTab

TreeView showing variable scopes with expandable nested objects.

CallStackTab

List of stack frames with click-to-navigate.

WatchTab

Watch expressions tab – evaluate expressions during debug pauses.

BreakpointsTab

List of all breakpoints across files with click-to-navigate.

DebugPanel

Complete debug panel with toolbar and tabbed sub-panels.

Data¶

log

API¶

simvx.ide.panels.debug_panel.log[source]¶

‘getLogger(…)’

class simvx.ide.panels.debug_panel.DebugToolbar(**kwargs)[source]¶

Bases: simvx.core.ui.containers.HBoxContainer

Horizontal bar of debug action buttons.

Initialization

set_state(state: str)[source]¶

Enable/disable buttons based on debug state (idle|running|stopped).

refresh_theme()[source]¶

Re-apply theme colours to all toolbar buttons.

draw(renderer)[source]¶
alignment¶

‘Property(…)’

get_minimum_size() simvx.core.math.types.Vec2¶
separation¶

‘Property(…)’

ready()¶
add_child(node)¶
remove_child(node)¶
mark_layout_dirty()¶
process(dt: float)¶
size_x¶

‘Property(…)’

size_y¶

‘Property(…)’

property size: simvx.core.math.types.Vec2¶
touch_mode: str¶

‘mouse’

property theme: simvx.core.ui.types.Theme | None¶
property mouse_over: bool¶
property focused: bool¶
property disabled: bool¶
get_theme() simvx.core.ui.types.Theme¶
queue_redraw()¶
get_rect() tuple[float, float, float, float]¶
get_global_rect() tuple[float, float, float, float]¶
is_point_inside(point) bool¶
set_anchor_preset(preset: simvx.core.ui.enums.AnchorPreset)¶
set_focus()¶
grab_focus()¶
release_focus()¶
has_focus() bool¶
focus_next_control()¶
focus_previous_control()¶
grab_mouse()¶
release_mouse()¶
set_drag_preview(control: simvx.core.ui.core.Control)¶
draw_popup(renderer)¶
is_popup_point_inside(point) bool¶
popup_input(event)¶
dismiss_popup()¶
z_index¶

‘Property(…)’

z_as_relative¶

‘Property(…)’

render_layer¶

‘Property(…)’

set_render_layer(index: int, enabled: bool = True) None¶
is_on_render_layer(index: int) bool¶
property absolute_z_index: int¶
property position: simvx.core.math.types.Vec2¶
property rotation: float¶
property rotation_degrees: float¶
property scale: simvx.core.math.types.Vec2¶
property world_position: simvx.core.math.types.Vec2¶
property world_rotation: float¶
property world_scale: simvx.core.math.types.Vec2¶
property forward: simvx.core.math.types.Vec2¶
property right: simvx.core.math.types.Vec2¶
translate(offset: tuple[float, float] | numpy.ndarray)¶
rotate(radians: float)¶
rotate_deg(degrees: float)¶
look_at(target: tuple[float, float] | numpy.ndarray)¶
transform_points(points: list[simvx.core.math.types.Vec2]) list[simvx.core.math.types.Vec2]¶
draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, colour=None)¶
wrap_screen(margin: float = 20)¶
strict_errors: ClassVar[bool]¶

True

script_error_raised¶

‘Signal(…)’

classmethod __init_subclass__(**kwargs)¶
property name: str¶
property process_mode: simvx.core.descriptors.ProcessMode¶
reset_error() None¶
reparent(new_parent: simvx.core.node.Node)¶
get_node(path: str) simvx.core.node.Node¶
find_child(name: str, recursive: bool = False) simvx.core.node.Node | None¶
find(node_type: type, recursive: bool = True) simvx.core.node.Node | None¶
find_all(node_type: type, recursive: bool = True) list¶
property path: str¶
add_to_group(group: str)¶
remove_from_group(group: str)¶
is_in_group(group: str) bool¶
enter_tree() None¶
exit_tree() None¶
physics_process(dt: float) None¶
input_event(event: simvx.core.events.InputEvent) None¶
input(event: simvx.core.events.TreeInputEvent) None¶
unhandled_input(event: simvx.core.events.TreeInputEvent) None¶
start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle¶
stop_coroutine(gen_or_handle)¶
clear_children()¶
destroy()¶
property app¶
property tree: simvx.core.scene_tree.SceneTree¶
get_tree() simvx.core.scene_tree.SceneTree¶
__getitem__(key: str)¶
classmethod get_properties() dict[str, simvx.core.descriptors.Property]¶
__repr__()¶
class simvx.ide.panels.debug_panel.VariablesTab(**kwargs)[source]¶

Bases: simvx.core.ui.core.Control

TreeView showing variable scopes with expandable nested objects.

Initialization

refresh_theme()[source]¶

Re-apply theme colours to the variables tree.

set_manager(manager: simvx.ide.dap.manager.DebugManager)[source]¶
refresh()[source]¶

Rebuild the tree from cached scopes and variables.

process(dt: float)[source]¶
draw(renderer)[source]¶
size_x¶

‘Property(…)’

size_y¶

‘Property(…)’

property size: simvx.core.math.types.Vec2¶
touch_mode: str¶

‘mouse’

property theme: simvx.core.ui.types.Theme | None¶
property mouse_over: bool¶
property focused: bool¶
property disabled: bool¶
get_theme() simvx.core.ui.types.Theme¶
queue_redraw()¶
get_minimum_size() simvx.core.math.types.Vec2¶
get_rect() tuple[float, float, float, float]¶
get_global_rect() tuple[float, float, float, float]¶
is_point_inside(point) bool¶
set_anchor_preset(preset: simvx.core.ui.enums.AnchorPreset)¶
set_focus()¶
grab_focus()¶
release_focus()¶
has_focus() bool¶
focus_next_control()¶
focus_previous_control()¶
grab_mouse()¶
release_mouse()¶
set_drag_preview(control: simvx.core.ui.core.Control)¶
draw_popup(renderer)¶
is_popup_point_inside(point) bool¶
popup_input(event)¶
dismiss_popup()¶
z_index¶

‘Property(…)’

z_as_relative¶

‘Property(…)’

render_layer¶

‘Property(…)’

set_render_layer(index: int, enabled: bool = True) None¶
is_on_render_layer(index: int) bool¶
property absolute_z_index: int¶
property position: simvx.core.math.types.Vec2¶
property rotation: float¶
property rotation_degrees: float¶
property scale: simvx.core.math.types.Vec2¶
property world_position: simvx.core.math.types.Vec2¶
property world_rotation: float¶
property world_scale: simvx.core.math.types.Vec2¶
property forward: simvx.core.math.types.Vec2¶
property right: simvx.core.math.types.Vec2¶
translate(offset: tuple[float, float] | numpy.ndarray)¶
rotate(radians: float)¶
rotate_deg(degrees: float)¶
look_at(target: tuple[float, float] | numpy.ndarray)¶
transform_points(points: list[simvx.core.math.types.Vec2]) list[simvx.core.math.types.Vec2]¶
draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, colour=None)¶
wrap_screen(margin: float = 20)¶
strict_errors: ClassVar[bool]¶

True

script_error_raised¶

‘Signal(…)’

classmethod __init_subclass__(**kwargs)¶
property name: str¶
property process_mode: simvx.core.descriptors.ProcessMode¶
reset_error() None¶
add_child(node: simvx.core.node.Node) simvx.core.node.Node¶
remove_child(node: simvx.core.node.Node)¶
reparent(new_parent: simvx.core.node.Node)¶
get_node(path: str) simvx.core.node.Node¶
find_child(name: str, recursive: bool = False) simvx.core.node.Node | None¶
find(node_type: type, recursive: bool = True) simvx.core.node.Node | None¶
find_all(node_type: type, recursive: bool = True) list¶
property path: str¶
add_to_group(group: str)¶
remove_from_group(group: str)¶
is_in_group(group: str) bool¶
ready() None¶
enter_tree() None¶
exit_tree() None¶
physics_process(dt: float) None¶
input_event(event: simvx.core.events.InputEvent) None¶
input(event: simvx.core.events.TreeInputEvent) None¶
unhandled_input(event: simvx.core.events.TreeInputEvent) None¶
start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle¶
stop_coroutine(gen_or_handle)¶
clear_children()¶
destroy()¶
property app¶
property tree: simvx.core.scene_tree.SceneTree¶
get_tree() simvx.core.scene_tree.SceneTree¶
__getitem__(key: str)¶
classmethod get_properties() dict[str, simvx.core.descriptors.Property]¶
__repr__()¶
class simvx.ide.panels.debug_panel.CallStackTab(**kwargs)[source]¶

Bases: simvx.core.ui.core.Control

List of stack frames with click-to-navigate.

Initialization

set_refs(state: simvx.ide.state.IDEState, manager: simvx.ide.dap.manager.DebugManager)[source]¶
refresh()[source]¶
draw(renderer)[source]¶
size_x¶

‘Property(…)’

size_y¶

‘Property(…)’

property size: simvx.core.math.types.Vec2¶
touch_mode: str¶

‘mouse’

property theme: simvx.core.ui.types.Theme | None¶
property mouse_over: bool¶
property focused: bool¶
property disabled: bool¶
get_theme() simvx.core.ui.types.Theme¶
queue_redraw()¶
get_minimum_size() simvx.core.math.types.Vec2¶
get_rect() tuple[float, float, float, float]¶
get_global_rect() tuple[float, float, float, float]¶
is_point_inside(point) bool¶
set_anchor_preset(preset: simvx.core.ui.enums.AnchorPreset)¶
set_focus()¶
grab_focus()¶
release_focus()¶
has_focus() bool¶
focus_next_control()¶
focus_previous_control()¶
grab_mouse()¶
release_mouse()¶
set_drag_preview(control: simvx.core.ui.core.Control)¶
draw_popup(renderer)¶
is_popup_point_inside(point) bool¶
popup_input(event)¶
dismiss_popup()¶
z_index¶

‘Property(…)’

z_as_relative¶

‘Property(…)’

render_layer¶

‘Property(…)’

set_render_layer(index: int, enabled: bool = True) None¶
is_on_render_layer(index: int) bool¶
property absolute_z_index: int¶
property position: simvx.core.math.types.Vec2¶
property rotation: float¶
property rotation_degrees: float¶
property scale: simvx.core.math.types.Vec2¶
property world_position: simvx.core.math.types.Vec2¶
property world_rotation: float¶
property world_scale: simvx.core.math.types.Vec2¶
property forward: simvx.core.math.types.Vec2¶
property right: simvx.core.math.types.Vec2¶
translate(offset: tuple[float, float] | numpy.ndarray)¶
rotate(radians: float)¶
rotate_deg(degrees: float)¶
look_at(target: tuple[float, float] | numpy.ndarray)¶
transform_points(points: list[simvx.core.math.types.Vec2]) list[simvx.core.math.types.Vec2]¶
draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, colour=None)¶
wrap_screen(margin: float = 20)¶
strict_errors: ClassVar[bool]¶

True

script_error_raised¶

‘Signal(…)’

classmethod __init_subclass__(**kwargs)¶
property name: str¶
property process_mode: simvx.core.descriptors.ProcessMode¶
reset_error() None¶
add_child(node: simvx.core.node.Node) simvx.core.node.Node¶
remove_child(node: simvx.core.node.Node)¶
reparent(new_parent: simvx.core.node.Node)¶
get_node(path: str) simvx.core.node.Node¶
find_child(name: str, recursive: bool = False) simvx.core.node.Node | None¶
find(node_type: type, recursive: bool = True) simvx.core.node.Node | None¶
find_all(node_type: type, recursive: bool = True) list¶
property path: str¶
add_to_group(group: str)¶
remove_from_group(group: str)¶
is_in_group(group: str) bool¶
ready() None¶
enter_tree() None¶
exit_tree() None¶
process(dt: float) None¶
physics_process(dt: float) None¶
input_event(event: simvx.core.events.InputEvent) None¶
input(event: simvx.core.events.TreeInputEvent) None¶
unhandled_input(event: simvx.core.events.TreeInputEvent) None¶
start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle¶
stop_coroutine(gen_or_handle)¶
clear_children()¶
destroy()¶
property app¶
property tree: simvx.core.scene_tree.SceneTree¶
get_tree() simvx.core.scene_tree.SceneTree¶
__getitem__(key: str)¶
classmethod get_properties() dict[str, simvx.core.descriptors.Property]¶
__repr__()¶
class simvx.ide.panels.debug_panel.WatchTab(state: simvx.ide.state.IDEState, manager: simvx.ide.dap.manager.DebugManager | None, **kwargs)[source]¶

Bases: simvx.core.ui.core.Control

Watch expressions tab – evaluate expressions during debug pauses.

Initialization

add_watch(expression: str)[source]¶

Add a watch expression.

remove_watch(index: int)[source]¶

Remove a watch expression by index.

draw(renderer)[source]¶
size_x¶

‘Property(…)’

size_y¶

‘Property(…)’

property size: simvx.core.math.types.Vec2¶
touch_mode: str¶

‘mouse’

property theme: simvx.core.ui.types.Theme | None¶
property mouse_over: bool¶
property focused: bool¶
property disabled: bool¶
get_theme() simvx.core.ui.types.Theme¶
queue_redraw()¶
get_minimum_size() simvx.core.math.types.Vec2¶
get_rect() tuple[float, float, float, float]¶
get_global_rect() tuple[float, float, float, float]¶
is_point_inside(point) bool¶
set_anchor_preset(preset: simvx.core.ui.enums.AnchorPreset)¶
set_focus()¶
grab_focus()¶
release_focus()¶
has_focus() bool¶
focus_next_control()¶
focus_previous_control()¶
grab_mouse()¶
release_mouse()¶
set_drag_preview(control: simvx.core.ui.core.Control)¶
draw_popup(renderer)¶
is_popup_point_inside(point) bool¶
popup_input(event)¶
dismiss_popup()¶
z_index¶

‘Property(…)’

z_as_relative¶

‘Property(…)’

render_layer¶

‘Property(…)’

set_render_layer(index: int, enabled: bool = True) None¶
is_on_render_layer(index: int) bool¶
property absolute_z_index: int¶
property position: simvx.core.math.types.Vec2¶
property rotation: float¶
property rotation_degrees: float¶
property scale: simvx.core.math.types.Vec2¶
property world_position: simvx.core.math.types.Vec2¶
property world_rotation: float¶
property world_scale: simvx.core.math.types.Vec2¶
property forward: simvx.core.math.types.Vec2¶
property right: simvx.core.math.types.Vec2¶
translate(offset: tuple[float, float] | numpy.ndarray)¶
rotate(radians: float)¶
rotate_deg(degrees: float)¶
look_at(target: tuple[float, float] | numpy.ndarray)¶
transform_points(points: list[simvx.core.math.types.Vec2]) list[simvx.core.math.types.Vec2]¶
draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, colour=None)¶
wrap_screen(margin: float = 20)¶
strict_errors: ClassVar[bool]¶

True

script_error_raised¶

‘Signal(…)’

classmethod __init_subclass__(**kwargs)¶
property name: str¶
property process_mode: simvx.core.descriptors.ProcessMode¶
reset_error() None¶
add_child(node: simvx.core.node.Node) simvx.core.node.Node¶
remove_child(node: simvx.core.node.Node)¶
reparent(new_parent: simvx.core.node.Node)¶
get_node(path: str) simvx.core.node.Node¶
find_child(name: str, recursive: bool = False) simvx.core.node.Node | None¶
find(node_type: type, recursive: bool = True) simvx.core.node.Node | None¶
find_all(node_type: type, recursive: bool = True) list¶
property path: str¶
add_to_group(group: str)¶
remove_from_group(group: str)¶
is_in_group(group: str) bool¶
ready() None¶
enter_tree() None¶
exit_tree() None¶
process(dt: float) None¶
physics_process(dt: float) None¶
input_event(event: simvx.core.events.InputEvent) None¶
input(event: simvx.core.events.TreeInputEvent) None¶
unhandled_input(event: simvx.core.events.TreeInputEvent) None¶
start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle¶
stop_coroutine(gen_or_handle)¶
clear_children()¶
destroy()¶
property app¶
property tree: simvx.core.scene_tree.SceneTree¶
get_tree() simvx.core.scene_tree.SceneTree¶
__getitem__(key: str)¶
classmethod get_properties() dict[str, simvx.core.descriptors.Property]¶
__repr__()¶
class simvx.ide.panels.debug_panel.BreakpointsTab(**kwargs)[source]¶

Bases: simvx.core.ui.core.Control

List of all breakpoints across files with click-to-navigate.

Initialization

set_state(state: simvx.ide.state.IDEState)[source]¶
set_manager(manager: simvx.ide.dap.manager.DebugManager)[source]¶
set_condition(path: str, line: int, condition: str)[source]¶

Set or clear a condition on a breakpoint (delegates to DebugManager).

get_condition(path: str, line: int) str[source]¶

Get the condition for a breakpoint, or empty string if none.

get_conditions_for_file(path: str) dict[int, str][source]¶

Get all conditions for a file as {line: condition}.

refresh()[source]¶
draw(renderer)[source]¶
size_x¶

‘Property(…)’

size_y¶

‘Property(…)’

property size: simvx.core.math.types.Vec2¶
touch_mode: str¶

‘mouse’

property theme: simvx.core.ui.types.Theme | None¶
property mouse_over: bool¶
property focused: bool¶
property disabled: bool¶
get_theme() simvx.core.ui.types.Theme¶
queue_redraw()¶
get_minimum_size() simvx.core.math.types.Vec2¶
get_rect() tuple[float, float, float, float]¶
get_global_rect() tuple[float, float, float, float]¶
is_point_inside(point) bool¶
set_anchor_preset(preset: simvx.core.ui.enums.AnchorPreset)¶
set_focus()¶
grab_focus()¶
release_focus()¶
has_focus() bool¶
focus_next_control()¶
focus_previous_control()¶
grab_mouse()¶
release_mouse()¶
set_drag_preview(control: simvx.core.ui.core.Control)¶
draw_popup(renderer)¶
is_popup_point_inside(point) bool¶
popup_input(event)¶
dismiss_popup()¶
z_index¶

‘Property(…)’

z_as_relative¶

‘Property(…)’

render_layer¶

‘Property(…)’

set_render_layer(index: int, enabled: bool = True) None¶
is_on_render_layer(index: int) bool¶
property absolute_z_index: int¶
property position: simvx.core.math.types.Vec2¶
property rotation: float¶
property rotation_degrees: float¶
property scale: simvx.core.math.types.Vec2¶
property world_position: simvx.core.math.types.Vec2¶
property world_rotation: float¶
property world_scale: simvx.core.math.types.Vec2¶
property forward: simvx.core.math.types.Vec2¶
property right: simvx.core.math.types.Vec2¶
translate(offset: tuple[float, float] | numpy.ndarray)¶
rotate(radians: float)¶
rotate_deg(degrees: float)¶
look_at(target: tuple[float, float] | numpy.ndarray)¶
transform_points(points: list[simvx.core.math.types.Vec2]) list[simvx.core.math.types.Vec2]¶
draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, colour=None)¶
wrap_screen(margin: float = 20)¶
strict_errors: ClassVar[bool]¶

True

script_error_raised¶

‘Signal(…)’

classmethod __init_subclass__(**kwargs)¶
property name: str¶
property process_mode: simvx.core.descriptors.ProcessMode¶
reset_error() None¶
add_child(node: simvx.core.node.Node) simvx.core.node.Node¶
remove_child(node: simvx.core.node.Node)¶
reparent(new_parent: simvx.core.node.Node)¶
get_node(path: str) simvx.core.node.Node¶
find_child(name: str, recursive: bool = False) simvx.core.node.Node | None¶
find(node_type: type, recursive: bool = True) simvx.core.node.Node | None¶
find_all(node_type: type, recursive: bool = True) list¶
property path: str¶
add_to_group(group: str)¶
remove_from_group(group: str)¶
is_in_group(group: str) bool¶
ready() None¶
enter_tree() None¶
exit_tree() None¶
process(dt: float) None¶
physics_process(dt: float) None¶
input_event(event: simvx.core.events.InputEvent) None¶
input(event: simvx.core.events.TreeInputEvent) None¶
unhandled_input(event: simvx.core.events.TreeInputEvent) None¶
start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle¶
stop_coroutine(gen_or_handle)¶
clear_children()¶
destroy()¶
property app¶
property tree: simvx.core.scene_tree.SceneTree¶
get_tree() simvx.core.scene_tree.SceneTree¶
__getitem__(key: str)¶
classmethod get_properties() dict[str, simvx.core.descriptors.Property]¶
__repr__()¶
class simvx.ide.panels.debug_panel.DebugPanel(state: simvx.ide.state.IDEState, debug_manager: simvx.ide.dap.manager.DebugManager, **kwargs)[source]¶

Bases: simvx.core.ui.widgets.Panel

Complete debug panel with toolbar and tabbed sub-panels.

Layout: [Toolbar: Continue | Pause | Step Over | Step Into | Step Out | Restart | Stop] [TabContainer: Variables | Call Stack | Breakpoints]

Initialization

refresh_theme()[source]¶

Re-apply theme colours after a theme change.

process(dt: float)[source]¶
draw(renderer)[source]¶
style¶

‘ThemeStyleBox(…)’

property bg_colour¶
property border_colour¶
property border_width¶
get_minimum_size() simvx.core.math.types.Vec2¶
size_x¶

‘Property(…)’

size_y¶

‘Property(…)’

property size: simvx.core.math.types.Vec2¶
touch_mode: str¶

‘mouse’

property theme: simvx.core.ui.types.Theme | None¶
property mouse_over: bool¶
property focused: bool¶
property disabled: bool¶
get_theme() simvx.core.ui.types.Theme¶
queue_redraw()¶
get_rect() tuple[float, float, float, float]¶
get_global_rect() tuple[float, float, float, float]¶
is_point_inside(point) bool¶
set_anchor_preset(preset: simvx.core.ui.enums.AnchorPreset)¶
set_focus()¶
grab_focus()¶
release_focus()¶
has_focus() bool¶
focus_next_control()¶
focus_previous_control()¶
grab_mouse()¶
release_mouse()¶
set_drag_preview(control: simvx.core.ui.core.Control)¶
draw_popup(renderer)¶
is_popup_point_inside(point) bool¶
popup_input(event)¶
dismiss_popup()¶
z_index¶

‘Property(…)’

z_as_relative¶

‘Property(…)’

render_layer¶

‘Property(…)’

set_render_layer(index: int, enabled: bool = True) None¶
is_on_render_layer(index: int) bool¶
property absolute_z_index: int¶
property position: simvx.core.math.types.Vec2¶
property rotation: float¶
property rotation_degrees: float¶
property scale: simvx.core.math.types.Vec2¶
property world_position: simvx.core.math.types.Vec2¶
property world_rotation: float¶
property world_scale: simvx.core.math.types.Vec2¶
property forward: simvx.core.math.types.Vec2¶
property right: simvx.core.math.types.Vec2¶
translate(offset: tuple[float, float] | numpy.ndarray)¶
rotate(radians: float)¶
rotate_deg(degrees: float)¶
look_at(target: tuple[float, float] | numpy.ndarray)¶
transform_points(points: list[simvx.core.math.types.Vec2]) list[simvx.core.math.types.Vec2]¶
draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, colour=None)¶
wrap_screen(margin: float = 20)¶
strict_errors: ClassVar[bool]¶

True

script_error_raised¶

‘Signal(…)’

classmethod __init_subclass__(**kwargs)¶
property name: str¶
property process_mode: simvx.core.descriptors.ProcessMode¶
reset_error() None¶
add_child(node: simvx.core.node.Node) simvx.core.node.Node¶
remove_child(node: simvx.core.node.Node)¶
reparent(new_parent: simvx.core.node.Node)¶
get_node(path: str) simvx.core.node.Node¶
find_child(name: str, recursive: bool = False) simvx.core.node.Node | None¶
find(node_type: type, recursive: bool = True) simvx.core.node.Node | None¶
find_all(node_type: type, recursive: bool = True) list¶
property path: str¶
add_to_group(group: str)¶
remove_from_group(group: str)¶
is_in_group(group: str) bool¶
ready() None¶
enter_tree() None¶
exit_tree() None¶
physics_process(dt: float) None¶
input_event(event: simvx.core.events.InputEvent) None¶
input(event: simvx.core.events.TreeInputEvent) None¶
unhandled_input(event: simvx.core.events.TreeInputEvent) None¶
start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle¶
stop_coroutine(gen_or_handle)¶
clear_children()¶
destroy()¶
property app¶
property tree: simvx.core.scene_tree.SceneTree¶
get_tree() simvx.core.scene_tree.SceneTree¶
__getitem__(key: str)¶
classmethod get_properties() dict[str, simvx.core.descriptors.Property]¶
__repr__()¶