using Svelto.ECS.Internal; #if ENGINE_PROFILER_ENABLED && UNITY_EDITOR using Svelto.ECS.Profiler; #endif namespace Svelto.ECS { public partial class EnginesRoot { class GenericEntityFactory : IEntityFactory { readonly DataStructures.WeakReference _weakEngine; public GenericEntityFactory(DataStructures.WeakReference weakReference) { _weakEngine = weakReference; } public void BuildEntity(int entityID, object[] implementors) where T : IEntityDescriptor, new() { _weakEngine.Target.BuildEntity(entityID, implementors); } public void BuildEntity(int entityID, EntityDescriptorInfo entityDescriptor, object[] implementors = null) { _weakEngine.Target.BuildEntity(entityID, entityDescriptor, implementors); } public void BuildEntityInGroup(int entityID, int groupID, object[] implementors) where T : IEntityDescriptor, new() { _weakEngine.Target.BuildEntityInGroup(entityID, groupID, implementors); } public void BuildEntityInGroup(int entityID, int groupID, EntityDescriptorInfo entityDescriptor, object[] implementors) { _weakEngine.Target.BuildEntityInGroup(entityID, groupID, entityDescriptor, implementors); } public void PreallocateEntitySpace(int size) where T : IEntityDescriptor, new() { _weakEngine.Target.Preallocate(ExclusiveGroups.StandardEntity, size); } public void PreallocateEntitySpaceInGroup(int groupID, int size) where T : IEntityDescriptor, new() { _weakEngine.Target.Preallocate(groupID, size); } } } }