29 lines
1.1 KiB
C
29 lines
1.1 KiB
C
#ifndef GODOT_EXTRA_MACROS_H
|
|
#define GODOT_EXTRA_MACROS_H
|
|
|
|
#define BIND_GET_SET(m_property) \
|
|
ClassDB::bind_method(D_METHOD("set_" #m_property, #m_property), \
|
|
&self_type::set_##m_property); \
|
|
ClassDB::bind_method(D_METHOD("get_" #m_property), \
|
|
&self_type::get_##m_property)
|
|
|
|
#define BIND_HPROPERTY(m_type, m_property, ...) \
|
|
BIND_GET_SET(m_property); \
|
|
ADD_PROPERTY(PropertyInfo(m_type, #m_property, __VA_ARGS__), \
|
|
"set_" #m_property, "get_" #m_property)
|
|
|
|
#define BIND_PROPERTY(m_type, m_property) \
|
|
BIND_GET_SET(m_property); \
|
|
ADD_PROPERTY(PropertyInfo(m_type, #m_property), "set_" #m_property, \
|
|
"get_" #m_property)
|
|
|
|
#define __VA_ARGS__STRING(...) String(#__VA_ARGS__)
|
|
|
|
#define GDENUM(M_Name, ...) \
|
|
enum M_Name { __VA_ARGS__ }; \
|
|
static String M_Name##_hint() { \
|
|
return __VA_ARGS__STRING(__VA_ARGS__); \
|
|
}
|
|
|
|
#endif // !GODOT_EXTRA_MACROS_H
|