void GenerateItems() { ActiveItem = null; SolvedItems.Clear(); this.isLoading = true; AllowSaveActions = false; IEnumerable <MapPathInfo> pathInfos = this.puzzleGenerator.GeneratePathInfos(); ObservableCollection <MapItem> items = new ObservableCollection <MapItem>(); foreach (MapPathInfo pathInfo in pathInfos) { MapPath copiedPath = (MapPath)pathInfo.Path.Clone(); copiedPath.Attributes.Add(new MapItemAttribute() { Name = "RealLocation", Type = typeof(GeoPoint), Value = pathInfo.RealLocation }); Vector delta = CoordPointToScreenPoint(pathInfo.GameCenter) - CoordPointToScreenPoint(pathInfo.RealCenter); ActiveItems = new ObservableCollection <MapItem>() { copiedPath }; TranslateItemsCommand.Execute(delta); items.Add(copiedPath); } Items = items; ZoomToRegion.Execute(new object[] { new GeoPoint(15, -180), new GeoPoint(-62, -45), 0.05 }); AllowSaveActions = true; this.isLoading = false; }
void MoveItemToSolveLayer(MapPath mapPath) { Items.Remove(mapPath); SolvedItems.Add(mapPath); ActiveItem = mapPath; if (Items.Count == 0) { ShowWinMessage(); } }