diff --git a/src/Pools/EcsPool.cs b/src/Pools/EcsPool.cs index cb4bb09..7bad6f4 100644 --- a/src/Pools/EcsPool.cs +++ b/src/Pools/EcsPool.cs @@ -370,6 +370,17 @@ namespace DCFApixels.DragonECS public static implicit operator EcsPool(OptionalMarker a) { return a.GetInstance>(); } public static implicit operator EcsPool(EcsWorld.GetPoolInstanceMarker a) { return a.GetInstance>(); } #endregion + + #region Apply + public static void Apply(ref T component, int entityID, short worldID) + { + EcsWorld.GetPoolInstance>(worldID).TryAddOrGet(entityID) = component; + } + public static void Apply(ref T component, int entityID, EcsPool pool) + { + pool.TryAddOrGet(entityID) = component; + } + #endregion } public static class EcsPoolExtensions diff --git a/src/Pools/EcsTagPool.cs b/src/Pools/EcsTagPool.cs index b7626d3..74d5f28 100644 --- a/src/Pools/EcsTagPool.cs +++ b/src/Pools/EcsTagPool.cs @@ -317,6 +317,17 @@ namespace DCFApixels.DragonECS public static implicit operator EcsTagPool(OptionalMarker a) { return a.GetInstance>(); } public static implicit operator EcsTagPool(EcsWorld.GetPoolInstanceMarker a) { return a.GetInstance>(); } #endregion + + #region Apply + public static void Apply(ref T component, int entityID, short worldID) + { + EcsWorld.GetPoolInstance>(worldID).TryAdd(entityID); + } + public static void Apply(ref T component, int entityID, EcsTagPool pool) + { + pool.TryAdd(entityID); + } + #endregion } public static class EcsTagPoolExtensions