コード例 #1
0
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // Event-like functions

    public void MouseEvent(MapTile mapTile, MapDisplay.MouseEventType eventType)
    {
        if (hardInput.GetKey("Pan Camera"))
        {
            return;
        }

        BattleTile tile = mapTile ? this.GetTile(mapTile.pos) : null;

        BattleTile newHoveredTile = this.hoveredTile;

        if (eventType == MapDisplay.MouseEventType.Enter)
        {
            newHoveredTile = tile;
        }
        else if (eventType == MapDisplay.MouseEventType.Exit)
        {
            newHoveredTile = null;
        }
        else if (eventType == MapDisplay.MouseEventType.Click)
        {
            if (this.CanClickTile())
            {
                this.HexTileClicked();
            }
        }
        else if (eventType == MapDisplay.MouseEventType.RightClick)
        {
            this.HexTileRightClicked();
        }

        if (newHoveredTile != this.hoveredTile)
        {
            if (this.hoveredTile)
            {
                // Stopped hovering this tile.

                this.mapDisplay.DisableHoveredTile();
            }
            this.hoveredTile = newHoveredTile;
            if (this.hoveredTile)
            {
                // Started hovering this tile.

                this.mapDisplay.SetHoveredTile(this.hoveredTile.mapTile);
            }

            this.HexTileHovered();
        }
    }
コード例 #2
0
    public void MouseEvent(MapTile tile, MapDisplay.MouseEventType eventType)
    {
        if (hardInput.GetKey("Pan Camera"))
        {
            return;
        }

        if (eventType == MapDisplay.MouseEventType.Enter)
        {
            this.lastEnteredTile = tile;

            if (this.state == MapEditorState.Normal)
            {
                if (tile)
                {
                    this.mapDisplay.SetHoveredTile(tile);
                }
            }
            else if (this.state == MapEditorState.SelectionPaint)
            {
                if (tile && this.selectedTiles.Contains(tile) == false)
                {
                    this.selectedTiles.Add(tile);
                    this.mapDisplay.SetSelectedTiles(this.selectedTiles);
                }
            }
            else if (this.state == MapEditorState.SelectionErase)
            {
                if (tile && this.selectedTiles.Contains(tile) == true)
                {
                    this.selectedTiles.Remove(tile);
                    this.mapDisplay.SetSelectedTiles(this.selectedTiles);
                }
            }
        }
        else if (eventType == MapDisplay.MouseEventType.Exit)
        {
            this.lastEnteredTile = null;

            if (this.state == MapEditorState.Normal)
            {
                this.mapDisplay.DisableHoveredTile();
            }
        }
        else if (eventType == MapDisplay.MouseEventType.Click)
        {
        }
        else if (eventType == MapDisplay.MouseEventType.ClickDown)
        {
            if (this.state == MapEditorState.Normal)
            {
                this.SetState(MapEditorState.SelectionPaint);
            }
        }
        else if (eventType == MapDisplay.MouseEventType.ClickUp)
        {
            if (this.state == MapEditorState.SelectionPaint)
            {
                this.SetState(MapEditorState.Normal);
            }
        }
        else if (eventType == MapDisplay.MouseEventType.RightClickDown)
        {
            if (this.state == MapEditorState.Normal)
            {
                this.SetState(MapEditorState.SelectionErase);
            }
        }
        else if (eventType == MapDisplay.MouseEventType.RightClickUp)
        {
            if (this.state == MapEditorState.SelectionErase)
            {
                this.SetState(MapEditorState.Normal);
            }
        }
    }