Event system now accepts any data and the GUI receives simpler events with data for them.

This commit is contained in:
Zed A. Shaw 2024-11-07 09:16:21 -05:00
parent 0e79288afc
commit ed9d0de8e0
7 changed files with 45 additions and 57 deletions

View file

@ -18,6 +18,7 @@ namespace DinkyECS {
struct Event {
int event = 0;
Entity entity = 0;
std::any data;
};
typedef std::queue<Event> EventQueue;
@ -105,9 +106,9 @@ namespace DinkyECS {
}
template<typename Comp>
void send(Comp event, Entity entity) {
void send(Comp event, Entity entity, std::any data) {
EventQueue &queue = queue_map_for<Comp>();
queue.push({event, entity});
queue.push({event, entity, data});
}
template<typename Comp>
@ -115,6 +116,7 @@ namespace DinkyECS {
EventQueue &queue = queue_map_for<Comp>();
Event evt = queue.front();
queue.pop();
// I could use tie here to auto extract the any
return evt;
}