// Copyright Epic Games, Inc. All Rights Reserved. #include "LyraReplaySubsystem.h" #include "Engine/GameInstance.h" #include "Engine/World.h" #include "Engine/DemoNetDriver.h" ULyraReplaySubsystem::ULyraReplaySubsystem() { } void ULyraReplaySubsystem::PlayReplay(ULyraReplayListEntry* Replay) { if (Replay != nullptr) { FString DemoName = Replay->StreamInfo.Name; GetGameInstance()->PlayReplay(DemoName); } } // void ULyraReplaySubsystem::DeleteReplay() // { // ReplayStreamer->DeleteFinishedStream(SelectedItem->StreamInfo.Name, FDeleteFinishedStreamCallback::CreateSP(this, &SShooterDemoList::OnDeleteFinishedStreamComplete)); // } void ULyraReplaySubsystem::SeekInActiveReplay(float TimeInSeconds) { if (UDemoNetDriver* DemoDriver = GetDemoDriver()) { DemoDriver->GotoTimeInSeconds(TimeInSeconds); } } float ULyraReplaySubsystem::GetReplayLengthInSeconds() const { if (UDemoNetDriver* DemoDriver = GetDemoDriver()) { return DemoDriver->GetDemoTotalTime(); } return 0.0f; } float ULyraReplaySubsystem::GetReplayCurrentTime() const { if (UDemoNetDriver* DemoDriver = GetDemoDriver()) { return DemoDriver->GetDemoCurrentTime(); } return 0.0f; } UDemoNetDriver* ULyraReplaySubsystem::GetDemoDriver() const { if (UWorld* World = GetGameInstance()->GetWorld()) { return World->GetDemoNetDriver(); } return nullptr; }