Implement index operators for Arrays

This commit is contained in:
Bastiaan Olij
2021-09-16 17:21:40 +10:00
parent 271e33658d
commit c2b690439f
5 changed files with 39 additions and 0 deletions

View File

@@ -13,6 +13,7 @@ func _ready():
var ref = ExampleRef.new()
prints("sending ref: ", ref.get_instance_id(), "returned ref: ", $Example.extended_ref_checks(ref).get_instance_id())
prints("vararg args", $Example.varargs_func("some", "arguments", "to", "test"))
prints("test array", $Example.test_array())
# Use properties.
prints("custom position is", $Example.group_subgroup_custom_position)

View File

@@ -54,6 +54,7 @@ void Example::_bind_methods() {
ClassDB::bind_method(D_METHOD("return_something_const"), &Example::return_something_const);
ClassDB::bind_method(D_METHOD("return_extended_ref"), &Example::return_extended_ref);
ClassDB::bind_method(D_METHOD("extended_ref_checks"), &Example::extended_ref_checks);
ClassDB::bind_method(D_METHOD("test_array"), &Example::test_array);
{
MethodInfo mi;
@@ -81,6 +82,14 @@ void Example::_bind_methods() {
BIND_CONSTANT(CONSTANT_WITHOUT_ENUM);
}
Example::Example() {
UtilityFunctions::print("Constructor.");
}
Example::~Example() {
UtilityFunctions::print("Destructor.");
}
// Methods.
void Example::simple_func() {
UtilityFunctions::print("Simple func called.");
@@ -126,6 +135,16 @@ void Example::emit_custom_signal(const String &name, int value) {
emit_signal("custom_signal", name, value);
}
Array Example::test_array() const {
Array arr;
arr.resize(2);
arr[0] = Variant(1);
arr[1] = Variant(2);
return arr;
}
// Properties.
void Example::set_custom_position(const Vector2 &pos) {
custom_position = pos;

View File

@@ -76,6 +76,9 @@ public:
CONSTANT_WITHOUT_ENUM = 314,
};
Example();
~Example();
// Functions.
void simple_func();
void simple_const_func() const;
@@ -85,6 +88,7 @@ public:
Ref<ExampleRef> extended_ref_checks(Ref<ExampleRef> p_ref) const;
Variant varargs_func(const Variant **args, GDNativeInt arg_count, GDNativeCallError &error);
void emit_custom_signal(const String &name, int value);
Array test_array() const;
// Property.
void set_custom_position(const Vector2 &pos);