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;
}
}