Update EcsWorldProvider.cs

This commit is contained in:
Mikhail 2024-03-07 08:26:42 +08:00
parent 23527c0183
commit a356d31937

View File

@ -16,7 +16,6 @@ namespace DCFApixels.DragonECS
[Serializable] [Serializable]
public abstract class EcsWorldProvider<TWorld> : EcsWorldProviderBase where TWorld : EcsWorld public abstract class EcsWorldProvider<TWorld> : EcsWorldProviderBase where TWorld : EcsWorld
{ {
private readonly static EcsWorldConfig _emptyConfig = new EcsWorldConfig();
private TWorld _world; private TWorld _world;
[SerializeField] [SerializeField]
@ -25,19 +24,19 @@ namespace DCFApixels.DragonECS
[Header("Default Configs")] [Header("Default Configs")]
[Header("Entites")] [Header("Entites")]
[SerializeField] [SerializeField]
private int EntitiesCapacity = _emptyConfig.Get_EntitiesCapacity(); private int EntitiesCapacity = EcsWorldConfig.Default.EntitiesCapacity;
[Header("Groups")] [Header("Groups")]
[SerializeField] [SerializeField]
private int GroupCapacity = _emptyConfig.Get_GroupCapacity(); private int GroupCapacity = EcsWorldConfig.Default.GroupCapacity;
[Header("Pools/Components")] [Header("Pools/Components")]
[SerializeField] [SerializeField]
private int PoolsCapacity = _emptyConfig.Get_PoolsCapacity(); private int PoolsCapacity = EcsWorldConfig.Default.PoolsCapacity;
[SerializeField] [SerializeField]
private int PoolComponentsCapacity = _emptyConfig.Get_PoolComponentsCapacity(); private int PoolComponentsCapacity = EcsWorldConfig.Default.PoolComponentsCapacity;
[SerializeField] [SerializeField]
private int PoolRecycledComponentsCapacity = _emptyConfig.Get_PoolRecycledComponentsCapacity(); private int PoolRecycledComponentsCapacity = EcsWorldConfig.Default.PoolRecycledComponentsCapacity;
#region Properties #region Properties
public sealed override bool IsEmpty public sealed override bool IsEmpty
@ -95,13 +94,9 @@ namespace DCFApixels.DragonECS
#region Events #region Events
protected virtual TWorld BuildWorld() protected virtual TWorld BuildWorld()
{ {
EcsWorldConfig config = new EcsWorldConfig(); EcsWorldConfig config = new EcsWorldConfig(EntitiesCapacity, GroupCapacity, PoolsCapacity, PoolComponentsCapacity, PoolRecycledComponentsCapacity);
config.Set_EntitiesCapacity(EntitiesCapacity); ConfigContainer configs = new ConfigContainer().Set(config);
config.Set_GroupCapacity(GroupCapacity); return (TWorld)Activator.CreateInstance(typeof(TWorld), new object[] { configs, _worldID });
config.Set_PoolComponentsCapacity(PoolComponentsCapacity);
config.Set_PoolRecycledComponentsCapacity(PoolRecycledComponentsCapacity);
config.Set_PoolsCapacity(PoolsCapacity);
return (TWorld)Activator.CreateInstance(typeof(TWorld), new object[] { config, _worldID });
} }
protected virtual void OnWorldCreated(TWorld world) { } protected virtual void OnWorldCreated(TWorld world) { }
#endregion #endregion