public static void ProvideEventCompNewEnts(Contexts contexts, MainEntity ent) { foreach (var contextName in ent.contextNamesComp.Values) { foreach (var eventInfo in ent.eventComp.Values) { var componentName = ent.comp.FullTypeName.ToComponentName(contexts.settings.isIgnoreNamespaces); var optionalContextName = ent.contextNamesComp.Values.Count > 1 ? contextName : string.Empty; var eventTypeSuffix = ent.GetEventTypeSuffix(eventInfo); var theAnySuffix = eventInfo.EventTarget == EventTarget.Any ? "Any" : ""; var listenerComponentName = optionalContextName + theAnySuffix + componentName + eventTypeSuffix + "Listener"; var eventCompFullTypeName = listenerComponentName.AddComponentSuffix(); var eventListenerCompEnt = contexts.main.CreateEntity( ); eventListenerCompEnt.isEventListenerComp = true; eventListenerCompEnt.AddComp(listenerComponentName, eventCompFullTypeName); eventListenerCompEnt.AddContextNamesComp(new List <String> { contextName }); eventListenerCompEnt.AddPublicFieldsComp(new List <FieldInfo> { new FieldInfo("System.Collections.Generic.List<I" + listenerComponentName + ">", "value") }); } } }
public static string Replace(this string template, Contexts contexts, MainEntity ent, string contextName, EventInfo eventInfo) { var eventListener = ent.EventListener(contexts, contextName, eventInfo); return(template .Replace(contexts, ent, contextName) .Replace("${EventListenerComponent}", eventListener.AddComponentSuffix()) .Replace("${Event}", ent.Event(contexts, contextName, eventInfo)) .Replace("${EventListener}", eventListener) .Replace("${eventListener}", eventListener.LowercaseFirst( )) .Replace("${EventType}", ent.GetEventTypeSuffix(eventInfo))); }
public static string Event(this MainEntity ent, Contexts contexts, string contextName, EventInfo eventInfo) { var optionalContextName = ent.hasContextNamesComp && ent.contextNamesComp.Values.Count > 1 ? contextName : string.Empty; var theAnyPrefix = eventInfo.EventTarget == EventTarget.Any ? "Any" : ""; return(optionalContextName + theAnyPrefix + ent.ComponentName(contexts) + ent.GetEventTypeSuffix(eventInfo)); }