EntityStructInitializer BuildEntity(EGID entityID, IEntityBuilder[] entitiesToBuild,
                                            IEnumerable <object> implementors = null)
        {
            CheckAddEntityID(entityID);

            var dic = EntityFactory.BuildGroupedEntities(entityID, _groupedEntityToAdd, entitiesToBuild, implementors);

            return(new EntityStructInitializer(entityID, dic));
        }
        EntityStructInitializer BuildEntity <T>(ExclusiveGroup.ExclusiveGroupStruct groupID, object[] implementors) where T : IEntityDescriptor, new()
        {
            //temporary egid, will change during the real submission, needed for the initialization look up
            var egid = EGID.CREATE_WITHOUT_ID(groupID, _groupedEntityToAdd.entitiesBuiltThisSubmission++);

            var dic = EntityFactory.BuildGroupedEntities(egid, _groupedEntityToAdd.current,
                                                         EntityDescriptorTemplate <T> .descriptor.entitiesToBuild, implementors);

            return(new EntityStructInitializer(egid, dic.groups));
        }
Ejemplo n.º 3
0
        EntityComponentInitializer BuildEntity
            (EGID entityID, IComponentBuilder[] componentsToBuild, Type implementorType, IEnumerable <object> implementors = null)
        {
            CheckAddEntityID(entityID, implementorType);
            Check.Require(entityID.groupID != 0, "invalid group detected");

            var dic = EntityFactory.BuildGroupedEntities(entityID, _groupedEntityToAdd, componentsToBuild
                                                         , implementors);

            return(new EntityComponentInitializer(entityID, dic));
        }
        EntityStructInitializer BuildEntity <T>(EGID entityID, T entityDescriptor, object[] implementors)
            where T : IEntityDescriptor
        {
            var descriptorEntitiesToBuild = entityDescriptor.entitiesToBuild;

            CheckAddEntityID(entityID, entityDescriptor);

            var dic = EntityFactory.BuildGroupedEntities(entityID, _groupedEntityToAdd,
                                                         descriptorEntitiesToBuild, implementors);

            return(new EntityStructInitializer(entityID, dic));
        }
Ejemplo n.º 5
0
        EntityInitializer BuildEntity
            (EGID entityID, IComponentBuilder[] componentsToBuild, Type descriptorType,
            IEnumerable <object> implementors = null)
        {
            CheckAddEntityID(entityID, descriptorType);
            Check.Require(entityID.groupID != 0, "invalid group detected, are you using new ExclusiveGroupStruct() instead of new ExclusiveGroup()?");

            var dic = EntityFactory.BuildGroupedEntities(entityID, _groupedEntityToAdd, componentsToBuild
                                                         , implementors, descriptorType);

            return(new EntityInitializer(entityID, dic));
        }
Ejemplo n.º 6
0
        EntityStructInitializer BuildEntity <T>(EGID entityID,
                                                T entityDescriptor,
                                                object[] implementors) where T : IEntityDescriptor
        {
            var descriptorEntitiesToBuild = entityDescriptor.entitiesToBuild;

#if DEBUG && !PROFILER
            CheckEntityID(entityID, entityDescriptor);
#endif
            var dic = EntityFactory.BuildGroupedEntities(entityID,
                                                         _groupedEntityToAdd.current,
                                                         descriptorEntitiesToBuild,
                                                         implementors);

            return(new EntityStructInitializer(entityID, dic));
        }
        EntityInitializer BuildEntity(EGID entityID, IComponentBuilder[] componentsToBuild, Type descriptorType
                                      , IEnumerable <object> implementors = null)
        {
            CheckAddEntityID(entityID, descriptorType);

            DBC.ECS.Check.Require(entityID.groupID != 0
                                  , "invalid group detected, are you using new ExclusiveGroupStruct() instead of new ExclusiveGroup()?");

            CreateReferenceLocator(entityID);

            var dic = EntityFactory.BuildGroupedEntities(entityID, _groupedEntityToAdd, componentsToBuild, implementors
#if DEBUG && !PROFILE_SVELTO
                                                         , descriptorType
#endif
                                                         );

            return(new EntityInitializer(entityID, dic));
        }
Ejemplo n.º 8
0
        EntityInitializer BuildEntity(EGID entityID, IComponentBuilder[] componentsToBuild, Type descriptorType,
                                      IEnumerable <object> implementors, string caller)
        {
            CheckAddEntityID(entityID, descriptorType, caller);

            DBC.ECS.Check.Require(entityID.groupID.isInvalid == false,
                                  "invalid group detected, are you using new ExclusiveGroupStruct() instead of new ExclusiveGroup()?");

            var reference = _entityLocator.ClaimReference();

            _entityLocator.SetReference(reference, entityID);

            var dic = EntityFactory.BuildGroupedEntities(entityID, _groupedEntityToAdd, componentsToBuild, implementors
#if DEBUG && !PROFILE_SVELTO
                                                         , descriptorType
#endif
                                                         );

            return(new EntityInitializer(entityID, dic, reference));
        }