// 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; }); }
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); } } }