public static IEnumerable <HexPos> GetMeristems(HexCubMap map) { foreach (HexPos pos in map.OccupiedPositions()) { if (pos.occupant.tileType == TileType.Meristem) { yield return(pos); } } }
protected List <HexPos> PermissableHexPositions( HexCubMap map, int maxDistance, System.Func <HexPos, HexPos, HexCubMap, bool> evalFunc) { HexPos[] free = (HexPos[])map.FreePositions(); HexPos[] occupied = (HexPos[])map.OccupiedPositions(); List <HexPos> permissable = new List <HexPos> (); for (int i = 0; i < free.Length; i++) { for (int j = 0; j < occupied.Length; i++) { if (evalFunc(free [i], occupied [j], map)) { permissable.Add(free [i]); break; } } } return(permissable); }