diff --git a/src/EcsWorld.cs b/src/EcsWorld.cs index 86c1329..0f89937 100644 --- a/src/EcsWorld.cs +++ b/src/EcsWorld.cs @@ -158,6 +158,21 @@ namespace DCFApixels.DragonECS } return (TExecutor)result; } + #endregion + + #region WorldComponents + public void Set(T component) where T : class + { + int index = WorldMetaStorage.GetWorldComponentID(_worldTypeID); + if (index >= _components.Length) + Array.Resize(ref _components, _components.Length << 1); + if (component == null) + { + _components[index] = component; + if (component is IEcsWorldComponent intr) + intr.Init(this); + } + } public T Get() where T : class, new() { int index = WorldMetaStorage.GetWorldComponentID(_worldTypeID);