public IEnumerable<Direction> GetValidDirs(IntVector3 p) { foreach (var d in DirectionExtensions.CardinalUpDownDirections.ToArray()) { var dst = p + d; if (m_terrain.Contains(dst) && m_terrain.GetTileData(dst).IsWaterPassable) yield return d; } }