Example #1
0
        // Updates
        public void Update()
        {
            if (resetScrollOffset && EditorScroller.HorizontalOffset > 0)
            {
                EditorScroller.ScrollToHorizontalOffset(500);
                EditorScroller.ScrollToVerticalOffset(500);
                resetScrollOffset = false;
            }

            MouseUpdates(Global.MouseEventArgs);

            // File menu
            Global.RunOnEventLoop("Ctrl+N", Global.KeyComboDown(Key.LeftCtrl, Key.N), () => { Global.Command_New(); });
            Global.RunOnEventLoop("Ctrl+S", Global.State == States.MapOpen && Global.KeyComboDown(Key.LeftCtrl, Key.S), () => { Global.Command_Save(); });
            Global.RunOnEventLoop("Ctrl+O", Global.KeyComboDown(Key.LeftCtrl, Key.O), () => { Global.Command_Open(); });

            // Shortcuts
            Global.RunOnEventLoop("Ctrl+C", Global.State == States.MapOpen && Global.ToolType == ToolTypes.TileSelector && TileSelector_RectangleSelected != null && Global.KeyComboDown(Key.LeftCtrl, Key.C), () => { Global.Command_CopyTiles(TileSelector_SelectedRect, Global.TileLayer); });
            Global.RunOnEventLoop("Ctrl+X", Global.State == States.MapOpen && Global.ToolType == ToolTypes.TileSelector && TileSelector_RectangleSelected != null && Global.KeyComboDown(Key.LeftCtrl, Key.X), () => { Global.Command_CutTiles(TileSelector_SelectedRect, Global.TileLayer); });
            Global.RunOnEventLoop("Shift+X", Global.State == States.MapOpen && Global.ToolType == ToolTypes.TileSelector && TileSelector_RectangleSelected != null && Global.KeyComboDown(Key.LeftShift, Key.X), () => { Global.Command_CutTiles(TileSelector_SelectedRect, null); });
            Global.RunOnEventLoop("Shift+V", Global.State == States.MapOpen && Global.ToolType == ToolTypes.TileSelector && TileSelector_RectangleSelected != null && Global.KeyComboDown(Key.LeftShift, Key.V), () => { Global.Command_PasteTiles(TileSelector_SelectedRect, null); });
            Global.RunOnEventLoop("Ctrl+V", Global.State == States.MapOpen && Global.ToolType == ToolTypes.TileSelector && TileSelector_RectangleSelected != null && Global.KeyComboDown(Key.LeftCtrl, Key.V), () => { Global.Command_PasteTiles(TileSelector_SelectedRect, Global.TileLayer); });
            Global.RunOnEventLoop("Delete (Tiles)", Global.State == States.MapOpen && Global.ToolType == ToolTypes.TileSelector && TileSelector_RectangleSelected != null && Global.KeyComboDown(Key.Delete), () => { Global.Command_RemoveTiles(TileSelector_SelectedRect, Global.TileLayer); });
            Global.RunOnEventLoop("Delete (Entities)", Global.State == States.MapOpen && Global.ToolType == ToolTypes.Entities && Global.KeyComboDown(Key.Delete), () => { Global.GetSelectedEntities(entity => entity.Destroy()); });

            Global.RunOnEventLoop("Ctrl+C_Entities", Global.State == States.MapOpen && Global.ToolType == ToolTypes.Entities && Global.GetSelectedEntities().Count > 0 && Global.KeyComboDown(Key.LeftCtrl, Key.C), () => { Global.Command_CopyEntities(highlightingEntities); });
            Global.RunOnEventLoop("Ctrl+X_Entities", Global.State == States.MapOpen && Global.ToolType == ToolTypes.Entities && Global.GetSelectedEntities().Count > 0 && Global.KeyComboDown(Key.LeftCtrl, Key.X), () => { Global.Command_CutEntities(highlightingEntities); });
            Global.RunOnEventLoop("Ctrl+V_Entities", Global.State == States.MapOpen && Global.ToolType == ToolTypes.Entities && Global.CopiedEntities.Count > 0 && Global.KeyComboDown(Key.LeftCtrl, Key.V), () => { Global.Command_PasteEntities(Global.SelectorIndex); });

            Global.RunOnEventLoop("Ctrl+G", Global.KeyComboDown(Key.LeftCtrl, Key.G), () => { ShowGrid = !ShowGrid; });
        }
Example #2
0
        public void MouseUpdates(MouseEventArgs e)
        {
            if (e == null)
            {
                return;
            }

            if (!MouseBusy && Global.State == States.MapOpen)
            {
                if (e.MiddleButton == MouseButtonState.Pressed)
                {
                    EditorScroller.ScrollToHorizontalOffset((e.GetPosition(EditorMargin).X *Scale) - (EditorScroller.ActualWidth / 2) + 23);
                    EditorScroller.ScrollToVerticalOffset((e.GetPosition(EditorMargin).Y *Scale) - (EditorScroller.ActualHeight / 2) + 23);

                    Point temp = EditorScroller.PointToScreen(new Point(-23 + EditorScroller.RenderSize.Width / 2, -23 + EditorScroller.RenderSize.Height / 2));

                    // If mouse around edges
                    Point mousePos       = Mouse.GetPosition(this);
                    Point mousePosScreen = PointToScreen(mousePos);
                    if (e.GetPosition(EditorMargin).X < (EditorScroller.RenderSize.Width / 2) * (1 - Scale))
                    {
                        temp.X = mousePosScreen.X;
                    }
                    if (e.GetPosition(EditorMargin).Y < (EditorScroller.RenderSize.Height / 2) * (1 - Scale))
                    {
                        temp.Y = mousePosScreen.Y;
                    }
                    if (e.GetPosition(EditorMargin).X > EditorMargin.Width - (EditorScroller.RenderSize.Width / 2) * (1 - Scale))
                    {
                        temp.X = mousePosScreen.X;
                    }
                    if (e.GetPosition(EditorMargin).Y > EditorMargin.Height - (EditorScroller.RenderSize.Height / 2) * (1 - Scale))
                    {
                        temp.Y = mousePosScreen.Y;
                    }

                    SetCursorPos((int)temp.X, (int)temp.Y);
                }

                if (Global.ToolType == ToolTypes.TilePlacer)
                {
                    TilePlacer_EditorGrid_MouseUpdates(e);
                    TilePlacer_Tileset_MouseUpdates(e);
                }
                else if (Global.ToolType == ToolTypes.TileSelector)
                {
                    TileSelector_EditorGrid_MouseUpdates(e);
                }
                else if (Global.ToolType == ToolTypes.Entities)
                {
                    Entities_EditorGrid_MouseUpdates(e);
                }
            }
        }