Created
November 8, 2023 05:13
-
-
Save Airyzz/347416544acf34a880f2e38fe949b01a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import SwiftGodot | |
class ArrayTest : Node { | |
// MARK: - Required initializers for Godot | |
required init(nativeHandle _: UnsafeRawPointer) { | |
fatalError("init(nativeHandle:) called, it is a sign that something is wrong, as these objects should not be re-hydrated") | |
} | |
required init() { | |
ArrayTest._initClass | |
super.init() | |
} | |
var array: GArray = GArray(base: GArray(), type: Int32(Variant.GType.object.rawValue), className: StringName("Resource"), script: Variant()) | |
static var _initClass: Void = { | |
let className = StringName("ArrayTest") | |
let classInfo = ClassInfo<ArrayTest>(name: className) | |
let args = [ | |
PropInfo( | |
propertyType: .array, | |
propertyName: "nodes", | |
className: className, | |
hint: .none, | |
hintStr: "", | |
usage: .default) | |
] | |
classInfo.registerMethod(name: "get_nodes", flags: .default, returnValue: args[0], arguments: [], function: ArrayTest.getNodes) | |
classInfo.registerMethod(name: "set_nodes", flags: .default, returnValue: nil, arguments: args, function: ArrayTest.setNodes) | |
let prop = PropInfo( | |
propertyType: .array, | |
propertyName: "nodes", | |
className: "ArrayTest", | |
hint: .arrayType, | |
hintStr: "NodePath", | |
usage: .default | |
) | |
classInfo.registerProperty(prop, getter: "get_nodes", setter: "set_nodes") | |
} () | |
func setNodes (args: [Variant]) -> Variant? { | |
let v = args[0] | |
print(v) | |
let garray = GArray(v) | |
if(garray != nil) { | |
array = garray! | |
} | |
return nil | |
} | |
func getNodes (args: [Variant]) -> Variant? { | |
if(array == nil) { | |
return nil | |
} | |
return Variant(array) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment