|
@@ -191,6 +191,10 @@ Variant::Variant(const Object *v) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+Variant::Variant(const ObjectID &p_id) :
|
|
|
+ Variant(p_id.operator uint64_t()) {
|
|
|
+}
|
|
|
+
|
|
|
Variant::Variant(const Callable &v) {
|
|
|
from_type_constructor[CALLABLE](_native_ptr(), v._native_ptr());
|
|
|
}
|
|
@@ -410,6 +414,21 @@ Variant::operator Object *() const {
|
|
|
return reinterpret_cast<Object *>(internal::gde_interface->object_get_instance_binding(obj, internal::token, &Object::___binding_callbacks));
|
|
|
}
|
|
|
|
|
|
+Variant::operator ObjectID() const {
|
|
|
+ if (get_type() == Type::INT) {
|
|
|
+ return ObjectID(operator uint64_t());
|
|
|
+ } else if (get_type() == Type::OBJECT) {
|
|
|
+ Object *obj = operator Object *();
|
|
|
+ if (obj != nullptr) {
|
|
|
+ return ObjectID(obj->get_instance_id());
|
|
|
+ } else {
|
|
|
+ return ObjectID();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return ObjectID();
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
Variant::operator Callable() const {
|
|
|
Callable result;
|
|
|
to_type_constructor[CALLABLE](result._native_ptr(), _native_ptr());
|