3 namespace Entitas.CodeGenerator {
7 const string CLASS_TEMPLATE =
@"namespace Entitas {{ 9 public partial class Pools {{ 11 public Pool[] allPools {{ get {{ return new [] {{ {1} }}; }} }} 15 public void SetAllPools() {{ 22 const string CREATE_POOL_TEMPLATE =
@" 23 public static Pool Create{1}Pool() {{ 24 return CreatePool(""{0}"", {2}.TotalComponents, {2}.componentNames, {2}.componentTypes); 29 var createPoolMethods = poolNames.Aggregate(
string.Empty, (acc, poolName) =>
30 acc +
string.Format(CREATE_POOL_TEMPLATE, poolName, poolName.PoolPrefix(), poolName.PoolPrefix() +
CodeGenerator.DEFAULT_COMPONENT_LOOKUP_TAG)
33 var allPoolsList =
string.Join(
", ", poolNames.Select(poolName => poolName.LowercaseFirst()).ToArray());
34 var poolFields =
string.Join(
"\n", poolNames.Select(poolName =>
35 " public Pool " + poolName.LowercaseFirst() +
";").ToArray());
37 var setAllPools =
string.Join(
"\n", poolNames.Select(poolName =>
38 " " + poolName.LowercaseFirst() +
" = Create" + poolName.PoolPrefix() +
"Pool();").ToArray());
42 string.Format(CLASS_TEMPLATE, createPoolMethods, allPoolsList, poolFields, setAllPools),