namespace OECS; // Custom delegate types for query iteration with ref parameters. // The built-in Action<...> delegates do not support ref parameters. /// /// Callback for iterating entities with one component type. /// public delegate void ForEachAction(Entity entity, ref T1 c1) where T1 : struct; /// /// Callback for iterating entities with two component types. /// public delegate void ForEachAction(Entity entity, ref T1 c1, ref T2 c2) where T1 : struct where T2 : struct; /// /// Callback for iterating entities with three component types. /// public delegate void ForEachAction(Entity entity, ref T1 c1, ref T2 c2, ref T3 c3) where T1 : struct where T2 : struct where T3 : struct; /// /// Callback for iterating entities with four component types. /// public delegate void ForEachAction(Entity entity, ref T1 c1, ref T2 c2, ref T3 c3, ref T4 c4) where T1 : struct where T2 : struct where T3 : struct where T4 : struct; /// /// Callback for iterating entities with five component types. /// public delegate void ForEachAction(Entity entity, ref T1 c1, ref T2 c2, ref T3 c3, ref T4 c4, ref T5 c5) where T1 : struct where T2 : struct where T3 : struct where T4 : struct where T5 : struct; /// /// Callback for iterating entities with six component types. /// public delegate void ForEachAction(Entity entity, ref T1 c1, ref T2 c2, ref T3 c3, ref T4 c4, ref T5 c5, ref T6 c6) where T1 : struct where T2 : struct where T3 : struct where T4 : struct where T5 : struct where T6 : struct;