Event system now accepts any data and the GUI receives simpler events with data for them.
This commit is contained in:
parent
0e79288afc
commit
ed9d0de8e0
7 changed files with 45 additions and 57 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue