RealtimeStyleTransferRuntime/Source/LyraGame/Replays/LyraReplaySubsystem.cpp

60 lines
1.4 KiB
C++

// 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;
}