/// <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!"); }
/// <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; }