Esempio n. 1
0
        public void MouseLeave()
        {
            this.lastTilePoint = null;

            var mouseEvent = new EventTileMouseEvent(this.mapId, EventTileMouseEvent.MouseEvents.Leave);

            mouseEvent.Post();
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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();
            }
        }
Esempio n. 4
0
        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);
            }
        }