Ejemplo n.º 1
0
 private void WorldRenderSource_LostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
 {
     if (!PointerEditor.IsMouseOver && WorldScroller.IsMouseOver)
     {
         WorldRenderSource.Focus();
     }
 }
Ejemplo n.º 2
0
        private void WorldRenderSource_MouseDown(object sender, MouseButtonEventArgs e)
        {
            Point clickPoint = Snap(e.GetPosition(WorldRenderSource));

            WorldRenderSource.Focusable = true;
            WorldRenderSource.Focus();

            if (WorldEditorExitSelected != null)
            {
                WorldEditorExitSelected((int)clickPoint.X / 16, (int)clickPoint.Y / 16);
                return;
            }

            if (Keyboard.Modifiers == ModifierKeys.Control)
            {
                if (_world.Pointers.Where(o => o.BoundRectangle.Contains(clickPoint.X, clickPoint.Y)).FirstOrDefault() != null)
                {
                    SelectedEditMode.SelectedIndex = 2;
                }
                else if (_world.ObjectData.Where(o => o.BoundRectangle.Contains(clickPoint.X, clickPoint.Y)).FirstOrDefault() != null)
                {
                    SelectedEditMode.SelectedIndex = 1;
                }
                else
                {
                    SelectedEditMode.SelectedIndex = 0;
                }
            }

            switch (_editMode)
            {
            case EditMode.Tiles:
                HandleTileClick(e);
                break;

            case EditMode.Objects:
                HandleObjectClick(e);
                break;

            case EditMode.Pointers:
                HandlePointerClick(e);
                break;
            }
        }