namespace OECS; /// /// Describes a query over the ECS world with one required component type. /// Add optional Without filters via the fluent API. /// public struct Query where T1 : struct { internal HashSet? WithoutTypes; /// /// Excludes entities that have a component of type . /// public Query Without() where W : struct { WithoutTypes ??= new HashSet(); WithoutTypes.Add(typeof(W)); return this; } } /// /// Describes a query over the ECS world with two required component types. /// public struct Query where T1 : struct where T2 : struct { internal HashSet? WithoutTypes; public Query Without() where W : struct { WithoutTypes ??= new HashSet(); WithoutTypes.Add(typeof(W)); return this; } } /// /// Describes a query over the ECS world with three required component types. /// public struct Query where T1 : struct where T2 : struct where T3 : struct { internal HashSet? WithoutTypes; public Query Without() where W : struct { WithoutTypes ??= new HashSet(); WithoutTypes.Add(typeof(W)); return this; } } /// /// Describes a query over the ECS world with four required component types. /// public struct Query where T1 : struct where T2 : struct where T3 : struct where T4 : struct { internal HashSet? WithoutTypes; public Query Without() where W : struct { WithoutTypes ??= new HashSet(); WithoutTypes.Add(typeof(W)); return this; } } /// /// Describes a query over the ECS world with five required component types. /// public struct Query where T1 : struct where T2 : struct where T3 : struct where T4 : struct where T5 : struct { internal HashSet? WithoutTypes; public Query Without() where W : struct { WithoutTypes ??= new HashSet(); WithoutTypes.Add(typeof(W)); return this; } } /// /// Describes a query over the ECS world with six required component types. /// public struct Query where T1 : struct where T2 : struct where T3 : struct where T4 : struct where T5 : struct where T6 : struct { internal HashSet? WithoutTypes; public Query Without() where W : struct { WithoutTypes ??= new HashSet(); WithoutTypes.Add(typeof(W)); return this; } }