Add Signal to ECS

- Add Signal class to ECS used to send signals/events into systems
This commit is contained in:
Thraix
2023-05-22 12:52:15 +02:00
parent 0cd35928a7
commit cd4abe6007
15 changed files with 144 additions and 23 deletions
+7 -1
View File
@@ -15,6 +15,12 @@ namespace Copium
manager->Each<Components...>([&](EntityId entityId, Components&... components) { RunEntity(Entity{manager, entityId}, components...); });
}
virtual void RunEntity(Entity entity, Components&... components) = 0;
void Run(const Signal& signal) override
{
manager->Each<Components...>([&](EntityId entityId, Components&... components) { RunEntity(signal, Entity{manager, entityId}, components...); });
}
virtual void RunEntity(Entity entity, Components&... components) {};
virtual void RunEntity(const Signal& signal, Entity entity, Components&... components) {};
};
}