public GameEntity CreateEntity(EntityDefinition definition) { GameEntity entity = new GameEntity(); entity.contentName = definition.contentName; entity.CreateBehaviourRepostory(); AddBehaviours(entity, definition); return(entity); }
public EntityDefinition Create(string entityName, List <EntityBehaviourType> requiredBehaviourTypes) { EntityDefinition definition = new EntityDefinition(entityName); for (int i = 0; i < requiredBehaviourTypes.Count; i++) { definition.requiredBehaviourTypes.Add(requiredBehaviourTypes[i]); EntityBehaviourDefinition def = AddBehaviourToEntityDefinition(definition, requiredBehaviourTypes[i]); } return(definition); }
public void CreateEntity(EntityDefinition definition) { if (systemEntites == null) { Debug.Log("No EntityRepository assigned to SubSystem"); } if (systemEntites.entityBuilder == null) { Debug.Log("No EntityBuilder assigned to SubSystem.systemEntites"); } systemEntites.GetOrCreate(definition); }
public void AddBehaviours(GameEntity entity, EntityDefinition definition) { for (int i = 0; i < definition.requiredBehaviours.Count; i++) { if (entity.RepositoryContains(definition.requiredBehaviours[i].behaviourType)) { continue; } else { EntityBehaviour behaviour = AddBehaviourOfType(entity, definition.requiredBehaviours[i].behaviourType); behaviour.ConfigureFromDefinition(definition.requiredBehaviours[i]); entity.AddBehaviour(behaviour); } } }
public EntityBehaviourDefinition AddBehaviourToEntityDefinition(EntityDefinition definition, EntityBehaviourType behaviourType) { for (int i = 0; i < definition.requiredBehaviours.Count; i++) { if (definition.requiredBehaviours[i].behaviourType == behaviourType) { return(definition.requiredBehaviours[i]); } } EntityBehaviourDefinition newDefinition = new EntityBehaviourDefinition_Default(); switch (behaviourType) { case EntityBehaviourType.Growable: newDefinition = new EntityBehaviourDefinition_Growable(100, 150); break; } definition.requiredBehaviours.Add(newDefinition); return(newDefinition); }
public void GetOrCreate(EntityDefinition definition) { GameEntity entity; if (allowRecycling) { int lastIndex = CacheCount() - 1; if (lastIndex >= 0) { entity = GetFromCache(); } else { entity = CreateEntity(definition); } } else { entity = CreateEntity(definition); } Add(entity); }
public void Configure(EntityDefinition definition) { }