custom types can now be used as method parameters
parent
e3b20a28a9
commit
7dde412e26
|
@ -120,6 +120,8 @@ def generate_class_header(used_classes, c):
|
||||||
# ___get_class_name
|
# ___get_class_name
|
||||||
source.append("\tstatic inline char *___get_class_name() { return (char *) \"" + strip_name(c["name"]) + "\"; }")
|
source.append("\tstatic inline char *___get_class_name() { return (char *) \"" + strip_name(c["name"]) + "\"; }")
|
||||||
|
|
||||||
|
source.append("\tstatic inline Object *___get_from_variant(Variant a) { return (Object *) a; }")
|
||||||
|
|
||||||
enum_values = []
|
enum_values = []
|
||||||
|
|
||||||
source.append("\n\t// enums")
|
source.append("\n\t// enums")
|
||||||
|
|
|
@ -20,6 +20,13 @@
|
||||||
namespace godot {
|
namespace godot {
|
||||||
|
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
T *as(Object *obj)
|
||||||
|
{
|
||||||
|
return (T *) godot::nativescript_api->godot_nativescript_get_userdata(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
class GodotScript {
|
class GodotScript {
|
||||||
public:
|
public:
|
||||||
|
@ -33,6 +40,11 @@ public:
|
||||||
return T::___get_class_name();
|
return T::___get_class_name();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static GodotScript<T> *___get_from_variant(Variant a)
|
||||||
|
{
|
||||||
|
return as<GodotScript<T> >((Object *) a);
|
||||||
|
}
|
||||||
|
|
||||||
static void _register_methods() {}
|
static void _register_methods() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -48,7 +60,6 @@ public:
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
struct _ArgCast {
|
struct _ArgCast {
|
||||||
static T _arg_cast(Variant a)
|
static T _arg_cast(Variant a)
|
||||||
|
@ -61,7 +72,7 @@ template<class T>
|
||||||
struct _ArgCast<T*> {
|
struct _ArgCast<T*> {
|
||||||
static T *_arg_cast(Variant a)
|
static T *_arg_cast(Variant a)
|
||||||
{
|
{
|
||||||
return (T *) ((Object *) a);
|
return (T *) T::___get_from_variant(a);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -76,11 +87,6 @@ struct _ArgCast<Variant> {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
T *as(Object *obj)
|
|
||||||
{
|
|
||||||
return (T *) godot::nativescript_api->godot_nativescript_get_userdata(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
// instance and destroy funcs
|
// instance and destroy funcs
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue