-removed comments

This commit is contained in:
Mergul 2019-04-06 15:03:29 +00:00
parent e7d3d08feb
commit bf8fac84cf

View file

@ -246,12 +246,10 @@ class EntityManager
static assert(0, "System should gave \"EntitiesData\" struct for input components");
}
//dfmt off
static if (hasMember!(Sys, "EventInput"))
{
/* static void genEventCompList(Sys)(ref EventCallData data, EntityInfo* info, ref Sys.EventInput input)
{*/
static void callEventHandler(Type)(ref EventCallData data){
static void callEventHandler(Type)(ref EventCallData data)
{
Sys.EventInput input;
Sys* dataSystem = cast(Sys*) data.system_pointer;
EntityInfo* info = data.block.type_info;
@ -269,10 +267,13 @@ class EntityManager
}
else
{
enum long indexInEntitiesData=getIndexOfTypeInEntitiesData!(Sys.EntitiesData, EventFieldType);
static assert(indexInEntitiesData != -1, "Component present in EventInput has to be present in EntitiesData!");// Type present in EventInput has to be present in EntitiesData
enum long indexInEntitiesData = getIndexOfTypeInEntitiesData!(Sys.EntitiesData,
EventFieldType);
static assert(indexInEntitiesData != -1,
"Component present in EventInput has to be present in EntitiesData!"); // Type present in EventInput has to be present in EntitiesData
enum bool isOptional = hasUDA!(Sys.EntitiesData.tupleof[indexInEntitiesData], "optional");
enum bool isOptional = hasUDA!(Sys.EntitiesData.tupleof[indexInEntitiesData],
"optional");
static if (isOptional)
{
eventField = null;
@ -289,14 +290,18 @@ class EntityManager
dataSystem.handleEvent(input, *cast(Type*) data.event);
}
static void setEventCallers(Sys)(ref System system){
static void setEventCallers(Sys)(ref System system)
{
enum allEventHandlers = __traits(getOverloads, Sys, "handleEvent").length;
system.m_event_callers = Mallocator.instance.makeArray!(System.EventCaller)(allEventHandlers);
system.m_event_callers = Mallocator.instance.makeArray!(
System.EventCaller)(allEventHandlers);
foreach (j, func; __traits(getOverloads, Sys, "handleEvent"))
{
alias EventParamType=Parameters!( __traits(getOverloads, Sys, "handleEvent")[j] )[1];
system.m_event_callers[j].callback = cast(void*)&callEventHandler!(EventParamType);
alias EventParamType = Parameters!(__traits(getOverloads,
Sys, "handleEvent")[j])[1];
system.m_event_callers[j].callback = cast(
void*)&callEventHandler!(EventParamType);
system.m_event_callers[j].id = EventParamType.event_id;
}
}
@ -305,66 +310,8 @@ class EntityManager
{
setEventCallers!(Sys)(system);
}
/*static string checkHandler()(string member)
{
string ret;
ret ~= "(Parameters!(Sys."~member~")).length == 2 && ";
ret ~= "((is(Parameters!(Sys."~member~")[0] == Sys.EventInput) && hasStaticMember!(Parameters!(Sys."~member~")[1],\"event_id\")) ||";
ret ~= " (is(Parameters!(Sys."~member~")[1] == Sys.EventInput) && hasStaticMember!(Parameters!(Sys."~member~")[0],\"event_id\")))";
return ret;
}*/
/*static struct Handler
{
ushort id;
void* callback;
}*/
/*static string catchEventHanlders()()
{
int event_handlers = 0;
string ret;
string event_param;
static if(__traits(hasMember, Sys, "handleEvent"))
{
foreach(func; __traits(getOverloads, Sys, "handleEvent"))
{
event_handlers++;//pragma(msg,"kupa");
}
//ret ~= "Handler[] handlers = (cast(Handler*)alloca("~event_handlers.to!string~" * (Handler).sizeof))[0 .. "~event_handlers.to!string~"];\n";
ret ~= "system.m_event_callers = Mallocator.instance.makeArray!(System.EventCaller)("~event_handlers.to!string~");";
event_handlers = 0;
foreach(j,func; __traits(getOverloads, Sys, "handleEvent"))
{
event_param = "Parameters!(__traits(getOverloads, Sys, \"handleEvent\")["~j.to!string~"])[1]";
ret ~= "static void callHandler"~event_handlers.to!string~"(ref EventCallData data)\n{\n";
ret ~= "Sys* s = cast(Sys*) data.system_pointer;
EntityInfo* info = data.block.type_info;";
//ret ~= genEventCompList();
ret ~= "Sys.EventInput input;\n";
ret ~= "genEventCompList!(Sys)(data, info, input);";
ret ~= "s.handleEvent(input, *cast("~event_param~"*)data.event);";
ret ~= "}\n";
ret ~= "system.m_event_callers["~event_handlers.to!string~"].callback = cast(void*)&callHandler"~event_handlers.to!string~";";
ret ~= "system.m_event_callers["~event_handlers.to!string~"].id = "~event_param~".event_id;";
event_handlers++;
}
}
return ret;
}
//pragma(msg,catchEventHanlders());
mixin(catchEventHanlders());*/
}
//dfmt on
static string genCompList()()
{