Пример #1
0
        public GameEntity CreateEntity(EntityDefinition definition)
        {
            GameEntity entity = new GameEntity();

            entity.contentName = definition.contentName;
            entity.CreateBehaviourRepostory();
            AddBehaviours(entity, definition);
            return(entity);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
 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);
         }
     }
 }
Пример #5
0
        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);
        }
Пример #6
0
        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)
 {
 }