class WebRTCDataChannel
package godot
extends PacketPeer › Reference › Object
extended by WebRTCDataChannelGDNative
@:nativeGen@:build(godot.Godot.buildUserClass())@:autoBuild(godot.Godot.buildUserClass())@:build(godot.Godot.buildUserClass())@:autoBuild(godot.Godot.buildUserClass())@:build(godot.Godot.buildUserClass())@:autoBuild(godot.Godot.buildUserClass())@:libType@:csNative@:native("Godot.WebRTCDataChannel")@:autoBuild(godot.Godot.buildUserClass())Variables
@:native("WriteMode")writeMode:WebRTCDataChannel_WriteModeEnum
The transfer mode to use when sending outgoing packet. Either text or binary.
Methods
@:native("GetBufferedAmount")getBufferedAmount():Int
Returns the number of bytes currently queued to be sent over this channel.
@:native("GetId")getId():Int
Returns the id assigned to this channel during creation (or auto-assigned during negotiation).
If the channel is not negotiated out-of-band the id will only be available after the connection is established (will return 65535
until then).
@:native("GetMaxPacketLifeTime")getMaxPacketLifeTime():Int
Returns the maxPacketLifeTime
value assigned to this channel during creation.
Will be 65535
if not specified.
@:native("GetMaxRetransmits")getMaxRetransmits():Int
Returns the maxRetransmits
value assigned to this channel during creation.
Will be 65535
if not specified.
@:native("GetProtocol")getProtocol():String
Returns the sub-protocol assigned to this channel during creation. An empty string if not specified.
@:native("GetReadyState")getReadyState():WebRTCDataChannel_ChannelState
Returns the current state of this channel, see godot.WebRTCDataChannel_ChannelState
.
@:native("IsNegotiated")isNegotiated():Bool
Returns true
if this channel was created with out-of-band configuration.
@:native("IsOrdered")isOrdered():Bool
Returns true
if this channel was created with ordering enabled (default).
@:native("WasStringPacket")wasStringPacket():Bool
Returns true
if the last received packet was transferred as text. See godot.WebRTCDataChannel.writeMode
.
Inherited Variables
Defined by PacketPeer
@:native("AllowObjectDecoding")allowObjectDecoding:Bool
Deprecated. Use get_var
and put_var
parameters instead.
If true
, the PacketPeer will allow encoding and decoding of object via godot.PacketPeer.getVar
and godot.PacketPeer.putVar
.
Warning: Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.
@:native("EncodeBufferMaxSize")encodeBufferMaxSize:Int
Maximum buffer size allowed when encoding Variant
s. Raise this value to support heavier memory allocations.
The godot.PacketPeer.putVar
method allocates memory on the stack, and the buffer used will grow automatically to the closest power of two to match the size of the Variant
. If the Variant
is bigger than encode_buffer_max_size
, the method will error out with ERR_OUT_OF_MEMORY
.
Defined by Object
@:native("DynamicObject")read onlydynamicObject:Dynamic
Gets a new godot.DynamicGodotObject
associated with this instance.
@:native("NativeInstance")read onlynativeInstance:IntPtr
The pointer to the native instance of this godot.Object
.
Inherited Methods
Defined by PacketPeer
@:native("GetAvailablePacketCount")getAvailablePacketCount():Int
Returns the number of packets currently available in the ring-buffer.
@:native("GetPacketError")getPacketError():Error
Returns the error state of the last packet received (via godot.PacketPeer.getPacket
and godot.PacketPeer.getVar
).
@:native("GetVar")getVar(?allowObjects:Bool):Dynamic
Gets a Variant. If allow_objects
(or godot.PacketPeer.allowObjectDecoding
) is true
, decoding objects is allowed.
Warning: Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.
@:native("PutVar")putVar(var_:Dynamic, ?fullObjects:Bool):Error
Sends a Variant
as a packet. If full_objects
(or godot.PacketPeer.allowObjectDecoding
) is true
, encoding objects is allowed (and can potentially include code).
Defined by Reference
@:native("InitRef")initRef():Bool
Initializes the internal reference counter. Use this only if you really know what you are doing.
Returns whether the initialization was successful.
@:native("Reference_")reference_():Bool
Increments the internal reference counter. Use this only if you really know what you are doing.
Returns true
if the increment was successful, false
otherwise.
@:native("Unreference")unreference():Bool
Decrements the internal reference counter. Use this only if you really know what you are doing.
Returns true
if the decrement was successful, false
otherwise.
Defined by Object
@:native("_Get")_Get(property:String):Dynamic
Virtual method which can be overridden to customize the return value of godot.Object.get
.
Returns the given property. Returns null
if the property
does not exist.
@:native("_GetPropertyList")_GetPropertyList():Array
Virtual method which can be overridden to customize the return value of godot.Object.getPropertyList
.
Returns the object's property list as an godot.Collections_Array
of dictionaries.
Each property's godot.Collections_Dictionary
must contain at least name: String
and type: int
(see godot.Variant_Type
) entries. Optionally, it can also include hint: int
(see godot.PropertyHint
), hint_string: String
, and usage: int
(see godot.PropertyUsageFlags
).
@:native("_Notification")_Notification(what:Int):Void
Called whenever the object receives a notification, which is identified in what
by a constant. The base godot.Object
has two constants godot.Object.notificationPostinitialize
and godot.Object.notificationPredelete
, but subclasses such as godot.Node
define a lot more notifications which are also received by this method.
@:native("_Set")_Set(property:String, value:Dynamic):Bool
Virtual method which can be overridden to customize the return value of godot.Object.set
.
Sets a property. Returns true
if the property
exists.
@:native("AddUserSignal")addUserSignal(signal:String, ?arguments:Array):Void
Adds a user-defined signal
. Arguments are optional, but can be added as an godot.Collections_Array
of dictionaries, each containing name: String
and type: int
(see godot.Variant_Type
) entries.
Parameters:
arguments | If the parameter is null, then the default value is new Godot.Collections.Array { } |
---|
@:native("Call")call(method:String, args:HaxeArray<Dynamic>):Dynamic
Calls the method
on the object and returns the result. This method supports a variable number of arguments, so parameters are passed as a comma separated list. Example:
call("set", "position", Vector2(42.0, 0.0))
Note: In C#, the method name must be specified as snake_case if it is defined by a built-in Godot node. This doesn't apply to user-defined methods where you should use the same convention as in the C# source (typically PascalCase).
@:native("CallDeferred")callDeferred(method:String, args:HaxeArray<Dynamic>):Void
Calls the method
on the object during idle time. This method supports a variable number of arguments, so parameters are passed as a comma separated list. Example:
call_deferred("set", "position", Vector2(42.0, 0.0))
Note: In C#, the method name must be specified as snake_case if it is defined by a built-in Godot node. This doesn't apply to user-defined methods where you should use the same convention as in the C# source (typically PascalCase).
@:native("Callv")callv(method:String, argArray:Array):Dynamic
Calls the method
on the object and returns the result. Contrarily to godot.Object.call
, this method does not support a variable number of arguments but expects all parameters to be via a single godot.Collections_Array
.
callv("set", [ "position", Vector2(42.0, 0.0) ])
@:native("CanTranslateMessages")canTranslateMessages():Bool
Returns true
if the object can translate strings. See godot.Object.setMessageTranslation
and godot.Object.tr
.
@:native("Connect")connect(signal:String, target:Object, method:String, ?binds:Array, ?flags:UInt):Error
Connects a signal
to a method
on a target
object. Pass optional binds
to the call as an godot.Collections_Array
of parameters. These parameters will be passed to the method after any parameter used in the call to godot.Object.emitSignal
. Use flags
to set deferred or one-shot connections. See godot.Object_ConnectFlags
constants.
A signal
can only be connected once to a method
. It will print an error if already connected, unless the signal was connected with godot.Object_ConnectFlags.referenceCounted
. To avoid this, first, use godot.Object.isConnected
to check for existing connections.
If the target
is destroyed in the game's lifecycle, the connection will be lost.
Examples:
connect("pressed", self, "_on_Button_pressed") # BaseButton signal
connect("text_entered", self, "_on_LineEdit_text_entered") # LineEdit signal
connect("hit", self, "_on_Player_hit", [ weapon_type, damage ]) # User-defined signal
An example of the relationship between binds
passed to godot.Object.connect
and parameters used when calling godot.Object.emitSignal
:
connect("hit", self, "_on_Player_hit", [ weapon_type, damage ]) # weapon_type and damage are passed last
emit_signal("hit", "Dark lord", 5) # "Dark lord" and 5 are passed first
func _on_Player_hit(hit_by, level, weapon_type, damage):
print("Hit by %s (lvl %d) with weapon %s for %d damage" % [hit_by, level, weapon_type, damage])
Parameters:
binds | If the parameter is null, then the default value is new Godot.Collections.Array { } |
---|
@:native("Disconnect")disconnect(signal:String, target:Object, method:String):Void
Disconnects a signal
from a method
on the given target
.
If you try to disconnect a connection that does not exist, the method will print an error. Use godot.Object.isConnected
to ensure that the connection exists.
@:native("Dispose")dispose():Void
@:native("Dispose")@:protectedDispose(disposing:Bool):Void
Disposes of this godot.Object
.
@:native("EmitSignal")emitSignal(signal:String, args:HaxeArray<Dynamic>):Void
Emits the given signal
. The signal must exist, so it should be a built-in signal of this class or one of its parent classes, or a user-defined signal. This method supports a variable number of arguments, so parameters are passed as a comma separated list. Example:
emit_signal("hit", weapon_type, damage)
emit_signal("game_over")
@:native("Free")free():Void
Deletes the object from memory immediately. For godot.Node
s, you may want to use godot.Node.queueFree
to queue the node for safe deletion at the end of the current frame.
Important: If you have a variable pointing to an object, it will not be assigned to null
once the object is freed. Instead, it will point to a previously freed instance and you should validate it with @GDScript.is_instance_valid
before attempting to call its methods or access its properties.
@:native("Get")get(property:String):Dynamic
Returns the Variant
value of the given property
. If the property
doesn't exist, this will return null
.
Note: In C#, the property name must be specified as snake_case if it is defined by a built-in Godot node. This doesn't apply to user-defined properties where you should use the same convention as in the C# source (typically PascalCase).
@:native("GetClass")getClass():String
Returns the object's class as a String
. See also godot.Object.isClass
.
Note: godot.Object.getClass
does not take class_name
declarations into account. If the object has a class_name
defined, the base class name will be returned instead.
@:native("GetIncomingConnections")getIncomingConnections():Array
Returns an godot.Collections_Array
of dictionaries with information about signals that are connected to the object.
Each godot.Collections_Dictionary
contains three String entries:
-
source
is a reference to the signal emitter. -
signal_name
is the name of the connected signal. -
method_name
is the name of the method to which the signal is connected.
@:native("GetIndexed")getIndexed(property:NodePath):Dynamic
Gets the object's property indexed by the given godot.NodePath
. The node path should be relative to the current object and can use the colon character (:
) to access nested properties. Examples: "position:x"
or "material:next_pass:blend_mode"
.
Note: Even though the method takes godot.NodePath
argument, it doesn't support actual paths to godot.Node
s in the scene tree, only colon-separated sub-property paths. For the purpose of nodes, use godot.Node.getNodeAndResource
instead.
@:native("GetInstanceId")getInstanceId():UInt64
Returns the object's unique instance ID.
This ID can be saved in godot.EncodedObjectAsID
, and can be used to retrieve the object instance with @GDScript.instance_from_id
.
@:native("GetMeta")getMeta(name:String):Dynamic
Returns the object's metadata entry for the given name
.
@:native("GetMethodList")getMethodList():Array
Returns the object's methods and their signatures as an godot.Collections_Array
.
@:native("GetPropertyList")getPropertyList():Array
Returns the object's property list as an godot.Collections_Array
of dictionaries.
Each property's godot.Collections_Dictionary
contain at least name: String
and type: int
(see godot.Variant_Type
) entries. Optionally, it can also include hint: int
(see godot.PropertyHint
), hint_string: String
, and usage: int
(see godot.PropertyUsageFlags
).
@:native("GetScript")getScript():Reference
Returns the object's godot.Script
instance, or null
if none is assigned.
@:native("GetSignalConnectionList")getSignalConnectionList(signal:String):Array
Returns an godot.Collections_Array
of connections for the given signal
.
@:native("GetSignalList")getSignalList():Array
Returns the list of signals as an godot.Collections_Array
of dictionaries.
@:native("HasMeta")hasMeta(name:String):Bool
Returns true
if a metadata entry is found with the given name
.
@:native("HasMethod")hasMethod(method:String):Bool
Returns true
if the object contains the given method
.
@:native("HasUserSignal")hasUserSignal(signal:String):Bool
Returns true
if the given user-defined signal
exists. Only signals added using godot.Object.addUserSignal
are taken into account.
@:native("IsBlockingSignals")isBlockingSignals():Bool
Returns true
if signal emission blocking is enabled.
@:native("IsClass")isClass(class_:String):Bool
Returns true
if the object inherits from the given class
. See also godot.Object.getClass
.
Note: godot.Object.isClass
does not take class_name
declarations into account. If the object has a class_name
defined, godot.Object.isClass
will return false
for that name.
@:native("IsConnected")isConnected(signal:String, target:Object, method:String):Bool
Returns true
if a connection exists for a given signal
, target
, and method
.
@:native("IsQueuedForDeletion")isQueuedForDeletion():Bool
Returns true
if the godot.Node.queueFree
method was called for the object.
@:native("Notification")notification(what:Int, ?reversed:Bool):Void
Send a given notification to the object, which will also trigger a call to the godot.Object._Notification
method of all classes that the object inherits from.
If reversed
is true
, godot.Object._Notification
is called first on the object's own class, and then up to its successive parent classes. If reversed
is false
, godot.Object._Notification
is called first on the highest ancestor (godot.Object
itself), and then down to its successive inheriting classes.
@:native("PropertyListChangedNotify")propertyListChangedNotify():Void
Notify the editor that the property list has changed, so that editor plugins can take the new values into account. Does nothing on export builds.
@:native("RemoveMeta")removeMeta(name:String):Void
Removes a given entry from the object's metadata. See also godot.Object.setMeta
.
@:native("Set")set(property:String, value:Dynamic):Void
Assigns a new value to the given property. If the property
does not exist or the given value's type doesn't match, nothing will happen.
Note: In C#, the property name must be specified as snake_case if it is defined by a built-in Godot node. This doesn't apply to user-defined properties where you should use the same convention as in the C# source (typically PascalCase).
@:native("SetBlockSignals")setBlockSignals(enable:Bool):Void
If set to true
, signal emission is blocked.
@:native("SetDeferred")setDeferred(property:String, value:Dynamic):Void
Assigns a new value to the given property, after the current frame's physics step. This is equivalent to calling godot.Object.set
via godot.Object.callDeferred
, i.e. call_deferred("set", property, value)
.
Note: In C#, the property name must be specified as snake_case if it is defined by a built-in Godot node. This doesn't apply to user-defined properties where you should use the same convention as in the C# source (typically PascalCase).
@:native("SetIndexed")setIndexed(property:NodePath, value:Dynamic):Void
Assigns a new value to the property identified by the godot.NodePath
. The node path should be relative to the current object and can use the colon character (:
) to access nested properties. Example:
set_indexed("position", Vector2(42, 0))
set_indexed("position:y", -10)
print(position) # (42, -10)
@:native("SetMessageTranslation")setMessageTranslation(enable:Bool):Void
Defines whether the object can translate strings (with calls to godot.Object.tr
). Enabled by default.
@:native("SetMeta")setMeta(name:String, value:Dynamic):Void
Adds, changes or removes a given entry in the object's metadata. Metadata are serialized and can take any Variant
value.
To remove a given entry from the object's metadata, use godot.Object.removeMeta
. Metadata is also removed if its value is set to null
. This means you can also use set_meta("name", null)
to remove metadata for "name"
.
@:native("SetScript")setScript(script:Reference):Void
Assigns a script to the object. Each object can have a single script assigned to it, which are used to extend its functionality.
If the object already had a script, the previous script instance will be freed and its variables and state will be lost. The new script's method will be called.
@:native("ToSignal")toSignal(source:Object, signal:String):SignalAwaiter
Returns a new godot.SignalAwaiter
awaiter configured to complete when the instance
source
emits the signal specified by the signal
parameter.
Parameters:
source | The instance the awaiter will be listening to. |
---|---|
signal | The signal the awaiter will be waiting for. This sample prints a message once every frame up to 100 times.
|
Returns:
A godot.SignalAwaiter
that completes when
source
emits the signal
.
@:native("ToString")toString():String
@:native("Tr")tr(message:String):String
Translates a message using translation catalogs configured in the Project Settings.
Only works if message translation is enabled (which it is by default), otherwise it returns the message
unchanged. See godot.Object.setMessageTranslation
.