Beispiel #1
0
 protected override void OnExportRead(uint channel, INetFieldExportGroup exportGroup)
 {
     _buffer.Enqueue(new ExportGroupPlaybackEvent
     {
         Time        = _currentReadTimeSeconds,
         Channel     = channel,
         ExportGroup = exportGroup
     });
 }
Beispiel #2
0
        protected override bool ContinueParsingChannel(INetFieldExportGroup exportGroup)
        {
            switch (exportGroup)
            {
            //Always fully parse these
            case SupplyDropLlamaC _:
            case SupplyDropC _:
            case SafeZoneIndicatorC _:
            case FortPoiManager _:
            case GameStateC _:
                return(true);
            }

            switch (ParseType)
            {
            case ParseType.Minimal:
                return(false);

            default:
                return(true);
            }
        }
Beispiel #3
0
        private void ExportGroupRead(uint channel, INetFieldExportGroup exportGroup)
        {
            //Used for weapon data and possibly other things
            if (Replay.GameInformation.NetGUIDToPathName == null)
            {
                Replay.GameInformation.NetGUIDToPathName = GuidCache.NetGuidToPathName;
            }

            switch (exportGroup)
            {
            case BaseStructure baseBuild:
                Replay.GameInformation.UpdateBuild(channel, baseBuild);
                break;

            case FortTeamPrivateInfo privateTeamInfo:
                Replay.GameInformation.UpdatePrivateTeamInfo(channel, privateTeamInfo);
                break;

            case SearchableContainer searchableContainer:
                Replay.GameInformation.UpdateSearchableContainer(channel, searchableContainer);
                break;

            case GameplayCueExecuted cueExecuted:
                //Fall damage should be in here
                break;

            case CurrentPlaylistInfo playlistInfo:
                Replay.GameInformation.UpdatePlaylistInfo(channel, playlistInfo);
                break;

            case SupplyDropLlamaC llama:
                Replay.GameInformation.UpdateLlama(channel, llama);
                break;

            case SupplyDropC supplyDrop:
                Replay.GameInformation.UpdateSupplyDrop(channel, supplyDrop);
                break;

            case GameStateC gameState:
                Replay.GameInformation.UpdateGameState(gameState);
                break;

            case FortPlayerState playerState:
                Replay.GameInformation.UpdatePlayerState(channel, playerState, GuidCache.NetworkGameplayTagNodeIndex);
                break;

            case PlayerPawnC playerPawn:
                if (ParseType >= ParseType.Normal)
                {
                    Replay.GameInformation.UpdatePlayerPawn(channel, playerPawn, false);
                }
                break;

            case FortPickup fortPickup:
                if (ParseType >= ParseType.Normal)
                {
                    Replay.GameInformation.UpdateFortPickup(channel, fortPickup);
                }
                break;

            case SafeZoneIndicatorC safeZoneIndicator:
                Replay.GameInformation.UpdateSafeZone(safeZoneIndicator);
                break;

            case BatchedDamage batchedDamage:
                Replay.GameInformation.UpdateBatchedDamage(channel, batchedDamage);
                break;

            case GameplayCue gameplayCue:
                gameplayCue.GameplayCueTag?.UpdateTagName(GuidCache.NetworkGameplayTagNodeIndex);

                Replay.GameInformation.HandleGameplayCue(channel, gameplayCue);
                break;

            case BaseWeapon weapon:
                Replay.GameInformation.HandleWeapon(channel, weapon);
                break;

            case FortPoiManager poiManager:
                Replay.GameInformation.UpdatePoiManager(poiManager, GuidCache.NetworkGameplayTagNodeIndex);
                break;

            case FortInventory inventory:
                Replay.GameInformation.UpdateFortInventory(channel, inventory);
                break;

            case BaseProp prop:
                Replay.GameInformation.UpdateContainer(channel, prop);
                break;

            case HealthSet healthSet:
                Replay.GameInformation.UpdateHealth(channel, healthSet, GuidCache);
                break;
            }
        }
 protected override void OnExportRead(uint channelIndex, INetFieldExportGroup exportGroup)
 {
     // pass
 }
Beispiel #5
0
 protected override bool ContinueParsingChannel(INetFieldExportGroup exportGroup)
 {
     //Parse everything
     return(true);
 }
