Beispiel #1
0
        /// <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));
        }
Beispiel #2
0
        /// <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);
            }
        }
Beispiel #3
0
        /// <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);
        }