diff --git a/src/EcsWorld.pools.cs b/src/EcsWorld.pools.cs index b9d02f0..f6a9040 100644 --- a/src/EcsWorld.pools.cs +++ b/src/EcsWorld.pools.cs @@ -36,7 +36,7 @@ namespace DCFApixels.DragonECS [UnityEngine.Scripting.Preserve] #endif [MethodImpl(MethodImplOptions.AggressiveInlining)] - public TPool UncheckedGetPool() where TPool : IEcsPoolImplementation, new() + public TPool GetPoolUnchecked() where TPool : IEcsPoolImplementation, new() { return UncheckedGet>().instance; } diff --git a/src/Pools/EcsHybridPool.cs b/src/Pools/EcsHybridPool.cs index d796481..85f9383 100644 --- a/src/Pools/EcsHybridPool.cs +++ b/src/Pools/EcsHybridPool.cs @@ -235,9 +235,9 @@ namespace DCFApixels.DragonECS return self.GetPool>(); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static EcsHybridPool UncheckedGetPool(this EcsWorld self) where T : IEcsHybridComponent + public static EcsHybridPool GetPoolUnchecked(this EcsWorld self) where T : IEcsHybridComponent { - return self.UncheckedGetPool>(); + return self.GetPoolUnchecked>(); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -255,6 +255,35 @@ namespace DCFApixels.DragonECS { return self.Optional>(); } + + //------------------------------------------------- + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static EcsHybridPool GetHybridPool(this EcsWorld self) where T : IEcsHybridComponent + { + return self.GetPool>(); + } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static EcsHybridPool GetHybridPoolUnchecked(this EcsWorld self) where T : IEcsHybridComponent + { + return self.GetPoolUnchecked>(); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static EcsHybridPool IncludeHybrid(this EcsAspectBuilderBase self) where T : IEcsHybridComponent + { + return self.Include>(); + } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static EcsHybridPool ExcludeHybrid(this EcsAspectBuilderBase self) where T : IEcsHybridComponent + { + return self.Exclude>(); + } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static EcsHybridPool OptionalHybrid(this EcsAspectBuilderBase self) where T : IEcsHybridComponent + { + return self.Optional>(); + } } public partial class EcsWorld diff --git a/src/Pools/EcsPool.cs b/src/Pools/EcsPool.cs index 8b058ec..7fdcfc7 100644 --- a/src/Pools/EcsPool.cs +++ b/src/Pools/EcsPool.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Reflection; using System.Runtime.CompilerServices; namespace DCFApixels.DragonECS @@ -194,9 +195,9 @@ namespace DCFApixels.DragonECS return self.GetPool>(); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static EcsPool UncheckedGetPool(this EcsWorld self) where TComponent : struct, IEcsComponent + public static EcsPool GetPoolUnchecked(this EcsWorld self) where TComponent : struct, IEcsComponent { - return self.UncheckedGetPool>(); + return self.GetPoolUnchecked>(); } [MethodImpl(MethodImplOptions.AggressiveInlining)] diff --git a/src/Pools/EcsTagPool.cs b/src/Pools/EcsTagPool.cs index 2256c93..30d7d61 100644 --- a/src/Pools/EcsTagPool.cs +++ b/src/Pools/EcsTagPool.cs @@ -202,9 +202,9 @@ namespace DCFApixels.DragonECS return self.GetPool>(); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static EcsTagPool UncheckedGetPool(this EcsWorld self) where TTagComponent : struct, IEcsTagComponent + public static EcsTagPool GetPoolUnchecked(this EcsWorld self) where TTagComponent : struct, IEcsTagComponent { - return self.UncheckedGetPool>(); + return self.GetPoolUnchecked>(); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -222,5 +222,34 @@ namespace DCFApixels.DragonECS { return self.Optional>(); } + + //--------------------------------------------------- + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static EcsTagPool GetTagPool(this EcsWorld self) where TTagComponent : struct, IEcsTagComponent + { + return self.GetPool>(); + } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static EcsTagPool GetTagPoolUnchecked(this EcsWorld self) where TTagComponent : struct, IEcsTagComponent + { + return self.GetPoolUnchecked>(); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static EcsTagPool IncludeTag(this EcsAspectBuilderBase self) where TTagComponent : struct, IEcsTagComponent + { + return self.Include>(); + } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static EcsTagPool ExcludeTag(this EcsAspectBuilderBase self) where TTagComponent : struct, IEcsTagComponent + { + return self.Exclude>(); + } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static EcsTagPool OptionalTag(this EcsAspectBuilderBase self) where TTagComponent : struct, IEcsTagComponent + { + return self.Optional>(); + } } }