示例#1
0
        /// <summary>
        /// Updates the targeting.
        /// </summary>
        /// <param name="gui">THe <see cref="IGUIManager"/>.</param>
        public void Update(IGUIManager gui)
        {
            var cursorPos = gui.CursorPosition;

            MouseOverTarget = _world.Map.Spatial.Get <IDrawableTarget>(_world.Camera.ToWorld(cursorPos));

            if (gui.IsMouseButtonDown(MouseButton.Left))
            {
                if (MouseOverTarget != null)
                {
                    Target = MouseOverTarget == _world.UserChar ? null : MouseOverTarget;
                }
                else
                {
                    Target = null;
                }
            }

            if (MouseOverTarget != null && MouseOverTarget.IsDisposed)
            {
                MouseOverTarget = null;
            }

            if (Target != null && Target.IsDisposed)
            {
                Target = null;
            }
        }
示例#2
0
 /// <summary>
 /// Handles the map change event for targeting.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="ValueChangedEventArgs{Map}"/> instance containing the event data.</param>
 void World_MapChanged(World sender, ValueChangedEventArgs<Map> e)
 {
     MouseOverTarget = null;
     _target = null;
 }
示例#3
0
        /// <summary>
        /// Updates the targeting.
        /// </summary>
        /// <param name="gui">THe <see cref="IGUIManager"/>.</param>
        public void Update(IGUIManager gui)
        {
            var cursorPos = gui.CursorPosition;

            MouseOverTarget = _world.Map.Spatial.Get<IDrawableTarget>(_world.Camera.ToWorld(cursorPos));

            if (gui.IsMouseButtonDown(MouseButton.Left))
            {
                if (MouseOverTarget != null)
                {
                    Target = MouseOverTarget == _world.UserChar ? null : MouseOverTarget;
                }
                else
                {
                    Target =  null;
                }
            }

            if (MouseOverTarget != null && MouseOverTarget.IsDisposed)
                MouseOverTarget =  null;

            if (Target != null && Target.IsDisposed)
                Target = null;

        }
示例#4
0
 /// <summary>
 /// Handles the map change event for targeting.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="ValueChangedEventArgs{Map}"/> instance containing the event data.</param>
 void World_MapChanged(World sender, ValueChangedEventArgs <Map> e)
 {
     MouseOverTarget = null;
     _target         = null;
 }