From cd59ed656a5eeeb395c95871cd21cf4768f6e63d Mon Sep 17 00:00:00 2001 From: cat Date: Fri, 30 Jan 2026 15:58:13 +0200 Subject: [PATCH] Enabled for entities is now a friend of ECS::World --- headers/Systems/ECS/BuiltinComponents.hpp | 8 +++----- source/Systems/ECS/Components.cpp | 3 ++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/headers/Systems/ECS/BuiltinComponents.hpp b/headers/Systems/ECS/BuiltinComponents.hpp index 3f18d45..82b3eef 100644 --- a/headers/Systems/ECS/BuiltinComponents.hpp +++ b/headers/Systems/ECS/BuiltinComponents.hpp @@ -21,9 +21,6 @@ namespace Tourmaline::Systems::Components { struct BaseComponent { public: virtual ~BaseComponent() = default; - -private: - friend class World; }; template @@ -36,7 +33,7 @@ struct Position : public BaseComponent { }; struct Enabled : public BaseComponent { - Enabled(Tourmaline::Systems::ECS::World *world) : ownerWorld(world) {} + Enabled(ECS::World *world) : ownerWorld(world) {} [[nodiscard]] bool isEnabled(); @@ -44,7 +41,8 @@ struct Enabled : public BaseComponent { private: bool enabled = true; - Tourmaline::Systems::ECS::World *ownerWorld; + ECS::World *ownerWorld; + friend ECS::World; }; } // namespace Tourmaline::Systems::Components #endif diff --git a/source/Systems/ECS/Components.cpp b/source/Systems/ECS/Components.cpp index d354dc0..3e2ab94 100644 --- a/source/Systems/ECS/Components.cpp +++ b/source/Systems/ECS/Components.cpp @@ -9,8 +9,9 @@ #include #include +#include bool Tourmaline::Systems::Components::Enabled::isEnabled() { return enabled; } void Tourmaline::Systems::Components::Enabled::setEnabled(bool enable) { - ownerWorld->entitiesToDisable.push_back({this, enable}); + ownerWorld->entitiesToDisable.emplace(std::pair{this, enable}); }