Merge pull request #62342 from reduz/methodinfo-varargs
Implement varargs in Methodinfo
This commit is contained in:
commit
471050e6a7
4 changed files with 69 additions and 238 deletions
|
@ -33,20 +33,6 @@
|
|||
|
||||
#include "core/variant/binder_common.h"
|
||||
|
||||
enum MethodFlags {
|
||||
METHOD_FLAG_NORMAL = 1,
|
||||
METHOD_FLAG_EDITOR = 2,
|
||||
METHOD_FLAG_NOSCRIPT = 4,
|
||||
METHOD_FLAG_CONST = 8,
|
||||
METHOD_FLAG_REVERSE = 16, // used for events
|
||||
METHOD_FLAG_VIRTUAL = 32,
|
||||
METHOD_FLAG_FROM_SCRIPT = 64,
|
||||
METHOD_FLAG_VARARG = 128,
|
||||
METHOD_FLAG_STATIC = 256,
|
||||
METHOD_FLAG_OBJECT_CORE = 512,
|
||||
METHOD_FLAGS_DEFAULT = METHOD_FLAG_NORMAL,
|
||||
};
|
||||
|
||||
VARIANT_ENUM_CAST(MethodFlags)
|
||||
|
||||
// some helpers
|
||||
|
|
|
@ -161,196 +161,6 @@ MethodInfo MethodInfo::from_dict(const Dictionary &p_dict) {
|
|||
return mi;
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo() :
|
||||
flags(METHOD_FLAG_NORMAL) {}
|
||||
|
||||
MethodInfo::MethodInfo(const String &p_name) :
|
||||
name(p_name),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(const String &p_name, const PropertyInfo &p_param1) :
|
||||
name(p_name),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
arguments.push_back(p_param1);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2) :
|
||||
name(p_name),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
arguments.push_back(p_param1);
|
||||
arguments.push_back(p_param2);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3) :
|
||||
name(p_name),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
arguments.push_back(p_param1);
|
||||
arguments.push_back(p_param2);
|
||||
arguments.push_back(p_param3);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4) :
|
||||
name(p_name),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
arguments.push_back(p_param1);
|
||||
arguments.push_back(p_param2);
|
||||
arguments.push_back(p_param3);
|
||||
arguments.push_back(p_param4);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4, const PropertyInfo &p_param5) :
|
||||
name(p_name),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
arguments.push_back(p_param1);
|
||||
arguments.push_back(p_param2);
|
||||
arguments.push_back(p_param3);
|
||||
arguments.push_back(p_param4);
|
||||
arguments.push_back(p_param5);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4, const PropertyInfo &p_param5, const PropertyInfo &p_param6) :
|
||||
name(p_name),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
arguments.push_back(p_param1);
|
||||
arguments.push_back(p_param2);
|
||||
arguments.push_back(p_param3);
|
||||
arguments.push_back(p_param4);
|
||||
arguments.push_back(p_param5);
|
||||
arguments.push_back(p_param6);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(Variant::Type ret) :
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
return_val.type = ret;
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(Variant::Type ret, const String &p_name) :
|
||||
name(p_name),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
return_val.type = ret;
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1) :
|
||||
name(p_name),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
return_val.type = ret;
|
||||
arguments.push_back(p_param1);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2) :
|
||||
name(p_name),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
return_val.type = ret;
|
||||
arguments.push_back(p_param1);
|
||||
arguments.push_back(p_param2);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3) :
|
||||
name(p_name),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
return_val.type = ret;
|
||||
arguments.push_back(p_param1);
|
||||
arguments.push_back(p_param2);
|
||||
arguments.push_back(p_param3);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4) :
|
||||
name(p_name),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
return_val.type = ret;
|
||||
arguments.push_back(p_param1);
|
||||
arguments.push_back(p_param2);
|
||||
arguments.push_back(p_param3);
|
||||
arguments.push_back(p_param4);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4, const PropertyInfo &p_param5) :
|
||||
name(p_name),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
return_val.type = ret;
|
||||
arguments.push_back(p_param1);
|
||||
arguments.push_back(p_param2);
|
||||
arguments.push_back(p_param3);
|
||||
arguments.push_back(p_param4);
|
||||
arguments.push_back(p_param5);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4, const PropertyInfo &p_param5, const PropertyInfo &p_param6) :
|
||||
name(p_name),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
return_val.type = ret;
|
||||
arguments.push_back(p_param1);
|
||||
arguments.push_back(p_param2);
|
||||
arguments.push_back(p_param3);
|
||||
arguments.push_back(p_param4);
|
||||
arguments.push_back(p_param5);
|
||||
arguments.push_back(p_param6);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(const PropertyInfo &p_ret, const String &p_name) :
|
||||
name(p_name),
|
||||
return_val(p_ret),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1) :
|
||||
name(p_name),
|
||||
return_val(p_ret),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
arguments.push_back(p_param1);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2) :
|
||||
name(p_name),
|
||||
return_val(p_ret),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
arguments.push_back(p_param1);
|
||||
arguments.push_back(p_param2);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3) :
|
||||
name(p_name),
|
||||
return_val(p_ret),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
arguments.push_back(p_param1);
|
||||
arguments.push_back(p_param2);
|
||||
arguments.push_back(p_param3);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4) :
|
||||
name(p_name),
|
||||
return_val(p_ret),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
arguments.push_back(p_param1);
|
||||
arguments.push_back(p_param2);
|
||||
arguments.push_back(p_param3);
|
||||
arguments.push_back(p_param4);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4, const PropertyInfo &p_param5) :
|
||||
name(p_name),
|
||||
return_val(p_ret),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
arguments.push_back(p_param1);
|
||||
arguments.push_back(p_param2);
|
||||
arguments.push_back(p_param3);
|
||||
arguments.push_back(p_param4);
|
||||
arguments.push_back(p_param5);
|
||||
}
|
||||
|
||||
MethodInfo::MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4, const PropertyInfo &p_param5, const PropertyInfo &p_param6) :
|
||||
name(p_name),
|
||||
return_val(p_ret),
|
||||
flags(METHOD_FLAG_NORMAL) {
|
||||
arguments.push_back(p_param1);
|
||||
arguments.push_back(p_param2);
|
||||
arguments.push_back(p_param3);
|
||||
arguments.push_back(p_param4);
|
||||
arguments.push_back(p_param5);
|
||||
arguments.push_back(p_param6);
|
||||
}
|
||||
|
||||
Object::Connection::operator Variant() const {
|
||||
Dictionary d;
|
||||
d["signal"] = signal;
|
||||
|
|
|
@ -204,10 +204,24 @@ struct PropertyInfo {
|
|||
|
||||
Array convert_property_list(const List<PropertyInfo> *p_list);
|
||||
|
||||
enum MethodFlags {
|
||||
METHOD_FLAG_NORMAL = 1,
|
||||
METHOD_FLAG_EDITOR = 2,
|
||||
METHOD_FLAG_NOSCRIPT = 4,
|
||||
METHOD_FLAG_CONST = 8,
|
||||
METHOD_FLAG_REVERSE = 16, // used for events
|
||||
METHOD_FLAG_VIRTUAL = 32,
|
||||
METHOD_FLAG_FROM_SCRIPT = 64,
|
||||
METHOD_FLAG_VARARG = 128,
|
||||
METHOD_FLAG_STATIC = 256,
|
||||
METHOD_FLAG_OBJECT_CORE = 512,
|
||||
METHOD_FLAGS_DEFAULT = METHOD_FLAG_NORMAL,
|
||||
};
|
||||
|
||||
struct MethodInfo {
|
||||
String name;
|
||||
PropertyInfo return_val;
|
||||
uint32_t flags; // NOLINT - prevent clang-tidy to assign method_bind.h constant here, it should stay in .cpp.
|
||||
uint32_t flags = METHOD_FLAGS_DEFAULT;
|
||||
int id = 0;
|
||||
List<PropertyInfo> arguments;
|
||||
Vector<Variant> default_arguments;
|
||||
|
@ -219,29 +233,50 @@ struct MethodInfo {
|
|||
|
||||
static MethodInfo from_dict(const Dictionary &p_dict);
|
||||
|
||||
MethodInfo();
|
||||
MethodInfo(const String &p_name);
|
||||
MethodInfo(const String &p_name, const PropertyInfo &p_param1);
|
||||
MethodInfo(const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2);
|
||||
MethodInfo(const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3);
|
||||
MethodInfo(const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4);
|
||||
MethodInfo(const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4, const PropertyInfo &p_param5);
|
||||
MethodInfo(const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4, const PropertyInfo &p_param5, const PropertyInfo &p_param6);
|
||||
MethodInfo(Variant::Type ret);
|
||||
MethodInfo(Variant::Type ret, const String &p_name);
|
||||
MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1);
|
||||
MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2);
|
||||
MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3);
|
||||
MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4);
|
||||
MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4, const PropertyInfo &p_param5);
|
||||
MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4, const PropertyInfo &p_param5, const PropertyInfo &p_param6);
|
||||
MethodInfo(const PropertyInfo &p_ret, const String &p_name);
|
||||
MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1);
|
||||
MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2);
|
||||
MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3);
|
||||
MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4);
|
||||
MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4, const PropertyInfo &p_param5);
|
||||
MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4, const PropertyInfo &p_param5, const PropertyInfo &p_param6);
|
||||
MethodInfo() {}
|
||||
|
||||
void _push_params(const PropertyInfo &p_param) {
|
||||
arguments.push_back(p_param);
|
||||
}
|
||||
|
||||
template <typename... VarArgs>
|
||||
void _push_params(const PropertyInfo &p_param, VarArgs... p_params) {
|
||||
arguments.push_back(p_param);
|
||||
_push_params(p_params...);
|
||||
}
|
||||
|
||||
MethodInfo(const String &p_name) { name = p_name; }
|
||||
|
||||
template <typename... VarArgs>
|
||||
MethodInfo(const String &p_name, VarArgs... p_params) {
|
||||
name = p_name;
|
||||
_push_params(p_params...);
|
||||
}
|
||||
|
||||
MethodInfo(Variant::Type ret) { return_val.type = ret; }
|
||||
MethodInfo(Variant::Type ret, const String &p_name) {
|
||||
return_val.type = ret;
|
||||
name = p_name;
|
||||
}
|
||||
|
||||
template <typename... VarArgs>
|
||||
MethodInfo(Variant::Type ret, const String &p_name, VarArgs... p_params) {
|
||||
name = p_name;
|
||||
return_val.type = ret;
|
||||
_push_params(p_params...);
|
||||
}
|
||||
|
||||
MethodInfo(const PropertyInfo &p_ret, const String &p_name) {
|
||||
return_val = p_ret;
|
||||
name = p_name;
|
||||
}
|
||||
|
||||
template <typename... VarArgs>
|
||||
MethodInfo(const PropertyInfo &p_ret, const String &p_name, VarArgs... p_params) {
|
||||
return_val = p_ret;
|
||||
name = p_name;
|
||||
_push_params(p_params...);
|
||||
}
|
||||
};
|
||||
|
||||
// API used to extend in GDNative and other C compatible compiled languages.
|
||||
|
|
|
@ -109,31 +109,31 @@ GDScriptParser::GDScriptParser() {
|
|||
// Register valid annotations.
|
||||
// TODO: Should this be static?
|
||||
register_annotation(MethodInfo("@tool"), AnnotationInfo::SCRIPT, &GDScriptParser::tool_annotation);
|
||||
register_annotation(MethodInfo("@icon", { Variant::STRING, "icon_path" }), AnnotationInfo::SCRIPT, &GDScriptParser::icon_annotation);
|
||||
register_annotation(MethodInfo("@icon", PropertyInfo(Variant::STRING, "icon_path")), AnnotationInfo::SCRIPT, &GDScriptParser::icon_annotation);
|
||||
register_annotation(MethodInfo("@onready"), AnnotationInfo::VARIABLE, &GDScriptParser::onready_annotation);
|
||||
// Export annotations.
|
||||
register_annotation(MethodInfo("@export"), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_NONE, Variant::NIL>);
|
||||
register_annotation(MethodInfo("@export_enum", { Variant::STRING, "names" }), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_ENUM, Variant::INT>, 0, true);
|
||||
register_annotation(MethodInfo("@export_file", { Variant::STRING, "filter" }), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_FILE, Variant::STRING>, 1, true);
|
||||
register_annotation(MethodInfo("@export_enum", PropertyInfo(Variant::STRING, "names")), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_ENUM, Variant::INT>, 0, true);
|
||||
register_annotation(MethodInfo("@export_file", PropertyInfo(Variant::STRING, "filter")), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_FILE, Variant::STRING>, 1, true);
|
||||
register_annotation(MethodInfo("@export_dir"), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_DIR, Variant::STRING>);
|
||||
register_annotation(MethodInfo("@export_global_file", { Variant::STRING, "filter" }), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_GLOBAL_FILE, Variant::STRING>, 1, true);
|
||||
register_annotation(MethodInfo("@export_global_file", PropertyInfo(Variant::STRING, "filter")), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_GLOBAL_FILE, Variant::STRING>, 1, true);
|
||||
register_annotation(MethodInfo("@export_global_dir"), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_GLOBAL_DIR, Variant::STRING>);
|
||||
register_annotation(MethodInfo("@export_multiline"), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_MULTILINE_TEXT, Variant::STRING>);
|
||||
register_annotation(MethodInfo("@export_placeholder"), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_PLACEHOLDER_TEXT, Variant::STRING>);
|
||||
register_annotation(MethodInfo("@export_range", { Variant::FLOAT, "min" }, { Variant::FLOAT, "max" }, { Variant::FLOAT, "step" }, { Variant::STRING, "slider1" }, { Variant::STRING, "slider2" }, { Variant::STRING, "slider3" }), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_RANGE, Variant::FLOAT>, 4);
|
||||
register_annotation(MethodInfo("@export_exp_easing", { Variant::STRING, "hint1" }, { Variant::STRING, "hint2" }), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_EXP_EASING, Variant::FLOAT>, 2);
|
||||
register_annotation(MethodInfo("@export_range", PropertyInfo(Variant::FLOAT, "min"), PropertyInfo(Variant::FLOAT, "max"), PropertyInfo(Variant::FLOAT, "step"), PropertyInfo(Variant::STRING, "slider1"), PropertyInfo(Variant::STRING, "slider2"), PropertyInfo(Variant::STRING, "slider3")), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_RANGE, Variant::FLOAT>, 4);
|
||||
register_annotation(MethodInfo("@export_exp_easing", PropertyInfo(Variant::STRING, "hint1"), PropertyInfo(Variant::STRING, "hint2")), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_EXP_EASING, Variant::FLOAT>, 2);
|
||||
register_annotation(MethodInfo("@export_color_no_alpha"), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_COLOR_NO_ALPHA, Variant::COLOR>);
|
||||
register_annotation(MethodInfo("@export_node_path", { Variant::STRING, "type" }), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_NODE_PATH_VALID_TYPES, Variant::NODE_PATH>, 1, true);
|
||||
register_annotation(MethodInfo("@export_flags", { Variant::STRING, "names" }), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_FLAGS, Variant::INT>, 0, true);
|
||||
register_annotation(MethodInfo("@export_node_path", PropertyInfo(Variant::STRING, "type")), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_NODE_PATH_VALID_TYPES, Variant::NODE_PATH>, 1, true);
|
||||
register_annotation(MethodInfo("@export_flags", PropertyInfo(Variant::STRING, "names")), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_FLAGS, Variant::INT>, 0, true);
|
||||
register_annotation(MethodInfo("@export_flags_2d_render"), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_LAYERS_2D_RENDER, Variant::INT>);
|
||||
register_annotation(MethodInfo("@export_flags_2d_physics"), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_LAYERS_2D_PHYSICS, Variant::INT>);
|
||||
register_annotation(MethodInfo("@export_flags_2d_navigation"), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_LAYERS_2D_NAVIGATION, Variant::INT>);
|
||||
register_annotation(MethodInfo("@export_flags_3d_render"), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_LAYERS_3D_RENDER, Variant::INT>);
|
||||
register_annotation(MethodInfo("@export_flags_3d_physics"), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_LAYERS_3D_PHYSICS, Variant::INT>);
|
||||
register_annotation(MethodInfo("@export_flags_3d_navigation"), AnnotationInfo::VARIABLE, &GDScriptParser::export_annotations<PROPERTY_HINT_LAYERS_3D_NAVIGATION, Variant::INT>);
|
||||
register_annotation(MethodInfo("@warning_ignore", { Variant::STRING, "warning" }), AnnotationInfo::CLASS | AnnotationInfo::VARIABLE | AnnotationInfo::SIGNAL | AnnotationInfo::CONSTANT | AnnotationInfo::FUNCTION | AnnotationInfo::STATEMENT, &GDScriptParser::warning_annotations, 0, true);
|
||||
register_annotation(MethodInfo("@warning_ignore", PropertyInfo(Variant::STRING, "warning")), AnnotationInfo::CLASS | AnnotationInfo::VARIABLE | AnnotationInfo::SIGNAL | AnnotationInfo::CONSTANT | AnnotationInfo::FUNCTION | AnnotationInfo::STATEMENT, &GDScriptParser::warning_annotations, 0, true);
|
||||
// Networking.
|
||||
register_annotation(MethodInfo("@rpc", { Variant::STRING, "mode" }, { Variant::STRING, "sync" }, { Variant::STRING, "transfer_mode" }, { Variant::INT, "transfer_channel" }), AnnotationInfo::FUNCTION, &GDScriptParser::network_annotations<Multiplayer::RPC_MODE_AUTHORITY>, 4, true);
|
||||
register_annotation(MethodInfo("@rpc", PropertyInfo(Variant::STRING, "mode"), PropertyInfo(Variant::STRING, "sync"), PropertyInfo(Variant::STRING, "transfer_mode"), PropertyInfo(Variant::INT, "transfer_channel")), AnnotationInfo::FUNCTION, &GDScriptParser::network_annotations<Multiplayer::RPC_MODE_AUTHORITY>, 4, true);
|
||||
}
|
||||
|
||||
GDScriptParser::~GDScriptParser() {
|
||||
|
|
Loading…
Reference in a new issue