Пример #1
0
 private void RewindToPoint(int value)
 {
     historicalPlaybackCurrentIndex = value;
     if (historicalPlaybackCurrentIndex != game.HistoryLength)
     {
         BBGameState state = game.GetUpdate(value);
         if (state != null)
         {
             LogUpdate(state);
             ReadyToProcessNewPlay = true;
         }
     }
 }
Пример #2
0
    void Start()
    {
        game = gameRunner.getFocusedGame();
        if (game == null)
        {
            SceneManager.LoadScene(Constants.SCENE_TITLE);
            return;
        }


        PRNG prng = new ParkMiller(game.GameID);

        PregeneratedRandomValues = new List <float>();
        for (int i = 0; i < 1000; i++)
        {
            PregeneratedRandomValues.Add(prng.next());
        }


        queue = new Queue <BBGameState>();
        queue = new Queue <BBGameState>();
        game.OnUpdateReady   += LogUpdate;
        ReadyToProcessNewPlay = true;

        historicalPlaybackCurrentIndex = game.isRunning ? -1 : 0;
        currentState = game.GetUpdate(historicalPlaybackCurrentIndex);
        if (currentState != null)
        {
            queue.Enqueue(currentState);
        }
        HandleTechnicalDifficulties(null);

        if (game.isRunning)
        {
            Debug.Log("Rewind Off");
            cameraGraphicsMasterControl.DisableRewind();
        }
        else
        {
            Debug.Log("Rewind On");
            cameraGraphicsMasterControl.EnableRewind();
            cameraGraphicsMasterControl.rewindPanel.OnChanged += RewindToPoint;
        }
    }