class Godot::BoundSignal

Overview

Represents a signal bound to a specific Godot object instance. Enables first-class signal handling, inspection, connection, emission, and non-blocking #await.

Examples:

await(enemy.died)
await(enemy.died, timeout_sec: 2.0)
enemy.died.await
enemy.health_changed.connect { |cur, max| puts "Health: #{cur}/#{max}" }

Direct Known Subclasses

Defined in:

libgodot/object.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(target : Godot::Object, name : String) #

[View source]

Instance Method Detail

def alive? : Bool #

Returns true if the bound object is still alive in ObjectDB


[View source]
def await(timeout_sec : Float64 | Nil = nil) : Array(Variant) #

Cooperatively awaits this signal without blocking the engine main loop. Returns the emitted arguments as an Array(Variant).


[View source]
def await(timeout_sec : Number) : Array(Variant) #

Cooperatively awaits this signal with timeout in seconds


[View source]
def connect(flags : ConnectFlags = ConnectFlags::None, callback : Proc(Array(Variant), Void) | Nil = nil) : SignalSubscription #

Connects a callback proc to this signal


[View source]
def connect(flags : ConnectFlags = ConnectFlags::None, &block : Array(Variant) -> Void) : SignalSubscription #

Connects a callback block to this signal


[View source]
def connect(listener_target : Godot::Object, method_name : Symbol, flags : ConnectFlags = ConnectFlags::None) : SignalSubscription #

Connects this signal to a method call on a target object by symbol name


[View source]
def connect_one_shot(&block : Array(Variant) -> Void) : SignalSubscription #

Backwards-compatibility helper redirecting to ConnectFlags::OneShot


[View source]
def disconnect : Void #

Disconnects all active subscriptions for this signal on the target


[View source]
def emit(*args) : Void #

Emits this signal on the target object


[View source]
def name : String #

[View source]
def target : Godot::Object #

[View source]
def target_id : UInt64 #

Returns the target's 64-bit instance ID (or Crystal object_id for unparented Crystal nodes)


[View source]
def to_s(io : IO) : Void #
Description copied from class Reference

Appends a short String representation of this object which includes its class name and its object address.

class Person
  def initialize(@name : String, @age : Int32)
  end
end

Person.new("John", 32).to_s # => #<Person:0x10a199f20>

[View source]