private static Obszar Wczytaj(string nazwa) { string katalog ="Resources/Obszary/" + nazwa+".txt"; String zawartoscPliku = File.ReadAllText(katalog); string[] wiersze = zawartoscPliku.ToLower().Split(new[] { Environment.NewLine },StringSplitOptions.None); string[]wymiary= wiersze[0].Split(new[]{" "},StringSplitOptions.RemoveEmptyEntries); int szerokosc = int.Parse(wymiary[0]); int wysokosc = int.Parse(wymiary[1]); int[] gracz=new[]{int.Parse(wymiary[2]),int.Parse(wymiary[3])}; ElementMapy[,] mapa = new ElementMapy[szerokosc, wysokosc]; for(int i=1;i<wiersze.Length;i++)//pierwszy wiersz to zawiera wymary { int poczatek = wiersze[i].IndexOf('('); int koniec = wiersze[i].IndexOf(')', poczatek+1); int j = 0; while(poczatek>-1 && koniec>-1) { string[] wpisPola= wiersze[i].Substring(poczatek+1, koniec - poczatek-1).Trim().Split(';'); string tlo = null; ElementMapy el = null; foreach(string zawartosc in wpisPola) { if (!string.IsNullOrEmpty(zawartosc)) { string[] element = zawartosc.Split(':'); if(element[0]=="przeciwnik") { el = StworzPrzeciwnika(element[1]); } else if(element[0]=="obiekt") { el = StworzObiekt(element[1]); } else if (element[0] == "npc") { el = StworzNpc(element[1]); } else if (element[0] == "tlo") { tlo = element[1]; } } } poczatek = wiersze[i].IndexOf('(',koniec+1); koniec = wiersze[i].IndexOf(')', poczatek + 1); if(el==null) { el = new ElementMapyPusty(); } el.Tlo = tlo; mapa[i-1,j] = el; j++; }; } return new Obszar(nazwa,mapa,gracz); }
public Obszar(string _nazwa,ElementMapy[,] mapa,int[] gracz) { _szerokosc = mapa.GetLength(0); _wysokosc = mapa.GetLength(1); _mapa = mapa; nazwa = _nazwa; _gracz = gracz; }