class
Lapis::CrystalIntegrationPlugin
Defined in:
libgodot/editor.crConstant Summary
-
CRYSTAL_ICON_SVG =
"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 193.2 206.7' width='16' height='16'><path fill='#e0e0e0' d='m165.4 122-50 49.9c-.2.2-.5.3-.7.2l-68.3-18.3c-.3-.1-.5-.3-.5-.5L27.5 85.1c-.1-.3 0-.5.2-.7l50-49.9c.2-.2.5-.3.7-.2l68.3 18.3c.3.1.5.3.5.5l18.3 68.2c.2.3.1.5-.1.7zm-67-54.3L31.3 85.6c-.1 0-.2.2-.1.3l49.1 49c.1.1.3.1.3-.1l18-67c.1 0-.1-.2-.2-.1z'/></svg>" -
SKIP_GD_SCAN_DIRS =
Set {"addons", "lib", ".godot", ".git", "tools", "bin", "docs", "dist", "benchmarks", "scratch", "examples", "template", "template-addon", "performance", "test"}
Constructors
Class Method Summary
- ._godot_has_virtual_method(method_name : String) : Bool
- ._godot_register_node_class : Void
- .apply_crystal_highlighter_to_editor(script_ed : Godot::Object, hl : Godot::Object) : Void
-
.apply_headless_editor_settings : Void
Disables type-safe line highlighting in EditorSettings to avoid engine asserts in headless editor mode
- .apply_highlighter_if_needed : Void
-
.build_compiler_env : Hash(String, String)
Builds an environment Hash with properly configured CRYSTAL_PATH ensuring libgodot and local shards can be resolved from anywhere.
- .building? : Bool
-
.check_external_game_dll_update : Void
Checks if bin/game.dll was modified outside the editor (e.g., CLI lapis build) and triggers reload
-
.check_test_action_driver_flow : Void
Automated headless verification using ActionDriver to inspect the editor plugin: 1.
-
.check_test_build_button_flow : Void
Automated verification workflow for the Build Crystal toolbar button and GDExtension reload
- .cleanup : Void
- .cleanup_on_shutdown : Void
- .clear_theme_icons : Void
-
.copy_if_changed(src : String, dst : String) : Bool
Copies src to dst only if dst does not exist or differs in size/modification_time
-
.ensure_editor_setup : Void
Ensures all editor integration components are active when running inside the Godot Editor.
-
.ensure_highlighter_registered : Void
Ensures syntax highlighter is registered with ScriptEditor
-
.ensure_project_bindings : Void
Automatically generates project bindings for custom GDScript nodes if present
-
.ensure_theme_icons : Void
Registers Crystal icons into Godot's EditorIcons theme so ScriptCreateDialog and FileSystem dock display proper icons
-
.execute_crystal_build : Bool
Compiles project Crystal code into shared library
-
.execute_crystal_build_with_options(is_release : Bool = false) : Bool
Compiles project Crystal code with optional release optimizations
-
.find_custom_gd_files(dir : String = ".", out_files : Array(String) = [] of String) : Array(String)
Recursively finds custom .gd files in the project, excluding lib/, addons/, .godot/, tools/, bin/, etc.
- .get_crystal_icon_texture : Godot::Texture2D | Nil
- .godot_class_name : String
- .godot_parent_class_name : String
- .has_editor_interface? : Bool
- .headless? : Bool
-
.headless_suppressed? : Bool
Determines if editor UI instantiation is suppressed due to headless mode.
- .link_scripts_in_edited_scene : Void
- .link_scripts_recursive(node : Godot::Node) : Void
- .on_cleanup : Proc(Void) | Nil
- .on_cleanup=(on_cleanup : Proc(Void) | Nil)
-
.on_compile_button_pressed : Void
Handles toolbar compile button press to trigger manual Crystal rebuild
- .on_poll : Proc(Void) | Nil
- .on_poll=(on_poll : Proc(Void) | Nil)
-
.prune_orphaned_script_tabs : Void
Clears resource_path on any in-memory ScriptEditor open scripts whose backing file or ::GDScript_* sub-resource no longer exists, preventing GDScriptLanguage::reload_scripts (gdscript.cpp:2564) from failing with
Condition "fresh.is_null()" is true. - .quit_editor(exit_code : Int64) : Void
-
.recompile_modified_addons_silent : Void
Scans project addons/ directory and recompiles any Crystal addons whose source code changed
-
.refresh_inspector_deferred : Void
Defers a property list notification on edited scene root to refresh inspector after reload
- .reload_pending=(val : Bool) : Void
- .reload_pending? : Bool
-
.report_build_failure(context : String, out_msg : String, err_msg : String, exit_code : Int32) : Void
Formats and bubbles up compilation failures into the Godot Editor UI: - Outputs clean formatted error banner in the bottom panel - Emits EditorToaster notification (toast in status bar) - Pops up centered AcceptDialog in the editor viewport - Jumps to the offending line in ScriptEditor if file/line is detected
- .reset_toolbar_button : Void
-
.run_in_editor_tool_tests : Void
Executes in-editor @tool tests, Lapis::Test::Registry suites, and dynamic ClassDB verification in 100% pure Crystal
-
.sanitize_script_editor_cache : Void
Rewrites any cached "syntax_highlighter": "Plain Text" / "Standard" entries for .cr files in script_editor_cache.cfg and removes orphaned script entries (such as deleted scripts or removed ::GDScript_* sub-resources) from editor cache files.
-
.save_open_editor_files : Void
Saves all open scripts and scenes in the editor before compiling so modifications on disk are up to date
-
.schedule_fresh_test_exit : Void
Automated exit workflow for fresh editor open tests
-
.schedule_in_editor_tool_tests : Void
Schedules pure-Crystal in-editor test suite execution
- .schedule_test_button_press(delay_sec : Float64, cycle : Int64, total_cycles : Int64) : Void
-
.script_path_valid?(proj_root : String, res_path : String) : Bool
Checks whether a script resource path (including built-in scene sub-resources like res://scene.tscn::GDScript_xxx) still exists on disk
-
.setup_bottom_panel_dock : Void
Docks the CrystalConsoleDock into Godot Editor's bottom panel and makes it available to the editor
-
.setup_debugger_plugin : Void
Registers and configures the native radare2 debugger plugin
-
.setup_main_screen_panel : Void
Docks the CrystalPanel into Godot Editor's main screen and makes it available to the editor
- .setup_new_script_button : Void
- .setup_toolbar_button : Void
- .show_build_error_dialog(context : String, summary : String, full_error : String, file_path : String = "", line_num : Int32 = -1) : Void
- .show_create_script_dialog : Void
- .sync_scene_tree_buttons_if_needed : Void
-
.sync_script_file(base_ed : Godot::Object, path : String) : Void
Synchronizes a script editor buffer with the file on disk.
-
.trigger_extension_reload(node_path_override : String | Nil = nil) : Bool
Centralized helper to trigger GDExtension reload and rescan editor filesystem & ClassDB
Macro Summary
-
autoload(*args, **kwargs)
DSL directives for in-body autoload configuration
- autoload_node(*args, **kwargs)
- build(**kwargs, &block)
- create(**kwargs, &block)
Instance Method Summary
-
#_build : Bool
Invoked by Godot editor before running project (F5 / F6)
-
#_enter_tree : Void
Lifecycle callback called when the node enters the tree hierarchy.
-
#_exit_tree : Void
Lifecycle callback called when the node exits the tree hierarchy.
- #_get_plugin_icon : Texture2D | Nil
- #_get_plugin_name : String
-
#_godot_call_tool_button(button_name : String) : Void
Dispatches inspector tool button clicks on this object.
-
#_godot_call_virtual(method_name : String, delta : Float64) : Void
Virtual method and property dispatch hooks overridden by class registration macros.
-
#_godot_call_virtual_with_data(method_name : String, args : Pointer(Pointer(Void)), ret : Pointer(Void)) : Void
Dispatches generic virtual methods with raw arguments and return buffer.
-
#_godot_get_property(prop_name : String, ret_ptr : Pointer(Void)) : Void
Invoked by the GDExtension bridge when retrieving an exposed
@exportproperty. -
#_godot_set_property(prop_name : String, val_ptr : Pointer(Void)) : Void
Invoked by the GDExtension bridge when setting an exposed
@exportproperty. - #_has_main_screen : Bool
- #_make_visible(visible : Bool) : Void
-
#_process(delta : Float64) : Void
Per-frame process callback receiving delta timestep in seconds (
Float64). -
#active : Bool
Active status of the compiled Crystal editor integration
- #apply_highlighter_if_needed : Void
-
#bind_ready_in_editor(callback : Proc(R), once : Bool = false) : UInt64 forall R
Emitted when the Crystal editor plugin finishes initialization
-
#bind_ready_in_editor(once : Bool = false, &block : -> Void) : UInt64
Emitted when the Crystal editor plugin finishes initialization
-
#call(method : String, *args) : Pointer(Void)
Calls the named method on the object with variable arguments.
- #check_test_build_button_flow : Void
- #configure_code_editor : Void
- #deferred_setup_editor_ui : Void
-
#emit_ready_in_editor : Void
Emitted when the Crystal editor plugin finishes initialization
- #execute_crystal_build : Bool
- #execute_crystal_build_with_options(is_release : Bool = false) : Bool
- #get_crystal_plugin_icon : Texture2D | Nil
- #make_crystal_panel_visible(visible : Bool) : Void
- #on_compile_button_pressed : Void
-
#ready_in_editor : Godot::TypedSignal()
Emitted when the Crystal editor plugin finishes initialization
-
#ready_in_editor=(val : Godot::BoundSignal) : Godot::BoundSignal
Identity setter enabling compound operator sugar (
node.ready_in_editor += ->handler,node.ready_in_editor -= ->handler) -
#ready_in_editor_signal_hash : UInt64
Emitted when the Crystal editor plugin finishes initialization
-
#ready_in_editor_slot : Lapis::Core::StaticSignalSlot()
Emitted when the Crystal editor plugin finishes initialization
- #recompile_modified_addons_silent : Void
- #run_in_editor_tool_tests : Void
- #setup_bottom_panel_dock : Void
- #setup_code_completion : Void
- #setup_debugger_plugin : Void
- #setup_main_screen_panel : Void
- #setup_new_script_button : Void
- #setup_toolbar_button : Void
-
#status_message : String
Status message visible in inspector or tooling
-
#unbind_ready_in_editor(callback : Proc(R)) : Bool forall R
Emitted when the Crystal editor plugin finishes initialization
-
#unbind_ready_in_editor(token : UInt64) : Bool
Emitted when the Crystal editor plugin finishes initialization
- #verify_godot_version : Void
- #verify_required_tools : Void
-
#version : String
Version of the compiled Lapis library
Instance methods inherited from class Godot::EditorPlugin
add_autoload_singleton(name : String, path : String) : Void
add_autoload_singleton,
add_context_menu_plugin(slot : Godot::EditorContextMenuPlugin::ContextMenuSlot | Int, plugin : EditorContextMenuPlugin) : Void
add_context_menu_plugin,
add_control_to_bottom_panel(control : Control, title : String, shortcut : Shortcut | Nil = nil) : Button
add_control_to_bottom_panel,
add_control_to_container(container : CustomControlContainer | Int, control : Control) : Void
add_control_to_container,
add_control_to_dock(slot : DockSlot | Int, control : Control, shortcut : Shortcut | Nil = nil) : Void
add_control_to_dock,
add_custom_type(get_type : String, base : String, script : Script, icon : Texture2D) : Void
add_custom_type,
add_debugger_plugin(script : EditorDebuggerPlugin) : Void
add_debugger_plugin,
add_dock(dock : EditorDock) : Void
add_dock,
add_export_platform(platform : EditorExportPlatform) : Void
add_export_platform,
add_export_plugin(plugin : EditorExportPlugin) : Void
add_export_plugin,
add_import_plugin(importer : EditorImportPlugin, first_priority : Bool = false) : Void
add_import_plugin,
add_inspector_plugin(plugin : EditorInspectorPlugin) : Void
add_inspector_plugin,
add_node_3d_gizmo_plugin(plugin : EditorNode3DGizmoPlugin) : Void
add_node_3d_gizmo_plugin,
add_resource_conversion_plugin(plugin : EditorResourceConversionPlugin) : Void
add_resource_conversion_plugin,
add_scene_format_importer_plugin(scene_format_importer : EditorSceneFormatImporter, first_priority : Bool = false) : Void
add_scene_format_importer_plugin,
add_scene_post_import_plugin(scene_import_plugin : EditorScenePostImportPlugin, first_priority : Bool = false) : Void
add_scene_post_import_plugin,
add_tool_menu_item(name : String, callable : Pointer(Void)) : Void
add_tool_menu_item,
add_tool_submenu_item(name : String, submenu : PopupMenu) : Void
add_tool_submenu_item,
add_translation_parser_plugin(parser : EditorTranslationParserPlugin) : Void
add_translation_parser_plugin,
add_undo_redo_inspector_hook_callback(callable : Pointer(Void)) : Void
add_undo_redo_inspector_hook_callback,
bind_main_screen_changed(callback : Proc(String, R), once : Bool = false) : UInt64 forall Rbind_main_screen_changed(once : Bool = false, &block : String -> Void) : UInt64 bind_main_screen_changed, bind_project_settings_changed(callback : Proc(R), once : Bool = false) : UInt64 forall R
bind_project_settings_changed(once : Bool = false, &block : -> Void) : UInt64 bind_project_settings_changed, bind_resource_saved(callback : Proc(Resource, R), once : Bool = false) : UInt64 forall R
bind_resource_saved(once : Bool = false, &block : Resource -> Void) : UInt64 bind_resource_saved, bind_scene_changed(callback : Proc(Node, R), once : Bool = false) : UInt64 forall R
bind_scene_changed(once : Bool = false, &block : Node -> Void) : UInt64 bind_scene_changed, bind_scene_closed(callback : Proc(String, R), once : Bool = false) : UInt64 forall R
bind_scene_closed(once : Bool = false, &block : String -> Void) : UInt64 bind_scene_closed, bind_scene_saved(callback : Proc(String, R), once : Bool = false) : UInt64 forall R
bind_scene_saved(once : Bool = false, &block : String -> Void) : UInt64 bind_scene_saved, clear_editor_selection : Void clear_editor_selection, editor_camera_3d(index : Int32 = 0) : Godot::Camera3D | Nil editor_camera_3d, editor_freelook_active? : Bool editor_freelook_active?, editor_interface? : Godot::EditorInterface | Nil editor_interface?, editor_viewport_3d(index : Int32 = 0) : Godot::SubViewport | Nil editor_viewport_3d, editor_viewport_control(index : Int32 = 0) : Godot::Control | Nil editor_viewport_control, emit_main_screen_changed(*args) : Void emit_main_screen_changed, emit_project_settings_changed : Void emit_project_settings_changed, emit_resource_saved(*args) : Void emit_resource_saved, emit_scene_changed(*args) : Void emit_scene_changed, emit_scene_closed(*args) : Void emit_scene_closed, emit_scene_saved(*args) : Void emit_scene_saved, get_editor_interface : EditorInterface get_editor_interface, get_export_as_menu : PopupMenu get_export_as_menu, get_plugin_version : String get_plugin_version, get_script_create_dialog : ScriptCreateDialog get_script_create_dialog, get_undo_redo : EditorUndoRedoManager get_undo_redo, hide_bottom_panel : Void hide_bottom_panel, main_screen_changed : Godot::TypedSignal(String) main_screen_changed, main_screen_changed=(val : Godot::BoundSignal) : Godot::BoundSignal main_screen_changed=, main_screen_changed_signal_hash : UInt64 main_screen_changed_signal_hash, main_screen_changed_slot : Lapis::Core::StaticSignalSlot(String) main_screen_changed_slot, make_bottom_panel_item_visible(item : Control) : Void make_bottom_panel_item_visible, over_floating_control?(ctrl : Godot::Control | Nil, mouse_pos : Godot::Vector2, reference_control : Godot::Control | Nil = nil) : Bool
over_floating_control?(controls : Enumerable(Godot::Control | Nil), mouse_pos : Godot::Vector2 = Godot::Vector2.zero, reference_control : Godot::Control | Nil = nil) : Bool over_floating_control?, project_settings_changed : Godot::TypedSignal() project_settings_changed, project_settings_changed=(val : Godot::BoundSignal) : Godot::BoundSignal project_settings_changed=, project_settings_changed_signal_hash : UInt64 project_settings_changed_signal_hash, project_settings_changed_slot : Lapis::Core::StaticSignalSlot() project_settings_changed_slot, queue_save_layout : Void queue_save_layout, remove_autoload_singleton(name : String) : Void remove_autoload_singleton, remove_context_menu_plugin(plugin : EditorContextMenuPlugin) : Void remove_context_menu_plugin, remove_control_from_bottom_panel(control : Control) : Void remove_control_from_bottom_panel, remove_control_from_container(container : CustomControlContainer | Int, control : Control) : Void remove_control_from_container, remove_control_from_docks(control : Control) : Void remove_control_from_docks, remove_custom_type(get_type : String) : Void remove_custom_type, remove_debugger_plugin(script : EditorDebuggerPlugin) : Void remove_debugger_plugin, remove_dock(dock : EditorDock) : Void remove_dock, remove_export_platform(platform : EditorExportPlatform) : Void remove_export_platform, remove_export_plugin(plugin : EditorExportPlugin) : Void remove_export_plugin, remove_import_plugin(importer : EditorImportPlugin) : Void remove_import_plugin, remove_inspector_plugin(plugin : EditorInspectorPlugin) : Void remove_inspector_plugin, remove_node_3d_gizmo_plugin(plugin : EditorNode3DGizmoPlugin) : Void remove_node_3d_gizmo_plugin, remove_resource_conversion_plugin(plugin : EditorResourceConversionPlugin) : Void remove_resource_conversion_plugin, remove_scene_format_importer_plugin(scene_format_importer : EditorSceneFormatImporter) : Void remove_scene_format_importer_plugin, remove_scene_post_import_plugin(scene_import_plugin : EditorScenePostImportPlugin) : Void remove_scene_post_import_plugin, remove_tool_menu_item(name : String) : Void remove_tool_menu_item, remove_translation_parser_plugin(parser : EditorTranslationParserPlugin) : Void remove_translation_parser_plugin, remove_undo_redo_inspector_hook_callback(callable : Pointer(Void)) : Void remove_undo_redo_inspector_hook_callback, resource_saved : Godot::TypedSignal(Resource) resource_saved, resource_saved=(val : Godot::BoundSignal) : Godot::BoundSignal resource_saved=, resource_saved_signal_hash : UInt64 resource_saved_signal_hash, resource_saved_slot : Lapis::Core::StaticSignalSlot(Resource) resource_saved_slot, scene_changed : Godot::TypedSignal(Node) scene_changed, scene_changed=(val : Godot::BoundSignal) : Godot::BoundSignal scene_changed=, scene_changed_signal_hash : UInt64 scene_changed_signal_hash, scene_changed_slot : Lapis::Core::StaticSignalSlot(Node) scene_changed_slot, scene_closed : Godot::TypedSignal(String) scene_closed, scene_closed=(val : Godot::BoundSignal) : Godot::BoundSignal scene_closed=, scene_closed_signal_hash : UInt64 scene_closed_signal_hash, scene_closed_slot : Lapis::Core::StaticSignalSlot(String) scene_closed_slot, scene_saved : Godot::TypedSignal(String) scene_saved, scene_saved=(val : Godot::BoundSignal) : Godot::BoundSignal scene_saved=, scene_saved_signal_hash : UInt64 scene_saved_signal_hash, scene_saved_slot : Lapis::Core::StaticSignalSlot(String) scene_saved_slot, select_editor_node(node : Godot::Node | Nil) : Void select_editor_node, set_dock_tab_icon(control : Control, icon : Texture2D) : Void set_dock_tab_icon, set_force_draw_over_forwarding_enabled : Void set_force_draw_over_forwarding_enabled, set_input_event_forwarding_always_enabled : Void set_input_event_forwarding_always_enabled, unbind_main_screen_changed(callback : Proc(String, R)) : Bool forall R
unbind_main_screen_changed(token : UInt64) : Bool unbind_main_screen_changed, unbind_project_settings_changed(callback : Proc(R)) : Bool forall R
unbind_project_settings_changed(token : UInt64) : Bool unbind_project_settings_changed, unbind_resource_saved(callback : Proc(Resource, R)) : Bool forall R
unbind_resource_saved(token : UInt64) : Bool unbind_resource_saved, unbind_scene_changed(callback : Proc(Node, R)) : Bool forall R
unbind_scene_changed(token : UInt64) : Bool unbind_scene_changed, unbind_scene_closed(callback : Proc(String, R)) : Bool forall R
unbind_scene_closed(token : UInt64) : Bool unbind_scene_closed, unbind_scene_saved(callback : Proc(String, R)) : Bool forall R
unbind_scene_saved(token : UInt64) : Bool unbind_scene_saved, update_overlays : Int64 update_overlays
Constructor methods inherited from class Godot::EditorPlugin
new(pointer : Pointer(Void) = Pointer(Void).null)
new
Instance methods inherited from class Godot::Node
%(unique_name : String | NodePath) : Node%(type : T.class) : T forall T %, *(tuple : Tuple(String, T.class)) : Array(T) forall T
*(tuple : Tuple(Regex, T.class)) : Array(T) forall T
*(pattern : String) : Array(Node)
*(regex : Regex) : Array(Node) *, /(path : String | NodePath) : Node
/(type : T.class) : T forall T /, <<(child : Godot::Node) : self
<<(type : T.class) forall T <<, [](path : String | NodePath, type : ::Array(T).class) : Array(T) forall T
[](path : String | NodePath, type : T.class) : T forall T
[](type : ::Array(T).class, path : String | NodePath) : Array(T) forall T
[](type : T.class, path : String | NodePath) : T forall T
[](path : String) : Node
[](path : NodePath) : Node
[](type : T.class) : T forall T [], []?(path : String | NodePath, type : ::Array(T).class) : Array(T) | Nil forall T
[]?(path : String | NodePath, type : T.class) : T | Nil forall T
[]?(type : ::Array(T).class, path : String | NodePath) : Array(T) | Nil forall T
[]?(type : T.class, path : String | NodePath) : T | Nil forall T
[]?(path : String) : Node | Nil
[]?(path : NodePath) : Node | Nil
[]?(type : T.class) : T | Nil forall T []?, _enter_tree : Void _enter_tree, _exit_tree : Void _exit_tree, _physics_process(delta : Float64) : Void _physics_process, _process(delta : Float64) : Void _process, _ready : Void _ready, ~ : self ~, add_child(type : T.class, force_readable_name : Bool = false, internal : InternalMode | Int = 0, &block : T -> Void) : T forall T
add_child(type : T.class, force_readable_name : Bool = false, internal : InternalMode | Int = 0) : T forall T
add_child(scene : PackedScene, force_readable_name : Bool = false, internal : InternalMode | Int = 0) : Node
add_child(node : T, force_readable_name : Bool = false, internal : InternalMode | Int = 0) : T forall T
add_child(scene : PackedScene, force_readable_name : Bool = false, internal : InternalMode | Int = 0, &block : Node -> Void) : Node
add_child(node : T, force_readable_name : Bool = false, internal : InternalMode | Int = 0, &block : T -> Void) : T forall T
add_child(path_or_scene : String | PackedScene, type : T.class, force_readable_name : Bool = false, internal : InternalMode | Int = 0, &block : T -> Void) : T forall T
add_child(scene : PackedScene, *, as type : T.class, force_readable_name : Bool = false, internal : InternalMode | Int = 0, &block : T -> Void) : T forall T
add_child(path_or_scene : String | PackedScene, type : T.class, force_readable_name : Bool = false, internal : InternalMode | Int = 0) : T forall T
add_child(scene : PackedScene, *, as type : T.class, force_readable_name : Bool = false, internal : InternalMode | Int = 0) : T forall T
add_child(scene_path : String, *, as type : T.class, force_readable_name : Bool = false, internal : InternalMode | Int = 0, &block : T -> Void) : T forall T
add_child(scene_path : String, *, as type : T.class, force_readable_name : Bool = false, internal : InternalMode | Int = 0) : T forall T add_child, add_sibling(type : T.class, force_readable_name : Bool = false, &block : T -> Void) : T forall T
add_sibling(type : T.class, force_readable_name : Bool = false) : T forall T
add_sibling(scene : PackedScene, force_readable_name : Bool = false) : Node
add_sibling(sibling : T, force_readable_name : Bool = false) : T forall T
add_sibling(scene : PackedScene, force_readable_name : Bool = false, &block : Node -> Void) : Node
add_sibling(sibling : T, force_readable_name : Bool = false, &block : T -> Void) : T forall T
add_sibling(path_or_scene : String | PackedScene, type : T.class, force_readable_name : Bool = false, &block : T -> Void) : T forall T
add_sibling(scene : PackedScene, *, as type : T.class, force_readable_name : Bool = false, &block : T -> Void) : T forall T
add_sibling(path_or_scene : String | PackedScene, type : T.class, force_readable_name : Bool = false) : T forall T
add_sibling(scene : PackedScene, *, as type : T.class, force_readable_name : Bool = false) : T forall T
add_sibling(scene_path : String, *, as type : T.class, force_readable_name : Bool = false, &block : T -> Void) : T forall T
add_sibling(scene_path : String, *, as type : T.class, force_readable_name : Bool = false) : T forall T add_sibling, add_to_group(group : String, persistent : Bool = false) : Void add_to_group, after(delay : ::Time::Span | Number, &block : TimerHandle -> Void) : TimerHandle after, ancestor(type : T.class) : T forall T ancestor, ancestor?(pattern : String, type : T.class, case_sensitive : Bool = true) : T | Nil forall T
ancestor?(type : T.class) : T | Nil forall T
ancestor?(pattern : String, case_sensitive : Bool = true) : Node | Nil ancestor?, ancestor_in_group?(group : String) : Node | Nil
ancestor_in_group?(group : Symbol) : Node | Nil ancestor_in_group?, ancestor_of?(node : Node) : Bool ancestor_of?, ancestors(type : T.class) : Array(T) forall T
ancestors : Array(Node) ancestors, atr(message : String, context : String = "") : String atr, atr_n(message : String, plural_message : String, n : Int64, context : String = "") : String atr_n, auto_translate_mode auto_translate_mode, auto_translate_mode=(val : Int | Enum) auto_translate_mode=, bind_child_entered_tree(callback : Proc(Node, R), once : Bool = false) : UInt64 forall R
bind_child_entered_tree(once : Bool = false, &block : Node -> Void) : UInt64 bind_child_entered_tree, bind_child_exiting_tree(callback : Proc(Node, R), once : Bool = false) : UInt64 forall R
bind_child_exiting_tree(once : Bool = false, &block : Node -> Void) : UInt64 bind_child_exiting_tree, bind_child_order_changed(callback : Proc(R), once : Bool = false) : UInt64 forall R
bind_child_order_changed(once : Bool = false, &block : -> Void) : UInt64 bind_child_order_changed, bind_editor_description_changed(callback : Proc(Node, R), once : Bool = false) : UInt64 forall R
bind_editor_description_changed(once : Bool = false, &block : Node -> Void) : UInt64 bind_editor_description_changed, bind_editor_state_changed(callback : Proc(R), once : Bool = false) : UInt64 forall R
bind_editor_state_changed(once : Bool = false, &block : -> Void) : UInt64 bind_editor_state_changed, bind_ready(callback : Proc(R), once : Bool = false) : UInt64 forall R
bind_ready(once : Bool = false, &block : -> Void) : UInt64 bind_ready, bind_renamed(callback : Proc(R), once : Bool = false) : UInt64 forall R
bind_renamed(once : Bool = false, &block : -> Void) : UInt64 bind_renamed, bind_replacing_by(callback : Proc(Node, R), once : Bool = false) : UInt64 forall R
bind_replacing_by(once : Bool = false, &block : Node -> Void) : UInt64 bind_replacing_by, bind_tree_entered(callback : Proc(R), once : Bool = false) : UInt64 forall R
bind_tree_entered(once : Bool = false, &block : -> Void) : UInt64 bind_tree_entered, bind_tree_exited(callback : Proc(R), once : Bool = false) : UInt64 forall R
bind_tree_exited(once : Bool = false, &block : -> Void) : UInt64 bind_tree_exited, bind_tree_exiting(callback : Proc(R), once : Bool = false) : UInt64 forall R
bind_tree_exiting(once : Bool = false, &block : -> Void) : UInt64 bind_tree_exiting, busy_setting_up_children? : Bool busy_setting_up_children?, can_auto_translate : Bool can_auto_translate, can_auto_translate? : Bool can_auto_translate?, can_process : Bool can_process, can_process? : Bool can_process?, change_scene!(path : String) : Nil
change_scene!(scene : PackedScene) : Nil change_scene!, child_count : Int32 child_count, child_entered_tree : Godot::TypedSignal(Node) child_entered_tree, child_entered_tree=(val : Godot::BoundSignal) : Godot::BoundSignal child_entered_tree=, child_entered_tree_signal_hash : UInt64 child_entered_tree_signal_hash, child_entered_tree_slot : Lapis::Core::StaticSignalSlot(Node) child_entered_tree_slot, child_exiting_tree : Godot::TypedSignal(Node) child_exiting_tree, child_exiting_tree=(val : Godot::BoundSignal) : Godot::BoundSignal child_exiting_tree=, child_exiting_tree_signal_hash : UInt64 child_exiting_tree_signal_hash, child_exiting_tree_slot : Lapis::Core::StaticSignalSlot(Node) child_exiting_tree_slot, child_order_changed : Godot::TypedSignal() child_order_changed, child_order_changed=(val : Godot::BoundSignal) : Godot::BoundSignal child_order_changed=, child_order_changed_signal_hash : UInt64 child_order_changed_signal_hash, child_order_changed_slot : Lapis::Core::StaticSignalSlot() child_order_changed_slot, children(include_internal : Bool = false) : Array(Node) children, clear_children(include_internal : Bool = false) : Void clear_children, create_child(type : T.class, &block : T -> ) : T forall T
create_child(type : T.class) : T forall T create_child, create_tween : Tween create_tween, current_scene_as(type : T.class) : T | Nil forall T current_scene_as, defer_add_child(node : Node, force_readable_name : Bool = false, internal : InternalMode | Int = 0) : Void defer_add_child, defer_move_child(child_node : Node, to_position : Int64 | Int32) : Void defer_move_child, defer_queue_free : Void defer_queue_free, defer_remove_child(node : Node) : Void defer_remove_child, defer_reparent(new_parent : Node, keep_global_transform : Bool = true) : Void defer_reparent, descendants(type : T.class) : Array(T) forall T
descendants : Array(Node) descendants, destroy : Void destroy, displayed_folded? : Bool displayed_folded?, duplicate(flags : Int64 = 15_i64) : Node duplicate, each_child(include_internal : Bool = false, &block : Node -> Void) : Void each_child, each_descendant(type : T.class, &) : Void forall T
each_descendant(&) : Void each_descendant, each_node(pattern : String, case_sensitive : Bool = true, &) : Void
each_node(pattern : String, type : T.class, case_sensitive : Bool = true, &) : Void forall T each_node, editable_instance?(node : Node) : Bool editable_instance?, editor_description editor_description, editor_description=(val) editor_description=, editor_description_changed : Godot::TypedSignal(Node) editor_description_changed, editor_description_changed=(val : Godot::BoundSignal) : Godot::BoundSignal editor_description_changed=, editor_description_changed_signal_hash : UInt64 editor_description_changed_signal_hash, editor_description_changed_slot : Lapis::Core::StaticSignalSlot(Node) editor_description_changed_slot, editor_state_changed : Godot::TypedSignal() editor_state_changed, editor_state_changed=(val : Godot::BoundSignal) : Godot::BoundSignal editor_state_changed=, editor_state_changed_signal_hash : UInt64 editor_state_changed_signal_hash, editor_state_changed_slot : Lapis::Core::StaticSignalSlot() editor_state_changed_slot, emit_child_entered_tree(*args) : Void emit_child_entered_tree, emit_child_exiting_tree(*args) : Void emit_child_exiting_tree, emit_child_order_changed : Void emit_child_order_changed, emit_editor_description_changed(*args) : Void emit_editor_description_changed, emit_editor_state_changed : Void emit_editor_state_changed, emit_ready : Void emit_ready, emit_renamed : Void emit_renamed, emit_replacing_by(*args) : Void emit_replacing_by, emit_tree_entered : Void emit_tree_entered, emit_tree_exited : Void emit_tree_exited, emit_tree_exiting : Void emit_tree_exiting, engine_add_child(node : Node, force_readable_name : Bool = false, internal : InternalMode | Int = 0) : Void engine_add_child, engine_add_sibling(sibling : Node, force_readable_name : Bool = false) : Void engine_add_sibling, every(interval : ::Time::Span | Number, &block : TimerHandle -> Void) : TimerHandle every, find_ancestor_as(type : T.class) : T | Nil forall T find_ancestor_as, find_ancestor_as!(type : T.class) : T forall T find_ancestor_as!, find_child(pattern : String, recursive : Bool = true, owned : Bool = true) : Node
find_child(regex : Regex, recursive : Bool = true) : Node | Nil find_child, find_child?(pattern : String, recursive : Bool = true, owned : Bool = false) : Node | Nil find_child?, find_child_as(type : T.class, pattern : String, recursive : Bool = true, owned : Bool = false) : T | Nil forall T find_child_as, find_child_by_regex(regex : Regex, recursive : Bool = true) : Node | Nil find_child_by_regex, find_children(pattern : String, get_type : String = "", recursive : Bool = true, owned : Bool = true) : Pointer(Void)
find_children(regex : Regex, recursive : Bool = true) : Array(Node)
find_children(regex : Regex, type : T.class, recursive : Bool = true) : Array(T) forall T find_children, find_children_by_regex(regex : Regex, recursive : Bool = true) : Array(Node) find_children_by_regex, find_parent(pattern : String) : Node find_parent, first_child?(type : T.class) : T | Nil forall T
first_child? : Node | Nil first_child?, first_node(pattern : String, case_sensitive : Bool = true) : Node
first_node(pattern : String, type : T.class, case_sensitive : Bool = true) : T forall T first_node, first_node?(pattern : String, case_sensitive : Bool = true) : Node | Nil
first_node?(pattern : String, type : T.class, case_sensitive : Bool = true) : T | Nil forall T first_node?, first_node_in_group(group : String, type : T.class) : T forall T
first_node_in_group(group : String) : Node first_node_in_group, first_node_in_group?(group : String, type : T.class) : T | Nil forall T
first_node_in_group?(group : String) : Node | Nil first_node_in_group?, get_accessibility_element : Int64 get_accessibility_element, get_auto_translate_mode : AutoTranslateMode get_auto_translate_mode, get_child(idx : Int64, include_internal : Bool = false) : Node
get_child(idx : Int, include_internal : Bool = false) : Node get_child, get_child?(idx : Int, include_internal : Bool = false) : Node | Nil get_child?, get_child_as(type : T.class, idx : Int, include_internal : Bool = false) : T | Nil forall T get_child_as, get_child_count(include_internal : Bool = false) : Int64 get_child_count, get_children(include_internal : Bool = false) : Array(Node) get_children, get_children_as(type : T.class, include_internal : Bool = false) : Array(T) forall T get_children_as, get_editor_description : String get_editor_description, get_groups : Pointer(Void) get_groups, get_index(include_internal : Bool = false) : Int64 get_index, get_last_exclusive_window : Window get_last_exclusive_window, get_multiplayer : MultiplayerAPI get_multiplayer, get_multiplayer_authority : Int64 get_multiplayer_authority, get_name : String get_name, get_node(path : String) : Node
get_node(path : NodePath) : Node
get_node(path : NodePath | String) : Node get_node, get_node?(path : String) : Node | Nil
get_node?(path : NodePath) : Node | Nil get_node?, get_node_and_resource(path : NodePath | String) : Pointer(Void) get_node_and_resource, get_node_as(path : String | NodePath, type : T.class) : T forall T get_node_as, get_node_as?(path : String | NodePath, type : T.class) : T | Nil forall T get_node_as?, get_node_or_null(path : String) : Node | Nil
get_node_or_null(path : NodePath) : Node | Nil
get_node_or_null(path : NodePath | String) : Node get_node_or_null, get_node_rpc_config : Pointer(Void) get_node_rpc_config, get_nodes(pattern : String, case_sensitive : Bool = true) : Array(Node)
get_nodes(pattern : String, type : T.class, case_sensitive : Bool = true) : Array(T) forall T get_nodes, get_orphan_node_ids : Pointer(Void) get_orphan_node_ids, get_owner : Node get_owner, get_parent : Node get_parent, get_parent? : Node | Nil get_parent?, get_parent_as(type : T.class) : T | Nil forall T get_parent_as, get_path : NodePath get_path, get_path_to(node : Node, use_unique_path : Bool = false) : NodePath get_path_to, get_physics_interpolation_mode : PhysicsInterpolationMode get_physics_interpolation_mode, get_physics_process_delta_time : Float64 get_physics_process_delta_time, get_physics_process_priority : Int64 get_physics_process_priority, get_process_delta_time : Float64 get_process_delta_time, get_process_mode : ProcessMode get_process_mode, get_process_priority : Int64 get_process_priority, get_process_thread_group : ProcessThreadGroup get_process_thread_group, get_process_thread_group_order : Int64 get_process_thread_group_order, get_process_thread_messages : ProcessThreadMessages get_process_thread_messages, get_scene_file_path : String get_scene_file_path, get_scene_instance_load_placeholder : Bool get_scene_instance_load_placeholder, get_scene_instance_load_placeholder? : Bool get_scene_instance_load_placeholder?, get_tree : SceneTree get_tree, get_tree? : SceneTree | Nil get_tree?, get_tree_string : String get_tree_string, get_tree_string_pretty : String get_tree_string_pretty, get_unique_node_as(unique_name : String, type : T.class) : T | Nil forall T get_unique_node_as, get_viewport : Viewport get_viewport, get_viewport? : Viewport | Nil get_viewport?, get_window : Window get_window, greater_than?(node : Node) : Bool greater_than?, group(name : String | Symbol) : GroupQuery group, has_node(path : NodePath | String) : Bool has_node, has_node?(path : NodePath | String) : Bool has_node?, has_node_and_resource(path : NodePath | String) : Bool has_node_and_resource, has_node_and_resource?(path : NodePath | String) : Bool has_node_and_resource?, in_group?(group_name : String) : Bool
in_group?(group_name : Symbol) : Bool
in_group?(group_name : String | Symbol) : Bool
in_group?(*groups : String | Symbol) : Bool in_group?, in_group_or_ancestor?(group : String) : Bool
in_group_or_ancestor?(group : Symbol) : Bool in_group_or_ancestor?, inside_tree? : Bool inside_tree?, is_ancestor_of(node : Node) : Bool is_ancestor_of, is_ancestor_of?(node : Node) : Bool is_ancestor_of?, is_displayed_folded : Bool is_displayed_folded, is_displayed_folded? : Bool is_displayed_folded?, is_editable_instance(node : Node) : Bool is_editable_instance, is_editable_instance?(node : Node) : Bool is_editable_instance?, is_greater_than(node : Node) : Bool is_greater_than, is_greater_than?(node : Node) : Bool is_greater_than?, is_in_group(group : String) : Bool is_in_group, is_in_group?(group : String) : Bool is_in_group?, is_inside_tree : Bool is_inside_tree, is_inside_tree? : Bool is_inside_tree?, is_multiplayer_authority : Bool is_multiplayer_authority, is_multiplayer_authority? : Bool is_multiplayer_authority?, is_node_ready : Bool is_node_ready, is_node_ready? : Bool is_node_ready?, is_part_of_edited_scene : Bool is_part_of_edited_scene, is_part_of_edited_scene? : Bool is_part_of_edited_scene?, is_physics_interpolated : Bool is_physics_interpolated, is_physics_interpolated? : Bool is_physics_interpolated?, is_physics_interpolated_and_enabled : Bool is_physics_interpolated_and_enabled, is_physics_interpolated_and_enabled? : Bool is_physics_interpolated_and_enabled?, is_physics_processing : Bool is_physics_processing, is_physics_processing? : Bool is_physics_processing?, is_physics_processing_internal : Bool is_physics_processing_internal, is_physics_processing_internal? : Bool is_physics_processing_internal?, is_processing : Bool is_processing, is_processing? : Bool is_processing?, is_processing_input : Bool is_processing_input, is_processing_input? : Bool is_processing_input?, is_processing_internal : Bool is_processing_internal, is_processing_internal? : Bool is_processing_internal?, is_processing_shortcut_input : Bool is_processing_shortcut_input, is_processing_shortcut_input? : Bool is_processing_shortcut_input?, is_processing_unhandled_input : Bool is_processing_unhandled_input, is_processing_unhandled_input? : Bool is_processing_unhandled_input?, is_processing_unhandled_key_input : Bool is_processing_unhandled_key_input, is_processing_unhandled_key_input? : Bool is_processing_unhandled_key_input?, is_unique_name_in_owner : Bool is_unique_name_in_owner, is_unique_name_in_owner? : Bool is_unique_name_in_owner?, last_child?(type : T.class) : T | Nil forall T
last_child? : Node | Nil last_child?, local_groups : Set(String) local_groups, move_child(child_node : Node, to_index : Int64) : Void
move_child(child_node : Node, to_index : Int) : Void move_child, multiplayer multiplayer, multiplayer_authority? : Bool multiplayer_authority?, name : String name, name=(val : String) name=, next_sibling?(type : T.class) : T | Nil forall T
next_sibling? : Node | Nil next_sibling?, node_as(path : String | NodePath, type : T.class) : T forall T node_as, node_as?(path : String | NodePath, type : T.class) : T | Nil forall T node_as?, node_ready? : Bool node_ready?, nodes_in_group(group : String, type : T.class) : Array(T) forall T
nodes_in_group(group : String) : Array(Node) nodes_in_group, notify_deferred_thread_group(what : Int64) : Void notify_deferred_thread_group, notify_thread_safe(what : Int64) : Void notify_thread_safe, owner : Node | Nil owner, owner=(o : Node | Nil) owner=, part_of_edited_scene? : Bool part_of_edited_scene?, physics_interpolated? : Bool physics_interpolated?, physics_interpolated_and_enabled? : Bool physics_interpolated_and_enabled?, physics_interpolation_mode physics_interpolation_mode, physics_interpolation_mode=(val : Int | Enum) physics_interpolation_mode=, physics_processing? : Bool physics_processing?, physics_processing_internal? : Bool physics_processing_internal?, play_sound(stream_or_path : AudioStream | String, at : Vector2 | Vector3 | Nil = nil, pitch_scale : Float64 = 1.0, volume_db : Float64 = 0.0, bus : String = "Master", &block : Node -> Void) : Node | Nil
play_sound(stream_or_path : AudioStream | String, at : Vector2 | Vector3 | Nil = nil, pitch_scale : Float64 = 1.0, volume_db : Float64 = 0.0, bus : String = "Master") : Node | Nil play_sound, previous_sibling?(type : T.class) : T | Nil forall T
previous_sibling? : Node | Nil previous_sibling?, print_orphan_nodes : Void print_orphan_nodes, print_tree : Void print_tree, print_tree_pretty : Void print_tree_pretty, process_mode process_mode, process_mode=(val : Int | Enum) process_mode=, process_physics_priority process_physics_priority, process_physics_priority=(val : Int | Enum) process_physics_priority=, process_priority process_priority, process_priority=(val : Int | Enum) process_priority=, process_thread_group process_thread_group, process_thread_group=(val : Int | Enum) process_thread_group=, process_thread_group_order process_thread_group_order, process_thread_group_order=(val : Int | Enum) process_thread_group_order=, process_thread_messages process_thread_messages, process_thread_messages=(val : Int | Enum) process_thread_messages=, processing? : Bool processing?, processing_input? : Bool processing_input?, processing_internal? : Bool processing_internal?, processing_shortcut_input? : Bool processing_shortcut_input?, processing_unhandled_input? : Bool processing_unhandled_input?, processing_unhandled_key_input? : Bool processing_unhandled_key_input?, propagate_call(method : String, args : Pointer(Void), parent_first : Bool = false) : Void propagate_call, propagate_notification(what : Int64) : Void propagate_notification, queue_accessibility_update : Void queue_accessibility_update, queue_free : Void queue_free, ready : Godot::TypedSignal() ready, ready=(val : Godot::BoundSignal) : Godot::BoundSignal ready=, ready_signal_hash : UInt64 ready_signal_hash, ready_slot : Lapis::Core::StaticSignalSlot() ready_slot, reload_scene! : Nil reload_scene!, remove_child(node : Node) : Void remove_child, remove_from_group(group : String) : Void remove_from_group, remove_from_tree : Void remove_from_tree, renamed : Godot::TypedSignal() renamed, renamed=(val : Godot::BoundSignal) : Godot::BoundSignal renamed=, renamed_signal_hash : UInt64 renamed_signal_hash, renamed_slot : Lapis::Core::StaticSignalSlot() renamed_slot, reparent(new_parent : Node, keep_global_transform : Bool = true) : Void reparent, replace_by(node : Node, keep_groups : Bool = false) : Void replace_by, replacing_by : Godot::TypedSignal(Node) replacing_by, replacing_by=(val : Godot::BoundSignal) : Godot::BoundSignal replacing_by=, replacing_by_signal_hash : UInt64 replacing_by_signal_hash, replacing_by_slot : Lapis::Core::StaticSignalSlot(Node) replacing_by_slot, request_ready : Void request_ready, reset_physics_interpolation : Void reset_physics_interpolation, rpc(method : String | Symbol, *args) : Godot::Error rpc, rpc_config(method : String, config : Pointer(Void)) : Void rpc_config, rpc_id(peer_id : Int32 | Int64, method : String | Symbol, *args) : Godot::Error rpc_id, safe_queue_free : Void safe_queue_free, scene_file_path scene_file_path, scene_file_path=(val) scene_file_path=, scene_root : Node scene_root, self_or_ancestor(type : T.class) : T forall T self_or_ancestor, self_or_ancestor?(type : T.class) : T | Nil forall T self_or_ancestor?, set_auto_translate_mode(mode : AutoTranslateMode | Int) : Void set_auto_translate_mode, set_deferred_thread_group(property : String, value : Pointer(Void)) : Void set_deferred_thread_group, set_display_folded(fold : Bool) : Void set_display_folded, set_editable_instance(node : Node, is_editable : Bool) : Void set_editable_instance, set_editor_description(editor_description : String) : Void set_editor_description, set_multiplayer_authority(id : Int64, recursive : Bool = true) : Void set_multiplayer_authority, set_name(name : String) : Void set_name, set_owner(owner : Node) : Void set_owner, set_physics_interpolation_mode(mode : PhysicsInterpolationMode | Int) : Void set_physics_interpolation_mode, set_physics_process(enable : Bool) : Void set_physics_process, set_physics_process_internal(enable : Bool) : Void set_physics_process_internal, set_physics_process_priority(priority : Int64) : Void set_physics_process_priority, set_process(enable : Bool) : Void set_process, set_process_input(enable : Bool) : Void set_process_input, set_process_internal(enable : Bool) : Void set_process_internal, set_process_mode(mode : ProcessMode | Int) : Void set_process_mode, set_process_priority(priority : Int64) : Void set_process_priority, set_process_shortcut_input(enable : Bool) : Void set_process_shortcut_input, set_process_thread_group(mode : ProcessThreadGroup | Int) : Void set_process_thread_group, set_process_thread_group_order(order : Int64) : Void set_process_thread_group_order, set_process_thread_messages(flags : ProcessThreadMessages | Int) : Void set_process_thread_messages, set_process_unhandled_input(enable : Bool) : Void set_process_unhandled_input, set_process_unhandled_key_input(enable : Bool) : Void set_process_unhandled_key_input, set_scene_file_path(scene_file_path : String) : Void set_scene_file_path, set_scene_instance_load_placeholder(load_placeholder : Bool) : Void set_scene_instance_load_placeholder, set_thread_safe(property : String, value : Pointer(Void)) : Void set_thread_safe, set_translation_domain_inherited : Void set_translation_domain_inherited, set_unique_name_in_owner(enable : Bool) : Void set_unique_name_in_owner, siblings(type : T.class) : Array(T) forall T
siblings : Array(Node) siblings, spawn(type : T.class, &block : T -> ) : T forall T
spawn(type : T.class) : T forall T spawn, spawn_child(type : T.class, &block : T -> ) : T forall T
spawn_child(type : T.class) : T forall T spawn_child, spawn_node(type : T.class, &block : T -> ) : T forall T
spawn_node(type : T.class) : T forall T spawn_node, topmost_parent : Node topmost_parent, tree_entered : Godot::TypedSignal() tree_entered, tree_entered=(val : Godot::BoundSignal) : Godot::BoundSignal tree_entered=, tree_entered_signal_hash : UInt64 tree_entered_signal_hash, tree_entered_slot : Lapis::Core::StaticSignalSlot() tree_entered_slot, tree_exited : Godot::TypedSignal() tree_exited, tree_exited=(val : Godot::BoundSignal) : Godot::BoundSignal tree_exited=, tree_exited_signal_hash : UInt64 tree_exited_signal_hash, tree_exited_slot : Lapis::Core::StaticSignalSlot() tree_exited_slot, tree_exiting : Godot::TypedSignal() tree_exiting, tree_exiting=(val : Godot::BoundSignal) : Godot::BoundSignal tree_exiting=, tree_exiting_signal_hash : UInt64 tree_exiting_signal_hash, tree_exiting_slot : Lapis::Core::StaticSignalSlot() tree_exiting_slot, tween(&) : Godot::Tween tween, unbind_child_entered_tree(callback : Proc(Node, R)) : Bool forall R
unbind_child_entered_tree(token : UInt64) : Bool unbind_child_entered_tree, unbind_child_exiting_tree(callback : Proc(Node, R)) : Bool forall R
unbind_child_exiting_tree(token : UInt64) : Bool unbind_child_exiting_tree, unbind_child_order_changed(callback : Proc(R)) : Bool forall R
unbind_child_order_changed(token : UInt64) : Bool unbind_child_order_changed, unbind_editor_description_changed(callback : Proc(Node, R)) : Bool forall R
unbind_editor_description_changed(token : UInt64) : Bool unbind_editor_description_changed, unbind_editor_state_changed(callback : Proc(R)) : Bool forall R
unbind_editor_state_changed(token : UInt64) : Bool unbind_editor_state_changed, unbind_ready(callback : Proc(R)) : Bool forall R
unbind_ready(token : UInt64) : Bool unbind_ready, unbind_renamed(callback : Proc(R)) : Bool forall R
unbind_renamed(token : UInt64) : Bool unbind_renamed, unbind_replacing_by(callback : Proc(Node, R)) : Bool forall R
unbind_replacing_by(token : UInt64) : Bool unbind_replacing_by, unbind_tree_entered(callback : Proc(R)) : Bool forall R
unbind_tree_entered(token : UInt64) : Bool unbind_tree_entered, unbind_tree_exited(callback : Proc(R)) : Bool forall R
unbind_tree_exited(token : UInt64) : Bool unbind_tree_exited, unbind_tree_exiting(callback : Proc(R)) : Bool forall R
unbind_tree_exiting(token : UInt64) : Bool unbind_tree_exiting, unique_as(name : String | NodePath, type : T.class) : T forall T unique_as, unique_as?(name : String | NodePath, type : T.class) : T | Nil forall T unique_as?, unique_name_in_owner unique_name_in_owner, unique_name_in_owner=(val) unique_name_in_owner=, unique_name_in_owner? : Bool unique_name_in_owner?, update_configuration_warnings : Void update_configuration_warnings, with_context(&) with_context
Constructor methods inherited from class Godot::Node
~ : self
~,
instantiate(path_or_scene : String | PackedScene, edit_state : Int64 = 0_i64, cached : Bool = true) : selfinstantiate(path_or_scene : String | PackedScene, edit_state : Int64 = 0_i64, cached : Bool = true, &block : self -> Void) : self instantiate, new(pointer : Pointer(Void) = Pointer(Void).null) new
Class methods inherited from class Godot::Node
cast_to?(node : Node, type : T.class) : T | Nil forall T
cast_to?,
decompose_node_path(raw_path : String) : Tuple(Bool, String, String | Nil)
decompose_node_path,
get_orphan_node_ids : Pointer(Void)
get_orphan_node_ids,
instantiate?(path_or_scene : String | PackedScene, edit_state : Int64 = 0_i64, cached : Bool = true) : self | Nilinstantiate?(path_or_scene : String | PackedScene, edit_state : Int64 = 0_i64, cached : Bool = true, &block : self -> Void) : self | Nil instantiate?, print_orphan_nodes : Void print_orphan_nodes
Instance methods inherited from class Godot::Object
==(other : Godot::Object) : Bool==(other : Nil) : Bool ==, _enter_tree : Void _enter_tree, _exit_tree : Void _exit_tree, _godot_bind_static_signals(force : Bool = false) : Void _godot_bind_static_signals, _godot_bind_static_signals_impl(tid : UInt64) : Void _godot_bind_static_signals_impl, _godot_call_tool_button(button_name : String) : Void _godot_call_tool_button, _godot_call_virtual(method_name : String, delta : Float64) : Void _godot_call_virtual, _godot_call_virtual_with_data(method_name : String, args : Pointer(Pointer(Void)), ret : Pointer(Void)) : Void _godot_call_virtual_with_data, _godot_get_property(prop_name : String, ret_ptr : Pointer(Void)) : Void _godot_get_property, _godot_set_property(prop_name : String, val_ptr : Pointer(Void)) : Void _godot_set_property, _mark_destroyed_by_engine! : Void _mark_destroyed_by_engine!, _physics_process(delta : Float64) : Void _physics_process, _process(delta : Float64) : Void _process, _ready : Void _ready, ~ : self ~, active? : Bool active?, add_user_signal(signal : String, arguments : Pointer(Void)) : Void add_user_signal, alive? : Bool alive?, as_a(type : T.class) : T forall T as_a, as_a?(type : T.class) : T | Nil forall T as_a?, as_g(type : T.class) : T forall T as_g, as_g?(type : T.class) : T | Nil forall T as_g?, as_t(type : T.class) : T forall T as_t, as_t?(type : T.class) : T | Nil forall T as_t?, await_signal(signal_name : String | Symbol, timeout_sec : Float64 | Nil = nil) : AwaitStatus(Array(Variant))
await_signal(signal_name : String | Symbol, timeout_sec : Number) : AwaitStatus(Array(Variant)) await_signal, await_signal!(signal_name : String | Symbol, timeout_sec : Float64 | Nil = nil) : Array(Variant)
await_signal!(signal_name : String | Symbol, timeout_sec : Number) : Array(Variant) await_signal!, await_signal?(signal_name : String | Symbol, timeout_sec : Float64 | Nil = nil) : Array(Variant) | Nil
await_signal?(signal_name : String | Symbol, timeout_sec : Number) : Array(Variant) | Nil await_signal?, bind_property_list_changed(callback : Proc(R), once : Bool = false) : UInt64 forall R
bind_property_list_changed(once : Bool = false, &block : -> Void) : UInt64 bind_property_list_changed, bind_script_changed(callback : Proc(R), once : Bool = false) : UInt64 forall R
bind_script_changed(once : Bool = false, &block : -> Void) : UInt64 bind_script_changed, bind_static_signal(signal_name : String, callback : Proc(*T, R), once : Bool = false) : UInt64 forall T, R
bind_static_signal(signal_name : Symbol, callback : Proc(*T, R), once : Bool = false) : UInt64 forall T, R bind_static_signal, blocking_signals? : Bool blocking_signals?, build(&block : self -> Void) : self build, call(method : String, args : Array(Variant)) : Pointer(Void)
call(method : String, *args) : Pointer(Void) call, call_bool(method : String, *args) : Bool call_bool, call_deferred(method : String, *args) : Pointer(Void) call_deferred, call_f64(method : String, *args) : Float64 call_f64, call_i64(method : String, *args) : Int64 call_i64, call_obj(method : String, *args) : Node | Nil call_obj, call_obj_as(type : T.class, method : String, *args) : T | Nil forall T call_obj_as, call_str(method : String, *args) : String call_str, callv(method : String, arg_array : Pointer(Void)) : Pointer(Void) callv, can_translate_messages : Bool can_translate_messages, can_translate_messages? : Bool can_translate_messages?, cancel_free : Void cancel_free, cast_to(type : T.class) : T forall T cast_to, cast_to?(type : T.class) : T | Nil forall T cast_to?, check_alive! : Void check_alive!, class?(godot_class : String) : Bool class?, configure(&block : self -> Void) : self configure, connect(signal_name : String, flags : Godot::ConnectFlags = ::Godot::ConnectFlags::None, callback : Proc(Array(Variant), Void) | Nil = nil, receiver : Godot::Object | Nil = nil) : SignalSubscription
connect(signal_name : String, flags : Godot::ConnectFlags = ::Godot::ConnectFlags::None, receiver : Godot::Object | Nil = nil, &block : Array(Variant) -> Void) : SignalSubscription
connect(signal_name : Symbol, flags : Godot::ConnectFlags = ::Godot::ConnectFlags::None, &block : Array(Variant) -> Void) : SignalSubscription
connect(signal_name : String, listener_target : Godot::Object, method_name : Symbol, flags : Godot::ConnectFlags = ::Godot::ConnectFlags::None) : SignalSubscription
connect(signal : String, callable : Pointer(Void), flags : Int64 = 0_i64) : Godot::Error connect, connect_one_shot(signal_name : String, &block : Array(Variant) -> Void) : SignalSubscription connect_one_shot, connected?(signal : String, callable : Pointer(Void)) : Bool connected?, destroy : Void destroy, destroyed? : Bool destroyed?, disconnect(signal : String, callable : Pointer(Void)) : Void
disconnect(signal_name : String) : Void
disconnect(signal_name : Symbol) : Void disconnect, disconnect_all(signal_name : String | Symbol) : self
disconnect_all : self disconnect_all, editor_hint? : Bool editor_hint?, emit(signal_name : String | Symbol, *args) : self
emit(signal : BoundSignal, *args) : self emit, emit_property_list_changed : Void emit_property_list_changed, emit_script_changed : Void emit_script_changed, emit_signal(name : String) : Void
emit_signal(name : String, *args) : Void emit_signal, emit_static_signal(signal_name : String, *args : *T) : Int32 forall T
emit_static_signal(signal_name : Symbol, *args : *T) : Int32 forall T emit_static_signal, explicitly_freed? : Bool explicitly_freed?, frame_arena : Lapis::Core::FrameArena frame_arena, frame_buffer(type : T.class, max_elements : Int32) : Lapis::Core::ArenaBuffer(T) forall T frame_buffer, frame_scope(&block : Lapis::Core::FrameArena -> _) frame_scope, frame_slice(type : T.class, count : Int32) : Slice(T) forall T frame_slice, free : Void free, get(property : String) : Pointer(Void) get, get_class : String get_class, get_incoming_connections : Pointer(Void) get_incoming_connections, get_indexed(property_path : NodePath | String) : Pointer(Void) get_indexed, get_instance_id : Int64 get_instance_id, get_meta(name : String, default : Pointer(Void) | Nil = nil) : Pointer(Void)
get_meta(key : Symbol, default : Pointer(Void) | Nil = nil) : Pointer(Void)
get_meta(name : String, default : Pointer(Void) | Nil = nil) : Pointer(Void)
get_meta(name : String, default : Pointer(Void) | Nil = nil) : Pointer(Void)
get_meta(key : Symbol, default : Pointer(Void) | Nil = nil) : Pointer(Void)
get_meta(name : String, default : Pointer(Void) | Nil = nil) : Pointer(Void) get_meta, get_meta_color(key : String | Symbol) : Color get_meta_color, get_meta_f64(key : String | Symbol) : Float64 get_meta_f64, get_meta_i64(key : String | Symbol) : Int64 get_meta_i64, get_meta_list : Pointer(Void) get_meta_list, get_meta_str(key : String | Symbol) : String get_meta_str, get_meta_transform3d(key : String | Symbol) : Transform3D get_meta_transform3d, get_meta_vector2(key : String | Symbol) : Vector2 get_meta_vector2, get_meta_vector3(key : String | Symbol) : Vector3 get_meta_vector3, get_method_argument_count(method : String) : Int64 get_method_argument_count, get_method_list : Pointer(Void) get_method_list, get_property_list : Pointer(Void) get_property_list, get_script : Pointer(Void) get_script, get_signal_connection_list(signal : String) : Pointer(Void) get_signal_connection_list, get_signal_list : Pointer(Void) get_signal_list, get_translation_domain : String get_translation_domain, godot_as(type : T.class) : T forall T godot_as, godot_as?(type : T.class) : T | Nil forall T godot_as?, has_connections(signal : String) : Bool has_connections, has_connections?(signal : String) : Bool has_connections?, has_meta(name : String) : Bool
has_meta(key : String | Symbol) : Bool has_meta, has_meta?(name : String) : Bool has_meta?, has_method(method : String) : Bool has_method, has_method?(method : String) : Bool has_method?, has_signal(signal : String) : Bool has_signal, has_signal?(signal_name : String) : Bool has_signal?, has_user_signal(signal : String) : Bool has_user_signal, has_user_signal?(signal : String) : Bool has_user_signal?, hash(hasher) hash, if_alive : self | Nil if_alive, inspect(io : IO) : Void inspect, instance_id : UInt64 instance_id, is_blocking_signals : Bool is_blocking_signals, is_blocking_signals? : Bool is_blocking_signals?, is_class(godot_class : String) : Bool is_class, is_class?(godot_class : String) : Bool is_class?, is_connected(signal : String, callable : Pointer(Void)) : Bool is_connected, is_connected?(signal : String, callable : Pointer(Void)) : Bool is_connected?, is_queued_for_deletion : Bool is_queued_for_deletion, is_queued_for_deletion? : Bool is_queued_for_deletion?, is_valid? : Bool is_valid?, link_class_script : Void link_class_script, not_null? : Bool not_null?, notification(what : Int64, reversed : Bool = false) : Void notification, notify_property_list_changed : Void notify_property_list_changed, null? : Bool null?, pointer : Pointer(Void) pointer, pointer=(val : Pointer(Void)) pointer=, print(*args) print, printerr(*args) printerr, property_can_revert(property : String) : Bool property_can_revert, property_can_revert?(property : String) : Bool property_can_revert?, property_get_revert(property : String) : Pointer(Void) property_get_revert, property_list_changed : Godot::TypedSignal() property_list_changed, property_list_changed=(val : Godot::BoundSignal) : Godot::BoundSignal property_list_changed=, property_list_changed_signal_hash : UInt64 property_list_changed_signal_hash, property_list_changed_slot : Lapis::Core::StaticSignalSlot() property_list_changed_slot, puts(*args) puts, queued_for_deletion? : Bool queued_for_deletion?, queued_for_deletion_fast? : Bool queued_for_deletion_fast?, rebind_static_signals! : Void rebind_static_signals!, remove_meta(name : String) : Void
remove_meta(key : String | Symbol) : Void remove_meta, remove_user_signal(signal : String) : Void remove_user_signal, script_changed : Godot::TypedSignal() script_changed, script_changed=(val : Godot::BoundSignal) : Godot::BoundSignal script_changed=, script_changed_signal_hash : UInt64 script_changed_signal_hash, script_changed_slot : Lapis::Core::StaticSignalSlot() script_changed_slot, set(property : String, value : Pointer(Void)) : Void
set(property : String | Symbol, value : T) : Void forall T set, set_block_signals(enable : Bool) : Void set_block_signals, set_deferred(property : String, value : Pointer(Void)) : Void set_deferred, set_indexed(property_path : NodePath | String, value : Pointer(Void)) : Void set_indexed, set_message_translation(enable : Bool) : Void set_message_translation, set_meta(key : String | Symbol, value : String | Int32 | Int64 | Float32 | Float64 | Bool | Symbol | Vector2 | Vector2i | Vector3 | Vector3i | Color | Transform3D | Basis | AABB | Quaternion | Plane | Rect2) : Void
set_meta(key : String | Symbol, value : Godot::Object) : Void
set_meta(name : String, value : Pointer(Void)) : Void
set_meta(key : Symbol, value : Pointer(Void)) : Void
set_meta(key : String | Symbol, value : Variant) : Void set_meta, set_script(script : Pointer(Void)) : Void set_script, set_translation_domain(domain : String) : Void set_translation_domain, signal(name : String) : Godot::BoundSignal
signal(sym : Symbol) : Godot::BoundSignal signal, signal_connection_count(signal_name : String) : Int32 signal_connection_count, signal_target_id : UInt64 signal_target_id, static_signal_slot(signal_name : String, *types : *T) forall T
static_signal_slot(signal_name : Symbol, *types : *T) forall T static_signal_slot, to_s(io : IO) : Void to_s, to_string : String to_string, to_unsafe : Pointer(Void) to_unsafe, tr(message : String, context : String = "") : String tr, tr_n(message : String, plural_message : String, n : Int64, context : String = "") : String tr_n, try? : self | Nil
try?(&) try?, unbind_property_list_changed(callback : Proc(R)) : Bool forall R
unbind_property_list_changed(token : UInt64) : Bool unbind_property_list_changed, unbind_script_changed(callback : Proc(R)) : Bool forall R
unbind_script_changed(token : UInt64) : Bool unbind_script_changed, unbind_static_signal(signal_name : String, callback : Proc(*T, R)) : Bool forall T, R
unbind_static_signal(signal_name : Symbol, callback : Proc(*T, R)) : Bool forall T, R
unbind_static_signal(token : UInt64) : Bool unbind_static_signal
Constructor methods inherited from class Godot::Object
~ : self
~,
create : selfcreate(&block : self -> ) : self create, new(pointer : Pointer(Void) = Pointer(Void).null)
new(&block : self -> ) : self new
Class methods inherited from class Godot::Object
_godot_has_virtual_method(method_name : String) : Bool
_godot_has_virtual_method,
cast_to(obj : Object, type : T.class) : T forall T
cast_to,
cast_to?(obj : Object, type : T.class) : T | Nil forall T
cast_to?,
find_script_info_for_node(node : Godot::Object) : NamedTuple(path: String, line: Int32, class_name: String, parent_name: String, is_tool: Bool) | Nil
find_script_info_for_node,
find_script_location_for_class(target_cls : String) : Tuple(String, Int32)
find_script_location_for_class,
find_script_path_for_class(target_cls : String) : String
find_script_path_for_class,
is_instance_id_valid(id : Int | UInt64) : Bool
is_instance_id_valid,
is_internal_or_brush_class?(cls_name : String) : Bool
is_internal_or_brush_class?
Instance methods inherited from class Object
try?(&)try? try?
Constructor Detail
Class Method Detail
Disables type-safe line highlighting in EditorSettings to avoid engine asserts in headless editor mode
Builds an environment Hash with properly configured CRYSTAL_PATH ensuring libgodot and local shards can be resolved from anywhere.
Checks if bin/game.dll was modified outside the editor (e.g., CLI lapis build) and triggers reload
Automated headless verification using ActionDriver to inspect the editor plugin:
- Finds BuildCrystalToolbarButton in EditorTitleBar and asserts properties/icon/tooltip
- Finds CrystalPanel in EditorMainScreen and tests main screen switching
- Tests opening .cr and .gd scripts into ScriptEditor via ActionDriver#open_script
- Validates get_current_script_path and syntax highlighter integration
- Generates Set-of-Marks AI Vision manifest
- Outputs clear SUCCESS markers and gracefully exits Godot
Automated verification workflow for the Build Crystal toolbar button and GDExtension reload
Copies src to dst only if dst does not exist or differs in size/modification_time
Ensures all editor integration components are active when running inside the Godot Editor. Safe to call both on startup and after GDExtension reloads.
Ensures syntax highlighter is registered with ScriptEditor
Automatically generates project bindings for custom GDScript nodes if present
Registers Crystal icons into Godot's EditorIcons theme so ScriptCreateDialog and FileSystem dock display proper icons
Compiles project Crystal code with optional release optimizations
Recursively finds custom .gd files in the project, excluding lib/, addons/, .godot/, tools/, bin/, etc.
Determines if editor UI instantiation is suppressed due to headless mode. When LIBGODOT_ENABLE_EDITOR_UI=1 is set, headless runners can instantiate real editor controls (buttons, tabs, panels) in-memory for automated testing.
Handles toolbar compile button press to trigger manual Crystal rebuild
Clears resource_path on any in-memory ScriptEditor open scripts whose backing file or ::GDScript_* sub-resource no longer exists,
preventing GDScriptLanguage::reload_scripts (gdscript.cpp:2564) from failing with Condition "fresh.is_null()" is true.
Scans project addons/ directory and recompiles any Crystal addons whose source code changed
Defers a property list notification on edited scene root to refresh inspector after reload
Formats and bubbles up compilation failures into the Godot Editor UI:
- Outputs clean formatted error banner in the bottom panel
- Emits EditorToaster notification (toast in status bar)
- Pops up centered AcceptDialog in the editor viewport
- Jumps to the offending line in ScriptEditor if file/line is detected
Executes in-editor @tool tests, Lapis::Test::Registry suites, and dynamic ClassDB verification in 100% pure Crystal
Rewrites any cached "syntax_highlighter": "Plain Text" / "Standard" entries for .cr files in script_editor_cache.cfg and removes orphaned script entries (such as deleted scripts or removed ::GDScript_* sub-resources) from editor cache files.
Saves all open scripts and scenes in the editor before compiling so modifications on disk are up to date
Schedules pure-Crystal in-editor test suite execution
Checks whether a script resource path (including built-in scene sub-resources like res://scene.tscn::GDScript_xxx) still exists on disk
Docks the CrystalConsoleDock into Godot Editor's bottom panel and makes it available to the editor
Docks the CrystalPanel into Godot Editor's main screen and makes it available to the editor
Synchronizes a script editor buffer with the file on disk. If the file on disk was modified externally (or on initial load), disk changes take precedence. If the buffer was modified in-editor inside Godot, changes are flushed to disk.
Centralized helper to trigger GDExtension reload and rescan editor filesystem & ClassDB
Macro Detail
Instance Method Detail
Lifecycle callback called when the node enters the tree hierarchy.
Lifecycle callback called when the node exits the tree hierarchy.
Virtual method and property dispatch hooks overridden by class registration macros.
Delta timestep is received with 64-bit precision (Float64).
Dispatches generic virtual methods with raw arguments and return buffer.
Invoked by the GDExtension bridge when retrieving an exposed @export property.
Invoked by the GDExtension bridge when setting an exposed @export property.
Per-frame process callback receiving delta timestep in seconds (Float64).
Emitted when the Crystal editor plugin finishes initialization
Emitted when the Crystal editor plugin finishes initialization
Calls the named method on the object with variable arguments.
Emitted when the Crystal editor plugin finishes initialization
Identity setter enabling compound operator sugar (node.ready_in_editor += ->handler, node.ready_in_editor -= ->handler)
Emitted when the Crystal editor plugin finishes initialization
Emitted when the Crystal editor plugin finishes initialization
Emitted when the Crystal editor plugin finishes initialization
Emitted when the Crystal editor plugin finishes initialization