Merge pull request #110763 from Ivorforce/object-derives-from

Use `AncestralClass` to speed up `Object::cast_to` when possible.
This commit is contained in:
Thaddeus Crews 2025-09-22 13:28:45 -05:00
commit 035f5d3055
No known key found for this signature in database
GPG key ID: 8C6E5FEB5FC03CCC
15 changed files with 62 additions and 8 deletions

View file

@ -55,6 +55,8 @@ protected:
static void _bind_methods();
public:
static constexpr AncestralClass static_ancestral_class = AncestralClass::NODE_2D;
#ifdef TOOLS_ENABLED
virtual Dictionary _edit_get_state() const override;
virtual void _edit_set_state(const Dictionary &p_state) override;

View file

@ -37,6 +37,8 @@ class Area2D : public CollisionObject2D {
GDCLASS(Area2D, CollisionObject2D);
public:
static constexpr AncestralClass static_ancestral_class = AncestralClass::AREA_2D;
enum SpaceOverride {
SPACE_OVERRIDE_DISABLED,
SPACE_OVERRIDE_COMBINE,

View file

@ -39,6 +39,8 @@ class CollisionObject2D : public Node2D {
GDCLASS(CollisionObject2D, Node2D);
public:
static constexpr AncestralClass static_ancestral_class = AncestralClass::COLLISION_OBJECT_2D;
enum DisableMode {
DISABLE_MODE_REMOVE,
DISABLE_MODE_MAKE_STATIC,