From 186bf304de72abb1a0ba9deef30eb721e8ea9c5f Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 10 Jul 2026 16:29:35 +0200 Subject: [PATCH] feat: added more macros --- modules/macros.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/modules/macros.h b/modules/macros.h index 53be318533..58a556fdc5 100644 --- a/modules/macros.h +++ b/modules/macros.h @@ -1,6 +1,8 @@ #ifndef GODOT_EXTRA_MACROS_H #define GODOT_EXTRA_MACROS_H +#include "core/object/class_db.h" + #define BIND_GET_SET(m_property) \ ClassDB::bind_method(D_METHOD("set_" #m_property, #m_property), \ &self_type::set_##m_property); \ @@ -17,4 +19,36 @@ ADD_PROPERTY(PropertyInfo(m_type, #m_property), "set_" #m_property, \ "get_" #m_property) +#define GET_SET_FNS(m_type, m_property) \ + m_type get_##m_property() const { \ + return this->m_property; \ + } \ + void set_##m_property(m_type value) { \ + this->m_property = value; \ + } +#define GET_SET_REF_FNS(m_type, m_property) \ + m_type &get_##m_property() { \ + return this->m_property; \ + } \ + void set_##m_property(m_type &value) { \ + this->m_property = value; \ + } + +#define GET_SET_FNS_EX(m_type, m_property, m_ex) \ + m_type get_##m_property() const { \ + return this->m_property; \ + } \ + void set_##m_property(m_type value) { \ + m_ex; \ + this->m_property = value; \ + } + +#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