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)); }
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)); }
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)); }
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)); }
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)); }