// XXX: splitting method in smaller ones for futer maintain public List<Pattern> GetPatterns() { #if DEBUG Console.WriteLine("starting pattern generation"); #endif PatternType missingPattern = new PatternType(); if (_types.Count <= 0) { return new List<Pattern>(); } var referenc = new List<List<Pattern>>(); var ret = new List<Pattern>(); Random rnd = new Random(); const int xMax = 7; const int yMax = 7; for (int yi = 0; yi < yMax; ++yi) { referenc.Add(new List<Pattern>()); for (int xi = 0; xi < xMax; ++xi) { List<PatternType> query = GetFilteredPatternType(referenc, xi, yi); PatternType type = query.Count == 0 ? missingPattern : query[rnd.Next(query.Count)]; Pattern pattern = new Pattern { Id = yi*xMax + xi, Type = type, X = xi*32f, Y = yi*32f }; ret.Add(pattern); referenc[yi].Add(pattern); } } #if DEBUG Console.WriteLine("pattern generation complet"); #endif return ret; }
public List<PatternType> GetAllPatternTypes() { using (DbDataReader reader = AllPatternTypes.ExecuteReader()) { List<PatternType> patternTypes = new List<PatternType>(); while (reader.Read()) { PatternType patternType = new PatternType { DbId = (int)reader["id"], North = (int)reader["north"], South = (int)reader["south"], West = (int)reader["west"], East = (int)reader["east"], TextureId = (int)reader["textureid"] }; patternTypes.Add(patternType); } return patternTypes; } }