Ejemplo n.º 1
0
        public void StartNewReplay()
        {
            ReplayFileManager.CheckAndCreateReplayFolder(_replayFolderPath);

            NbtCompound headerFileTag = ReplayTagManager.GenerateNewReplayHeaderTag(_gameManager);

            ReplayFileManager.SaveTagToFile(headerFileTag, _replayFolderPath + "replay.dat", _compressionMethod);
        }
Ejemplo n.º 2
0
        private void SaveEvents()
        {
            var watch = Stopwatch.StartNew();

            NbtCompound replayFileTag = ReplayTagManager.GenerateReplayFileTag(_replayEvents, _currentBatchStartTick, _gameManager.Tick, _currentBatch);

            ReplayFileManager.SaveTagToFile(replayFileTag, _replayFolderPath + "r_" + _currentBatch + ".dat", _compressionMethod);

            watch.Stop();
            Console.WriteLine("Events saved in " + watch.Elapsed.TotalMilliseconds);
        }
Ejemplo n.º 3
0
        public void LoadReplay()
        {
            NbtCompound rootTag = ReplayFileManager.LoadRootTagFromFile(_replayFolderPath, _compressionMethod);

            NbtList eventsTag = rootTag.Get <NbtList>(ReplayTagManager.EVENTS_TAG);

            foreach (NbtTag tag in eventsTag)
            {
                ReplayEvent <T> replayEvent = new ReplayEvent <T>().LoadTag(tag as NbtCompound, _typeById);
                _replayEvents.Enqueue(replayEvent);
                _actions.Enqueue(replayEvent.Action);
            }
        }