示例#1
0
        // 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;
        }
示例#2
0
        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;
            }
        }