From 06a5f91769632769fa8133c32b1af91c5b8dfe45 Mon Sep 17 00:00:00 2001 From: maelstrom Date: Sat, 26 Apr 2025 19:18:51 +0200 Subject: [PATCH] refactor: moved GetClass and TYPE into AUTOGEN_PREAMBLE --- core/src/objects/annotation.h | 3 +++ core/src/objects/datamodel.h | 3 --- core/src/objects/handles.h | 3 --- core/src/objects/joint/jointinstance.h | 3 --- core/src/objects/joint/snap.h | 3 --- core/src/objects/joint/weld.h | 3 --- core/src/objects/jointsservice.h | 3 --- core/src/objects/part.h | 3 --- core/src/objects/script.h | 3 --- core/src/objects/script/scriptcontext.h | 3 --- core/src/objects/script/serverscriptservice.h | 3 --- core/src/objects/workspace.h | 4 ---- 12 files changed, 3 insertions(+), 34 deletions(-) diff --git a/core/src/objects/annotation.h b/core/src/objects/annotation.h index 50e6f15..37280b7 100644 --- a/core/src/objects/annotation.h +++ b/core/src/objects/annotation.h @@ -28,4 +28,7 @@ result InternalGetPropertyMeta(std::string name) o fallible InternalSetPropertyValue(std::string name, Data::Variant value) override; \ result InternalGetPropertyValue(std::string name) override; \ std::vector InternalGetProperties() override; \ +public: \ +const static InstanceType TYPE; \ +virtual const InstanceType* GetClass() override; \ private: diff --git a/core/src/objects/datamodel.h b/core/src/objects/datamodel.h index c9719d0..28f82cd 100644 --- a/core/src/objects/datamodel.h +++ b/core/src/objects/datamodel.h @@ -19,8 +19,6 @@ private: void DeserializeService(pugi::xml_node node); static void cloneService(std::shared_ptr target, std::shared_ptr, RefState<_RefStatePropertyCell>); public: - const static InstanceType TYPE; - std::map> services; std::optional currentFile; @@ -29,7 +27,6 @@ public: void Init(bool runMode = false); static inline std::shared_ptr New() { return std::make_shared(); }; - virtual const InstanceType* GetClass() override; result, NoSuchService> GetService(std::string className); result>, NoSuchService> FindService(std::string className); diff --git a/core/src/objects/handles.h b/core/src/objects/handles.h index 27f95a5..d2a5876 100644 --- a/core/src/objects/handles.h +++ b/core/src/objects/handles.h @@ -34,8 +34,6 @@ enum HandlesType { class INSTANCE_WITH(abstract) Handles : public Instance { AUTOGEN_PREAMBLE public: - const static InstanceType TYPE; - bool nixAxes = false; // XYZ -> ZXY, used with rotation bool active; std::weak_ptr adornee; @@ -54,5 +52,4 @@ public: std::optional RaycastHandle(rp3d::Ray ray); static inline std::shared_ptr New() { return std::make_shared(); }; - virtual const InstanceType* GetClass() override; }; \ No newline at end of file diff --git a/core/src/objects/joint/jointinstance.h b/core/src/objects/joint/jointinstance.h index 033b99e..42af21a 100644 --- a/core/src/objects/joint/jointinstance.h +++ b/core/src/objects/joint/jointinstance.h @@ -29,7 +29,6 @@ protected: virtual void buildJoint() = 0; virtual void breakJoint() = 0; public: - const static InstanceType TYPE; [[ def_prop(name="Part0", on_update=onUpdated) ]] std::weak_ptr part0; @@ -42,6 +41,4 @@ public: JointInstance(const InstanceType*); ~JointInstance(); - - virtual const InstanceType* GetClass() override; }; \ No newline at end of file diff --git a/core/src/objects/joint/snap.h b/core/src/objects/joint/snap.h index ac33976..8a6ad63 100644 --- a/core/src/objects/joint/snap.h +++ b/core/src/objects/joint/snap.h @@ -13,12 +13,9 @@ class INSTANCE Snap : public JointInstance { virtual void buildJoint() override; virtual void breakJoint() override; public: - const static InstanceType TYPE; - Snap(); ~Snap(); static inline std::shared_ptr New() { return std::make_shared(); }; static inline std::shared_ptr Create() { return std::make_shared(); }; - virtual const InstanceType* GetClass() override; }; \ No newline at end of file diff --git a/core/src/objects/joint/weld.h b/core/src/objects/joint/weld.h index 061f018..b9eafdb 100644 --- a/core/src/objects/joint/weld.h +++ b/core/src/objects/joint/weld.h @@ -13,12 +13,9 @@ class INSTANCE Weld : public JointInstance { virtual void buildJoint() override; virtual void breakJoint() override; public: - const static InstanceType TYPE; - Weld(); ~Weld(); static inline std::shared_ptr New() { return std::make_shared(); }; static inline std::shared_ptr Create() { return std::make_shared(); }; - virtual const InstanceType* GetClass() override; }; \ No newline at end of file diff --git a/core/src/objects/jointsservice.h b/core/src/objects/jointsservice.h index e08972f..45db906 100644 --- a/core/src/objects/jointsservice.h +++ b/core/src/objects/jointsservice.h @@ -12,11 +12,8 @@ protected: bool initialized = false; public: - const static InstanceType TYPE; - JointsService(); ~JointsService(); static inline std::shared_ptr Create() { return std::make_shared(); }; - virtual const InstanceType* GetClass() override; }; \ No newline at end of file diff --git a/core/src/objects/part.h b/core/src/objects/part.h index 0fb2e41..5cc1769 100644 --- a/core/src/objects/part.h +++ b/core/src/objects/part.h @@ -49,8 +49,6 @@ protected: void OnAncestryChanged(std::optional> child, std::optional> newParent) override; void onUpdated(std::string); public: - const static InstanceType TYPE; - [[ def_prop(name="Velocity", on_update=onUpdated) ]] Vector3 velocity; [[ def_prop(name="CFrame", on_update=onUpdated), cframe_position_prop(name="Position"), cframe_rotation_prop(name="Rotation") ]] @@ -89,7 +87,6 @@ public: static inline std::shared_ptr New() { return std::make_shared(); }; static inline std::shared_ptr New(PartConstructParams params) { return std::make_shared(params); }; static inline InstanceRef Create() { return std::make_shared(); }; - virtual const InstanceType* GetClass() override; inline Vector3 position() { return cframe.Position(); } diff --git a/core/src/objects/script.h b/core/src/objects/script.h index bd821b1..249df91 100644 --- a/core/src/objects/script.h +++ b/core/src/objects/script.h @@ -7,8 +7,6 @@ class INSTANCE_WITH(explorer_icon="script") Script : public Instance { AUTOGEN_PREAMBLE public: - const static InstanceType TYPE; - Script(); ~Script(); @@ -19,5 +17,4 @@ public: static inline std::shared_ptr