60 lines
1.4 KiB
C++
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;
|
||
|
}
|