-fixed events bug with calls for unsupported systems

-now empty systems can't handle events and listeners
This commit is contained in:
Mergul 2020-03-07 13:21:29 +01:00
parent d6b53425dd
commit 546b73c567
3 changed files with 71 additions and 14 deletions

View file

@ -412,6 +412,55 @@ struct Sys3
}
}
struct EmptyEventSystem
{
mixin ECS.System;
bool handled = false;
struct EntitiesData
{
uint thread_id;
}
void handleEvent(Entity* entity, TestEvent event)
{
if(!handled)
{
printf("EmptyEventSystem.handleEvent() called!\n");
handled = true;
}
assert(0,"this shouldn't be called!");
}
}
struct EventSystem
{
mixin ECS.System;
bool handled = false;
struct EntitiesData
{
uint thread_id;
TestComp[] comp;
}
void handleEvent(Entity* entity, TestEvent event)
{
if(!handled)
{
printf("EventSystem.handleEvent() called!\n");
handled = true;
}
}
/*void onUpdate(EntitiesData)
{
}*/
}
struct EmptySystem
{
mixin ECS.System;
@ -458,7 +507,7 @@ struct TestSystem2
//TestComp* tt;
}
void handleEvent(Entity* entity, ref TestEvent event)
void handleEvent(Entity* entity, TestEvent event)
{
TestComp3* test = entity.getComponent!TestComp3;
test.bg = event.a;
@ -467,7 +516,7 @@ struct TestSystem2
gEM.sendEvent(entity.id, event2);
}
void handleEvent(Entity* entity, ref TestEvent2 event)
void handleEvent(Entity* entity, TestEvent2 event)
{
TestComp3* test = entity.getComponent!TestComp3;
test.gg = cast(uint) event.a;
@ -618,6 +667,8 @@ else:
gEM.registerSystem!Sys2(-100);
gEM.registerSystem!Sys3(-2);
gEM.registerSystem!EmptySystem(2);
gEM.registerSystem!EmptyEventSystem(2);
gEM.registerSystem!EventSystem(2);
//gEM.registerSystem!TestSystemWithHighPriority(100);
//gEM.registerSystem!TestSystem2(0);
gEM.endRegister();