/// <summary> /// Removes the window. /// </summary> /// <param name="windowId">The window identifier.</param> /// <param name="coordX">The coord x.</param> /// <param name="coordY">The coord y.</param> public void RemoveWindow(long windowId, int coordX, int coordY) { var args = new GameWindowEventArgs(windowId, coordX, coordY); Tracer.Debug(string.Format("MapEditViewModel :: Window removed callback retrieved ({0})", args)); ThreadContext.InvokeOnUiThread(() => this.WindowRemoved(this, args)); }
/// <summary> /// Window has been removed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="GameWindowEventArgs"/> instance containing the event data.</param> private void WindowRemoved(object sender, GameWindowEventArgs args) { var gameWindow = this.GameWindows[args.Y][args.X]; gameWindow.IsChecked = false; gameWindow.Id = 0; gameWindow.Holes.Clear(); // adapt map model this.map.NumberOfWindows--; var window = this.map.Windows.FirstOrDefault(w => w.Id == args.Id); if (window != null) { this.map.NumberOfHoles -= window.Holes.Count; this.map.Windows.Remove(window); } }
/// <summary> /// Window bas been added /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="GameWindowEventArgs"/> instance containing the event data.</param> private void WindowAdded(object sender, GameWindowEventArgs args) { var gameWindow = this.GameWindows[args.Y][args.X]; gameWindow.IsChecked = true; gameWindow.Id = args.Id; // adapt map model this.map.NumberOfWindows++; var window = new Contract.Data.Map.Window { Id = args.Id, X = args.X, Y = args.Y, Holes = new List <Contract.Data.Map.Hole>() }; this.map.Windows.Add(window); }