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))); }
private void CreateFileEnt(MainEntity ent, EventInfo eventInfo, string contextName) { var methodArgs = ent.GetEventMethodArgs(eventInfo, ", " + (!ent.hasPublicFieldsComp ? ent.PrefixedComponentName(_contexts) : GetMethodArgs(ent.publicFieldsComp.Values.ToArray( )))); var filePath = "Events" + Path.DirectorySeparatorChar + "Systems" + Path.DirectorySeparatorChar + ent.Event(_contexts, contextName, eventInfo) + "EventSystem.cs"; var template = eventInfo.EventTarget == EventTarget.Self ? TEMPLATE_SELF : TEMPLATE_ANY; var cachedAccess = !ent.hasPublicFieldsComp ? string.Empty : "var component = e." + ent.ComponentName(_contexts).LowercaseFirst( ) + ";"; if (eventInfo.EventType == EventType.Removed) { methodArgs = string.Empty; cachedAccess = string.Empty; } var contents = template .Replace("${GroupEvent}", eventInfo.EventType.ToString( )) .Replace("${filter}", GetFilter(ent, contextName, eventInfo)) .Replace("${cachedAccess}", cachedAccess) .Replace("${methodArgs}", methodArgs) .Replace(_contexts, ent, contextName, eventInfo); var generatedBy = GetType( ).FullName; var fileEnt = _contexts.main.CreateEntity( ); fileEnt.AddGeneratedFileComp(filePath, contents.WrapInNamespace(_contexts), generatedBy); }
public static string EventListener(this MainEntity ent, Contexts contexts, string contextName, EventInfo eventInfo) { return(ent.Event(contexts, contextName, eventInfo) + "Listener"); }