private void DirectionSelectedHandler(object sender, System.EventArgs eventArgs)
 {
     if (!isPause)
     {
         currentSimulation.MakeStep();
     }
 }
        private void InitializeSimulation(SimulatorAdapter simulation)
        {
            PlayerPrefs.Save();
            simulation.Visualizer = visualizer;

            var observingCamera = gameCamera.GetComponent <Visualization.IVisualizerObserver>();

            Debug.Assert(observingCamera != null, "GameCamera must have IVisualizerObserver based component.");

            observingCamera.Restart();
            simulation.ObservingCamera = observingCamera;

            var validPlayer = SelectValidPlayer();
            var curInfo     = validPlayer.GetSnakeInfo();

            if (snakeLookupManager != null)
            {
                curInfo.maxLength    = snakeLookupManager.SnakeLength;
                curInfo.scuamaPatern = snakeLookupManager.ScuamaPatern;
            }

            if (validPlayer is IHumanPlayer humanPlayer)
            {
                humanPlayer.DirectionSelected += DirectionSelectedHandler;
            }

            simulation.ObservedPlayer = validPlayer;
            AddBots(simulation);

            simulation.ObservedPlayerDied -= ObservedPlayerDiedHandler;
            simulation.ObservedPlayerDied += ObservedPlayerDiedHandler;

            simulation.NonObservedPlayerDied -= NonObservedPlayerDiedHandler;
            simulation.NonObservedPlayerDied += NonObservedPlayerDiedHandler;

            simulation.MakeStep();
        }