break-utopia/modules/break_utopia/macros.h
2025-11-25 23:41:31 +01:00

28 lines
1.1 KiB
C

#ifndef GODOT_EXTRA_MACROS_H
#define GODOT_EXTRA_MACROS_H
#define GET_SET_FNS(m_type, m_property) \
void set_##m_property(m_type const &value) { \
this->m_property = value; \
} \
m_type get_##m_property() const { \
return this->m_property; \
}
#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)
#endif // !GODOT_EXTRA_MACROS_H