Beispiel #6
0
        protected override void OnExportRead(uint channel, INetFieldExportGroup exportGroup)
        {
            ++TotalPropertiesRead;

#if DEBUG
            if (Replay.GameInformation.Channels == null)
            {
                Replay.GameInformation.Channels = Channels;
            }
#endif
            //Used for weapon data and possibly other things
            if (Replay.GameInformation.NetGUIDToPathName == null)
            {
                Replay.GameInformation.NetGUIDToPathName = GuidCache.NetGuidToPathName;
            }

            if (Replay.GameInformation.Settings == null)
            {
                Replay.GameInformation.Settings = _fortniteSettings;
            }

            switch (exportGroup)
            {
            case AircraftC Test:
                break;

            case BaseStructure baseBuild:
                Replay.GameInformation.UpdateBuild(channel, baseBuild);
                break;

            case FortTeamPrivateInfo privateTeamInfo:
                Replay.GameInformation.UpdatePrivateTeamInfo(channel, privateTeamInfo);
                break;

            case SearchableContainer searchableContainer:
                Replay.GameInformation.UpdateSearchableContainer(channel, searchableContainer);
                break;

            case GameplayCueExecuted cueExecuted:
                //Fall damage should be in here
                break;

            case CurrentPlaylistInfo playlistInfo:
                Replay.GameInformation.UpdatePlaylistInfo(channel, playlistInfo);
                break;

            case SupplyDropLlamaC llama:
                Replay.GameInformation.UpdateLlama(channel, llama);
                break;

            case SupplyDropC supplyDrop:
                Replay.GameInformation.UpdateSupplyDrop(channel, supplyDrop);
                break;

            case GameStateC gameState:
                Replay.GameInformation.UpdateGameState(gameState);
                break;

            case FortPlayerState playerState:
                Replay.GameInformation.UpdatePlayerState(channel, playerState, GuidCache.NetworkGameplayTagNodeIndex);
                break;

            case PlayerPawnC playerPawn:
                if (ParseType >= ParseType.Normal)
                {
                    Replay.GameInformation.UpdatePlayerPawn(channel, playerPawn);
                }
                break;

            case FortPickup fortPickup:
                if (ParseType >= ParseType.Normal)
                {
                    if (!_fortniteSettings.IgnoreFloorLoot)
                    {
                        Replay.GameInformation.UpdateFortPickup(channel, fortPickup);
                    }
                }
                break;

            case SafeZoneIndicatorC safeZoneIndicator:
                Replay.GameInformation.UpdateSafeZone(safeZoneIndicator);
                break;

            case BatchedDamage batchedDamage:
                if (!_fortniteSettings.IgnoreShots)
                {
                    Replay.GameInformation.UpdateBatchedDamage(channel, batchedDamage);
                }

                break;

            case GameplayCue gameplayCue:
                gameplayCue.GameplayCueTag.UpdateTagName(GuidCache.NetworkGameplayTagNodeIndex);

                Replay.GameInformation.HandleGameplayCue(channel, gameplayCue);
                break;

            case BaseWeapon weapon:
                Replay.GameInformation.HandleWeapon(channel, weapon);
                break;

            case FortPoiManager poiManager:
                Replay.GameInformation.UpdatePoiManager(poiManager, GuidCache.NetworkGameplayTagNodeIndex);
                break;

            case FortInventory inventory:
                if (!_fortniteSettings.IgnoreInventory)
                {
                    Replay.GameInformation.UpdateFortInventory(channel, inventory);
                }
                break;

            case BaseProp prop:

                if (!_fortniteSettings.IgnoreContainers)
                {
                    Replay.GameInformation.UpdateContainer(channel, prop);
                }
                break;

            case HealthSet healthSet:
                if (!_fortniteSettings.IgnoreHealth)
                {
                    Replay.GameInformation.UpdateHealth(channel, healthSet, GuidCache);
                }
                break;

            case BaseVehicle vehicle:
                Replay.GameInformation.UpdateVehicle(channel, vehicle);
                break;

            case MiniGameCreated minigame:     //Multiple rounds
                Replay.GameInformation.MiniGameUpdate(channel, minigame, GuidCache.NetworkGameplayTagNodeIndex);
                break;

            case DebuggingExportGroup debuggingObject:
                break;
            }
        }