Beispiel #1
0
        /// <summary>
        /// Removes the hole.
        /// </summary>
        /// <param name="windowId">The window identifier.</param>
        /// <param name="windowX">The window x.</param>
        /// <param name="windowY">The window y.</param>
        /// <param name="holeId">The hole identifier.</param>
        public void RemoveHole(long windowId, int windowX, int windowY, long holeId)
        {
            var args = new GameHoleClickedEventArgs(windowId, windowX, windowY, holeId);

            Tracer.Debug(string.Format("MapEditViewModel :: Hole removed callback retrieved ({0})", args));
            ThreadContext.InvokeOnUiThread(() => this.HoleRemoved(this, args));
        }
Beispiel #2
0
        /// <summary>
        /// Hole has been added.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="GameHoleClickedEventArgs"/> instance containing the event data.</param>
        private void HoleAdded(object sender, GameHoleClickedEventArgs args)
        {
            var gameWindow = this.GameWindows[args.WindowY][args.WindowX];

            gameWindow.Holes.Add(new Hole {
                Id = args.HoleId, X = args.HoleX, Y = args.HoleY, Diameter = this.HoleDiameter
            });

            // adapt map model
            this.map.NumberOfHoles++;
            var window = this.map.Windows.FirstOrDefault(w => w.X == args.WindowX && w.Y == args.WindowY);

            if (window != null)
            {
                var hole = new Contract.Data.Map.Hole {
                    Id = args.HoleId, X = args.HoleX, Y = args.HoleY
                };
                window.Holes = window.Holes.ToList(); // this is necessary to convert the collection to a list...
                window.Holes.Add(hole);
            }
        }
Beispiel #3
0
        /// <summary>
        /// Hole has been removed.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="GameHoleClickedEventArgs"/> instance containing the event data.</param>
        private void HoleRemoved(object sender, GameHoleClickedEventArgs args)
        {
            var gameWindow = this.GameWindows[args.WindowY][args.WindowX];
            var gameHole   = gameWindow.Holes.FirstOrDefault(h => h.Id == args.HoleId);

            if (gameHole != null)
            {
                gameWindow.Holes.Remove(gameHole);
            }

            // adapt map model
            this.map.NumberOfHoles--;
            var window = this.map.Windows.FirstOrDefault(w => w.X == args.WindowX && w.Y == args.WindowY);

            if (window != null)
            {
                var hole = window.Holes.FirstOrDefault(h => h.Id == args.HoleId);
                if (hole != null)
                {
                    window.Holes = window.Holes.ToList(); // this is necessary to convert the collection to a list...
                    window.Holes.Remove(hole);
                }
            }
        }