<#@ template language="C#" #> <#@ output extension=".cs" #> <#@ assembly name="System.Core" #> <#@ import namespace="System.Linq" #> <#@ import namespace="System.Text" #> <#@ include file="Helpers.ttinclude" #> namespace Ghost.Entities; public partial class World { <# for (var index = 1; index <= Amount; index++) { var generics = AppendGenerics(index); var restrictions = AppendGenericRestrictions(index, "struct, IComponentData"); var tryGetPools = TryGetComponentPools(index); var poolParams = Enumerable.Range(0, index) .Select(i => $"pool{i}") .Aggregate((a,b)=> a + ", " + b); var countSource = "pool0.Count"; #> public QueryEnumerable<<#= generics #>> Query<<#= generics #>>() <#= restrictions #> { if (!(<#= tryGetPools #>)) return default; return new QueryEnumerable<<#= generics #>>( this, <#= poolParams #>, <#= countSource #>); } <# } #> }