public CountryRegionViewModel(Entities.Region region) { Name = region.Name; RegionID = region.ID; SpawnEnabled = region.CanSpawn; var passages = region.Passages.ToList(); passages = passages.Concat(region.Passages1).ToList(); foreach (var passage in passages) { Passages.Add(new CountryRegionPassageViewModel(passage, region.ID)); } Developement = (double)region.Development; DefenseSystemQuality = region.DefenseSystemQuality; if (region.Hospital != null) { Hospital = new CountryRegionHospitalInformation(region.Hospital); } foreach (var resource in region.Resources.ToList()) { Resources.Add(new RegionResourceViewModel(resource)); } }
private void AddRandomNeighborChamber(Rectangle chamber) { Point passage = new Point(0, 0); int nborWidth = Utilities.RandomNumber(MinChamberWidth, MaxChamberWidth); int nborHeight = Utilities.RandomNumber(MinChamberHeight, MaxChamberHeight); Point nborPos = new Point(0, 0); switch (Utilities.RandomNumber(1, 4)) { case 1: passage = PassageNorth(chamber); nborPos = ChamberNorth(passage, nborWidth, nborHeight); break; case 2: passage = PassageSouth(chamber); nborPos = ChamberSouth(passage, nborWidth); break; case 3: passage = PassageWest(chamber); nborPos = ChamberWest(passage, nborWidth, nborHeight); break; case 4: passage = PassageEast(chamber); nborPos = ChamberEast(passage, nborHeight); break; default: break; } Rectangle neighbor = new Rectangle(nborPos, new Point(nborWidth, nborHeight)); if (CanFitChamber(GetChamberWithWalls(neighbor)) && (ForceRegularChambers && !ChamberIntersects(GetChamberWithWalls(neighbor)) || !ForceRegularChambers && !ChamberIntersects(neighbor))) { Chambers.Add(neighbor); Passages.Add(passage); } }
private void CreateDB(List <JsonQuery> collections, object sender = null) { int i = 0; int total = collections.Count; foreach (JsonQuery jq in collections) { CollectionQuery cq = new CollectionQuery(jq); foreach (var jp in jq.passages) { CollectionPassage cp = new CollectionPassage(jp, jq.query_id); Passages.Add(cp.passage_ID, cp); cq.AddPassagesID(jp.passage_ID); } Querys.Add(cq.query_id, cq); if (sender != null && i++ % 100 == 0) { (sender as BackgroundWorker).ReportProgress(100 * i / total); } } }