internal void AddLoadedComponent(LoadedComponent component) { components.Add(component); componentSet.Add(component.Type); componentDict[component.Type] = component; foreach (Type type in ClassFactory.GetRequirements(component.Type)) { needs.Add(type); } foreach (Type type in ClassFactory.GetProvided(component.Type)) { componentSet.Add(type); } }
internal LoadedEntity entityParse(object entity, string name, int id) { List<string> isType = new List<string>(); List<string> isExactType = new List<string>(); IEnumerable<object> components = loaderUtility.GetOfType(entity, loaderUtility.ComponentType); IEnumerable<object> events = loaderUtility.GetOfType(entity, loaderUtility.EventType); PropertyHolder entityProperties = loaderUtility.GetProperties(entity); IEnumerable<string> prototypes = loaderUtility.GetPrototypes(entity); LoadedEntity loadedEntity = new LoadedEntity(name, entityProperties, id, prototypes, loaderUtility); foreach (object component in components) { PropertyHolder componentProperties = loaderUtility.GetProperties(component); string type = loaderUtility.GetType(component); LoadedComponent lc = new LoadedComponent(type, componentProperties, loaderUtility); loadedEntity.AddLoadedComponent(lc); } foreach (object evt in events) createEvent(Game, evt, loadedEntity); loadedEntity.Prepare(); return loadedEntity; }