public void MouseMoveTile(TileMouseState e) { if (e.Location.X >= 0 && e.Location.Y >= 0 && e.Location.X < CurrentWorld.TilesWide && e.Location.Y < CurrentWorld.TilesHigh) { if (e.Location != MouseOverTile.MouseState.Location) { MouseOverTile.Tile = CurrentWorld.Tiles[e.Location.X, e.Location.Y]; } MouseOverTile.MouseState = e; ActiveTool.MouseMove(e); } }
public Form1() { InitializeComponent(); tool = ActiveTool.Pen; pictureBox1.BackColor = Color.White; bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height); gfx = Graphics.FromImage(bmp); // choosing a layer on which gfx will draw; //after this everything drawn by gfx will show up on bmp; //and then setting that picturebox will take picture from bmp; pictureBox1.Image = bmp; pen.StartCap = System.Drawing.Drawing2D.LineCap.Round; eraser.StartCap = System.Drawing.Drawing2D.LineCap.Round; pen.EndCap = System.Drawing.Drawing2D.LineCap.Round; eraser.EndCap = System.Drawing.Drawing2D.LineCap.Round; }
private void OnMouseUpPixel(TileMouseEventArgs e) { if ((e.Tile.X < _world.Header.WorldBounds.W && e.Tile.Y < _world.Header.WorldBounds.H && e.Tile.X >= 0 && e.Tile.Y >= 0) && (_world.Tiles[e.Tile.X, e.Tile.Y] != null)) { MouseUpTile = e.Tile; if (ActiveTool != null) { ActiveTool.ReleaseTool(e); } } }
public void OnMouseLeftDoubleClick(double mouseX, double mouseY, bool isShiftKey, bool isCtrlKey) { var worldPoint = CoordinateSystem.ToWorldSpace(mouseX, mouseY); if (ActiveTool != null) { ActiveTool.OnMouseLeftDoubleClick(this, worldPoint.X, worldPoint.Y, isShiftKey, isCtrlKey); } else { foreach (var policy in Policies.OfType <IMouseAware>()) { policy.OnMouseLeftDoubleClick(this, worldPoint.X, worldPoint.Y, isShiftKey, isCtrlKey); } } }
public void OnMouseMove(double x, double y, bool isShiftKey, bool isCtrlKey) { var worldPoint = CoordinateSystem.ToWorldSpace(x, y); if (ActiveTool != null) { ActiveTool.OnMouseMove(this, worldPoint.X, worldPoint.Y, isShiftKey, isCtrlKey); return; } if (!_leftMouseDown) { Policies.OfType <IMouseAware>().ToList().ForEach(p => p.OnMouseMove(this, worldPoint.X, worldPoint.Y, isShiftKey, isCtrlKey)); } else { var dxSum = worldPoint.X - _lastMouseDownPosX; var dySum = worldPoint.Y - _lastMouseDownPosY; var dx = worldPoint.X - _lastMousePosX; var dy = worldPoint.Y - _lastMousePosY; if (!_isDragging) { if (Math.Abs(dxSum) >= MinimalDragDistance || Math.Abs(dySum) >= MinimalDragDistance) { _isDragging = true; Policies.OfType <IDragAware>() .ToList() .ForEach( p => p.OnDragStart(this, _lastMouseDownPosX, _lastMouseDownPosY, dxSum, dySum, isShiftKey, isCtrlKey)); } } else { Policies.OfType <IDragAware>() .ToList() .ForEach( p => p.OnMouseDrag(this, dxSum, dySum, dx, dy, isShiftKey, isCtrlKey)); } } _lastMousePosX = worldPoint.X; _lastMousePosY = worldPoint.Y; }
protected override void Draw() { Camera.Update(); if (LightsEnabled) { _krypton.Matrix = Camera.View; this._krypton.LightMapPrepare(); } GraphicsDevice.Clear(new Color(240, 240, 240)); _spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, null, null, null, null, Camera.View); foreach (var layer in Map.Layers.Where(p => p.Order <= ActiveLayer.Order).OrderBy(p => p.Order)) { DrawLayer(layer); } _spriteBatch.End(); if (LightsEnabled) { this._krypton.Draw(); } _spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, null, null, null, null, Camera.View); ActiveTool.Draw(_spriteBatch, Camera, _currentMousePosition, _pixel); if (!mouseDown && _movingLight != null) { _movingLight = null; } foreach (Light2D light in _krypton.Lights) { if (light == SelectedLight) { _spriteBatch.Draw(_selectionTexture, light.Position + new Vector2(1, -1), Color.White); } _spriteBatch.Draw(_lightSymbolTexture, light.Position /* - new Vector2(_lightSymbolTexture.Width / 2, _lightSymbolTexture.Height / 2)*/, Color.White); } _spriteBatch.End(); }
internal static bool CanEnter(int x, int y, int depth, ActiveTool tool) { long regKind = ErosionLevelCache(x, y, depth) % 3; if (regKind == 0) { return(tool != ActiveTool.Neither); } else if (regKind == 1) { return(tool != ActiveTool.Torch); } else { return(tool != ActiveTool.CGear); } }
public void OnMouseRightDown(double mouseX, double mouseY, bool isShiftKey, bool isCtrlKey) { var worldPoint = CoordinateSystem.ToWorldSpace(mouseX, mouseY); if (ActiveTool != null) { ActiveTool.OnMouseRightDown(this, worldPoint.X, worldPoint.Y, isShiftKey, isCtrlKey); } else { _rightMouseDownFigureHit = GetBestFigure(worldPoint.X, worldPoint.Y, new List <Type>(), new List <Type>()); foreach (var policy in Policies.OfType <IMouseAware>()) { policy.OnMouseRightDown(this, worldPoint.X, worldPoint.Y, isShiftKey, isCtrlKey); } } }
public void OnMouseLeftDown(double x, double y, bool isShiftKey, bool isCtrlKey) { var worldPoint = CoordinateSystem.ToWorldSpace(x, y); _leftMouseDown = true; _lastMouseDownPosX = worldPoint.X; _lastMouseDownPosY = worldPoint.Y; if (ActiveTool != null) { ActiveTool.OnMouseLeftDown(this, worldPoint.X, worldPoint.Y, isShiftKey, isCtrlKey); } else { Policies.OfType <IMouseAware>() .ToList() .ForEach(p => p.OnMouseLeftDown(this, worldPoint.X, worldPoint.Y, isShiftKey, isCtrlKey)); } }
private void ImgPanelMouseClick(object sender, MouseEventArgs e) { if (!(ActiveTool is null)) { var action = ActiveTool.ClickHandler(e); // if the tool is resetting or exiting, save the object if (action == ToolAction.RESET || action == ToolAction.EXIT) { objectList.Items.Add(ActiveTool.ResetAndGetObject()); } // if the tool is aborting or exiting, delete the object if (action == ToolAction.ABORT || action == ToolAction.EXIT) { CancelTool(); } } }
void Player_OnToolStateChanged(ActiveTool activeTool) { switch (activeTool) { case ActiveTool.None: _grabFunction.enabled = false; _scanningFunction.enabled = false; break; case ActiveTool.ImpulseBeam: _scanningFunction.enabled = false; _grabFunction.enabled = true; break; case ActiveTool.Scanner: _grabFunction.enabled = false; _scanningFunction.enabled = true; break; } }
private void OnMouseDownPixel(TileMouseEventArgs e) { if ((e.Tile.X < _world.Header.WorldBounds.W && e.Tile.Y < _world.Header.WorldBounds.H && e.Tile.X >= 0 && e.Tile.Y >= 0) && (_world.Tiles[e.Tile.X, e.Tile.Y] != null)) { MouseDownTile = e.Tile; if (ActiveTool != null) { ActiveTool.PressTool(e); if (ActiveTool.Name == "Paste") { ActiveTool = null;// Tools.FirstOrDefault(t => t.Value.Name == "Selection").Value; } } } }
private void ImgPanelPaint(object sender, PaintEventArgs e) { var p = sender as BufferedPanel; var g = e.Graphics; if (p.ImageLoaded()) { p.DrawPanelImage(g); ActiveTool?.PaintHandler(p.Layer, p.RelativeToPanel, g); var selectedIndexes = objectList.SelectedIndices; for (int i = 0; i < objectList.Items.Count; i++) { AbstractObject obj = objectList.Items[i] as AbstractObject; obj.DrawObject(p.Layer, p.RelativeToPanel, g, selectedIndexes.Contains(i)); } p.DrawPanelCrosshair(g, crosshair); } }
public void SetActiveTool(string aString) { var newTool = (ActiveTool)Enum.Parse(typeof(ActiveTool), aString, true); if (newTool == _activeTool) { return; } switch (newTool) { case ActiveTool.Element: OnMouseNormal += CheckElementOnHover; OnMouseClick += CheckElementOnInput; OnMouseNormal -= CheckLineOnHover; OnMouseClick -= CheckLineOnInput; break; case ActiveTool.Line: OnMouseNormal += CheckLineOnHover; OnMouseClick += CheckLineOnInput; OnMouseNormal -= CheckElementOnHover; OnMouseClick -= CheckElementOnInput; break; case ActiveTool.NodeRotation: OnMouseNormal -= CheckLineOnHover; OnMouseNormal -= CheckElementOnHover; OnMouseClick -= CheckLineOnInput; OnMouseClick -= CheckElementOnInput; break; } _activeTool = newTool; }
protected void CheckAndClearButtonFlags(MouseEventArgs e) { if ((ActiveTool == null) || (DrawingCanvas == null)) { return; } for (int i = 0; i < MouseButtonRecords.Length; i++) { MouseButtonEventArgs args = new MouseButtonEventArgs(e.MouseDevice, e.Timestamp, (MouseButton)i, e.StylusDevice); if (MouseButtonRecords[i].Flags.HasFlag(DDMouseButtonFlags.Clicked)) { ActiveTool.ReportMouseClick(DrawingCanvas, args); MouseButtonRecords[i].Flags ^= DDMouseButtonFlags.Clicked; } if (MouseButtonRecords[i].Flags.HasFlag(DDMouseButtonFlags.StartedDrag)) { ActiveTool.ReportStartDrag(DrawingCanvas, args); MouseButtonRecords[i].Flags ^= DDMouseButtonFlags.StartedDrag; } if (MouseButtonRecords[i].Flags.HasFlag(DDMouseButtonFlags.Dragging)) { ActiveTool.ReportMouseDrag(DrawingCanvas, args); if (MouseButtonRecords[i].Flags.HasFlag(DDMouseButtonFlags.EndedDrag)) { MouseButtonRecords[i].Flags ^= DDMouseButtonFlags.Dragging; } } if (MouseButtonRecords[i].Flags.HasFlag(DDMouseButtonFlags.EndedDrag)) { ActiveTool.ReportEndDrag(DrawingCanvas, args); MouseButtonRecords[i].Flags ^= DDMouseButtonFlags.EndedDrag; } } }