public void main()
        {
            foreach (Entity e in _entities)
            {
                e.Main();
            }
            //Run the game loop
            while (!SwinGame.WindowCloseRequested() && !SwinGame.KeyTyped(KeyCode.vk_ESCAPE))
            {
                if (SwinGame.KeyTyped(KeyCode.vk_BACKSPACE))
                {
                    SwinGame.ToggleFullScreen();
                }

                if (SwinGame.MouseClicked(MouseButton.LeftButton))
                {
                    bool playerSelected = false;
                    foreach (Player p in _players)
                    {
                        if (p.AtPoint(SwinGame.MousePosition()))
                        {
                            p.Selected     = !p.Selected;
                            playerSelected = true;
                        }
                    }

                    if (!playerSelected)
                    {
                        if (_player1.Selected)
                        {
                            _player1.SetDest(SwinGame.MousePosition());
                        }
                        else if (!_player2.Selected)
                        {
                            UpdateTile(SwinGame.MousePosition());
                        }
                    }
                }
                else if (SwinGame.MouseClicked(MouseButton.RightButton) && _player2.Selected)
                {
                    _player2.SetDest(SwinGame.MousePosition());
                }
                if (SwinGame.KeyTyped(KeyCode.vk_p))
                {
                    _paused = !_paused;
                }
                if (!_paused)
                {
                    List <Entity> toRemove = new List <Entity>();
                    foreach (Player p in _players)
                    {
                        foreach (Entity e in p.GetToAdd())
                        {
                            _entities.Add(e);
                        }
                    }
                    foreach (Entity e in _entities)
                    {
                        e.Main();
                        if (e.GetToRemove())
                        {
                            toRemove.Add(e);
                        }
                    }
                    foreach (Entity e in toRemove)
                    {
                        _entities.Remove(e);
                    }
                }
                foreach (Player p in _players)
                {
                    if (p.Selected)
                    {
                        p.AcceptInput();
                    }
                }

                _drawer.Draw();
            }
        }