using System;
using System.Collections.Generic;
using Minesweeper.Core;
using Minesweeper.Presentation.Factories;

namespace Minesweeper.Presentation.Views
{
    public sealed class NullGameView : IGameView
    {
        public event Action RestartRequested
        {
            add { }
            remove { }
        }

        public event Action GoToMenuRequested
        {
            add { }
            remove { }
        }

        public event Action PauseRequested
        {
            add { }
            remove { }
        }

        public event Action ResumeRequested
        {
            add { }
            remove { }
        }

        public event Action CellPressStarted
        {
            add { }
            remove { }
        }

        public event Action CellPressEnded
        {
            add { }
            remove { }
        }

        public event Action<int, int> CellOpenRequested
        {
            add { }
            remove { }
        }

        public event Action<int, int> CellFlagRequested
        {
            add { }
            remove { }
        }

        public void ShowGame()
        {
        }

        public void HideGame()
        {
        }

        public void ShowPause()
        {
        }

        public void HidePause()
        {
        }

        public void ShowResult(GameState state)
        {
        }

        public void HideResult()
        {
        }

        public void SetMineCount(int minesCount)
        {
        }

        public void SetTimer(float seconds)
        {
        }

        public void RebuildBoard(IReadOnlyList<BoardCellData> cells, int width, int height, ICellViewFactory cellViewFactory)
        {
        }

        public void RefreshBoard(IReadOnlyList<BoardCellData> cells)
        {
        }

        public void SetBoardInputEnabled(bool enabled)
        {
        }
    }
}
