private void AddComponentInstance(EntityComponentDescription <TEntity> component, TEntity entity) { ComponentInstanceDescription instance; if (!component.TryCreateInstance(RunningOn, entity, out instance)) { return; } if (component.Debug) { Log.Log($"Adding component {component} for entity {entity.NameWithId()}", Severity.Level.DEBUG); } //List<ComponentInstanceDescription> instances; //if (!ComponentInstancesByEntity.TryGetValue(entity, out instances)) // ComponentInstancesByEntity[entity] = instances = new List<ComponentInstanceDescription>(); //instances.Add(instance); ComponentInstancesByEntity[entity].Add(instance); foreach (var handler in instance.EventActions.Where(x => x.EventName == ComponentEventNames.Update)) { AddUpdateHandler(handler); } }
public void AddComponent(EntityComponentDescription <TEntity> component) { //Log.Trace($"{component}"); if (component.ShouldRunOn(RunningOn) && Components.Add(component)) { foreach (var entity in ComponentInstancesByEntity.Keys) { AddComponentInstance(component, entity); } } }