public void MouseLeave() { this.lastTilePoint = null; var mouseEvent = new EventTileMouseEvent(this.mapId, EventTileMouseEvent.MouseEvents.Leave); mouseEvent.Post(); }
public void MouseClick(Point location, MouseButtons button) { var tilepoint = tileEngine.GetTilePointCoordinatesFromScreen(location.X, location.Y); this.lastTilePoint = tilepoint; var mouseEvent = new EventTileMouseEvent(this.mapId, EventTileMouseEvent.MouseEvents.Click); mouseEvent.TilePoint = tilepoint; mouseEvent.MouseButton = button; mouseEvent.Post(); }
public void MouseMove(Point location, MouseButtons button) { var tilepoint = tileEngine.GetTilePointCoordinatesFromScreen(location.X, location.Y); if (!tilepoint.Equals(lastTilePoint)) { this.lastTilePoint = tilepoint; var mouseEvent = new EventTileMouseEvent(this.mapId, EventTileMouseEvent.MouseEvents.Move); mouseEvent.TilePoint = tilepoint; mouseEvent.MouseButton = button; mouseEvent.Post(); } }
public void TileMouseEvent(EventTileMouseEvent mouseEvent) { if (editorPointer == null) { throw new ManagerException(TileManagerException.NoEditorPointerSet, "There is no editor pointer set, probably forgot to fire off a PointerChanged event."); } PointerResult pointerResult = null; switch (mouseEvent.MouseEvent) { case EventTileMouseEvent.MouseEvents.Click: pointerResult = editorPointer.Click(mouseEvent.MapId, mouseEvent.TilePoint, mouseEvent.MouseButton); break; case EventTileMouseEvent.MouseEvents.Up: pointerResult = editorPointer.Up(mouseEvent.MapId, mouseEvent.TilePoint, mouseEvent.MouseButton); break; case EventTileMouseEvent.MouseEvents.Down: pointerResult = editorPointer.Down(mouseEvent.MapId, mouseEvent.TilePoint, mouseEvent.MouseButton); break; case EventTileMouseEvent.MouseEvents.Move: pointerResult = editorPointer.Move(mouseEvent.MapId, mouseEvent.TilePoint, mouseEvent.MouseButton); break; case EventTileMouseEvent.MouseEvents.Leave: break; } if (pointerResult != null) { // Always translate first before rendering if (pointerResult.InvokeTranslate) { InvokeTranslateViewport(mouseEvent.MapId, pointerResult.TranslatePoint); } if (pointerResult.InvokeRender) { InvokeRender(mouseEvent.MapId); } } // If something has subscribed to this event, get data to send if (OnMouseTileHover != null) { // Get TilePoint from table TilePointTable tilePointTable; GetTilePointTableForMap(mouseEvent.MapId, out tilePointTable); TilePoint tilePoint = null; if (mouseEvent.TilePoint != null) { tilePoint = tilePointTable.GetTilePoint(mouseEvent.TilePoint.X, mouseEvent.TilePoint.Y, false); } // If there is no TilePoint placed, send mouse TilePoint for coordinates if (tilePoint == null) { tilePoint = mouseEvent.TilePoint; } MouseTileHover(tilePoint); } }