Esempio n. 1
0
        /// <summary>
        /// Konstruktor tworzacy plansze o zadanym rozmiarze
        /// </summary>
        /// <param name="size">Rozmiar planszy</param>
        /// <param name="mapSeed">Okresla proporcje w występowaniu terenu</param>
        public Map(int size, MapSeed mapSeed, int?randSeed = null)
        {
            rand = randSeed != null ? new Random((int)randSeed) : new Random();

            //Wygenerowanie tekstur pol planszy
            MapTextures.GenerateAll((uint)MapField.ScreenSize);

            // Inicjalizacja rozmiaru i pol
            Size = size;

            MapSeed.Value[,] mapSeedValue = new MapSeed.Value[size, size];
            Vector2i[] posList = new Vector2i[mapSeed.Count];

            //Inicjalizacja startowyxh ziaren na mapie
#if Debug
            Console.WriteLine("Initalizing seeds.");
#endif
            for (int i = 0; i < mapSeed.Count; ++i)
            {
                try {
                    ref Vector2i pos = ref posList[i];
                    do
                    {
                        pos.X = rand.Next(size);
                        pos.Y = rand.Next(size);
                    } while (mapSeedValue[pos.X, pos.Y] != MapSeed.Value.None);
                    mapSeedValue[pos.X, pos.Y] = mapSeed[i];
                } catch { Console.WriteLine("Error!"); }
Esempio n. 2
0
 /// <summary>
 /// Konstruktor tworzacy pojedyncze pole na planszy
 /// </summary>
 /// <param name="x">Polozenie x na mapie</param>
 /// <param name="y">Polozenie y na mapie</param>
 /// <param name="map">Mapa na ktorej znajduje sie pole</param>
 /// <param name="seed">Ziarno danego pola</param>
 public MapField(int x, int y, Map map, MapSeed.Value seed) : this(x, y, map)
 {
     FieldSeed = seed;
 }