public void add_sector(string location, SectorObj sector) { if (!this.Sectors_dictionary.Keys.Contains(location)) { //this.Sectors_list.Add(sector); this.Sectors_dictionary.Add(location, sector); } else { //this.Sectors_dictionary[location] = sector; } }
public SystemObj(string sysloc, string systemname, SectorObj sector) { this.sysLocS = sysloc; this.sysName = systemname; this.parentSector = sector; sector.add_system(sysloc, this); }
public static string readscan(string scanfile, Galaxy galaxy) { string systemName = null; string sectorName = null; string systemLoc = null; string sectorLoc = null; bool readingWH = false; int whlinecount = 0; int whcount = 0; string whname = null; bool whpolarity = false; string linkstosystemName = null; string linktosystemLoc = null; string linkstosectorName = null; string linktosectorLoc = null; //SectorObj sector = new SectorObj(sectorName, galaxy); SectorObj sector = null; SystemObj sys = null; //debugging int linecount = 0; int sectorscount = 0; int systemscount = 0; string returnstring = null; //using (StreamReader reader = new StreamReader(scanfile)) //{ //string line; //while ((line = reader.ReadLine()) != null) List<string> lines = new List<string>(scanfile.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)); foreach (string line in lines) { linecount++; if (!readingWH) { if (line.Contains("Wormholes")) { readingWH = true; } else if (line.Contains("Sector (")) { int index = line.IndexOf("("); sectorName = line.Trim(); sectorLoc = line.Substring(index).Trim(); } else if (line.Contains("System (")) { int index = line.IndexOf("("); systemName = line.Remove(index - 7).Trim(); systemLoc = line.Substring(index).Trim(); } else if (line.Contains("'") && line.Contains("(")) // Same as above but in case of missing system word. See: http://hazeron.com/phpBB3/viewtopic.php?f=6&t=6568 { int index = line.IndexOf("("); systemName = line.Remove(index - 1).Trim(); systemLoc = line.Substring(index).Trim(); } } else { whlinecount++; if (sector == null) { sector = new SectorObj(sectorLoc, sectorName, galaxy); sectorscount++; sys = new SystemObj(systemLoc, systemName, galaxy.sectors_dictionary[sectorLoc]); systemscount++; returnstring = "Added " + systemName; } if (whlinecount == 1) { whname = line; } else if (line.Contains("Positive Wormhole")) { whpolarity = true; } else if (line.Contains("Negative Wormhole")) { whpolarity = false; } else if (whlinecount == 3) { int index = line.IndexOf("("); linkstosystemName = line.Remove(index).Trim(); linktosystemLoc = line.Substring(index).Trim(); } else if (whlinecount == 4) { int index = line.IndexOf("("); linkstosectorName = line.Trim(); linktosectorLoc = line.Substring(index).Trim(); } else if (whlinecount == 5) { WormHoleObj wh = new WormHoleObj(whname, whpolarity, galaxy.sectors_dictionary[sectorLoc].systems_dictionary[sys.location], galaxy); //WormHoleObj wh = new WormHoleObj(whname, whpolarity, sys, galaxy); SectorObj whlinksec = new SectorObj(linktosectorLoc, linkstosectorName, galaxy); sectorscount++; SystemObj whlinksys = new SystemObj(linktosystemLoc, linkstosystemName, galaxy.sectors_dictionary[linktosectorLoc]); systemscount++; wh.makelink(galaxy.sectors_dictionary[linktosectorLoc].systems_dictionary[whlinksys.location]); whlinecount = 0; whcount++; } } if (line == "Primary") { break; } } return returnstring; }