gdscript.Syntax
class
The Syntax
class has a couple utilities.
is
Operator
This allows for direct generation of is
expressions.
For example:
if(gdscript.Syntax.is(sprite, Sprite2D)) {
cast(sprite, Sprite2D).centered = true;
}
Converts to:
if sprite is Sprite2D:
(sprite as Sprite2D).centered = true;
Node Path Using $
To generate an expression for obtaining a node via $
, gdscript.Syntax.dollar
can be used. The parameter can either be an identifier or String.
For example:
var a: godot.Label = gdscript.Syntax.dollar(MyLabel);
var b: godot.Label = gdscript.Syntax.dollar("Path/To/OtherLabel"); // must use String for slashes
Converts to:
var a: Label = $MyLabel;
var b: Label = $Path/To/OtherLabel;
Accessing Unique Name Nodes
The %
syntax can be used with gdscript.Syntax.percent
.
For example:
var a: godot.Sprite2D = gdscript.Syntax.percent(MySprite);
Converts to:
var a: Sprite2D = %MySprite;
Generating Variables Without Assignments
Sometimes you may want to use final
in Haxe since you don't want to reassign it, but the initial assignment doesn't happen within the Haxe code. For example, a variable that uses @:export
or @:const(preload = "...")
.
Simply assign gdscript.Syntax.NoAssign
to bypass the error in the Haxe compiler, but assign nothing in the generated GDScript.
For example:
@:export final other_sprite: godot.Sprite2D = gdscript.Syntax.NoAssign;
Converts to:
@export var other_sprite: Sprite2D;