You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Light cards work with sequencer by using the orientation properties such as latitude and longitude. CCWs require the transform tracked instead. Light card alpha gradient settings are also exposed to sequencer. #jira UE-182176 #rb trystan.binkley-Jone #preflight 6430791241783dc3d0e19a9e [CL 24972106 by patrick hardy in ue5-main branch]
66 lines
2.2 KiB
C++
66 lines
2.2 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "DisplayClusterLightCardExtenderModule.h"
|
|
|
|
#if WITH_EDITOR
|
|
#include "ISequencerModule.h"
|
|
#endif
|
|
|
|
void FDisplayClusterLightCardExtenderModule::StartupModule()
|
|
{
|
|
#if WITH_EDITOR
|
|
ISequencerModule& SequencerModule = FModuleManager::Get().LoadModuleChecked<ISequencerModule>("Sequencer");
|
|
SequencerCreatedHandle = SequencerModule.RegisterOnSequencerCreated(FOnSequencerCreated::FDelegate::CreateRaw(this, &FDisplayClusterLightCardExtenderModule::OnSequencerCreated));
|
|
#endif
|
|
}
|
|
|
|
void FDisplayClusterLightCardExtenderModule::ShutdownModule()
|
|
{
|
|
#if WITH_EDITOR
|
|
for (const TWeakPtr<ISequencer, ESPMode::ThreadSafe>& Sequencer : OpenSequencers)
|
|
{
|
|
if (Sequencer.IsValid())
|
|
{
|
|
Sequencer.Pin()->OnGlobalTimeChanged().RemoveAll(this);
|
|
Sequencer.Pin()->OnCloseEvent().RemoveAll(this);
|
|
}
|
|
}
|
|
|
|
OpenSequencers.Empty();
|
|
|
|
if (FModuleManager::Get().IsModuleLoaded("Sequencer"))
|
|
{
|
|
ISequencerModule& SequencerModule = FModuleManager::Get().LoadModuleChecked<ISequencerModule>(TEXT("Sequencer"));
|
|
SequencerModule.UnregisterOnSequencerCreated(SequencerCreatedHandle);
|
|
}
|
|
#endif
|
|
}
|
|
|
|
#if WITH_EDITOR
|
|
void FDisplayClusterLightCardExtenderModule::OnSequencerCreated(TSharedRef<ISequencer> InSequencer)
|
|
{
|
|
TWeakPtr<ISequencer> SequencerWeakPtr = InSequencer;
|
|
OpenSequencers.Add(SequencerWeakPtr);
|
|
|
|
InSequencer->OnGlobalTimeChanged().AddRaw(this, &FDisplayClusterLightCardExtenderModule::OnSequencerTimeChanged, SequencerWeakPtr);
|
|
InSequencer->OnCloseEvent().AddRaw(this, &FDisplayClusterLightCardExtenderModule::OnSequencerClosed);
|
|
}
|
|
|
|
void FDisplayClusterLightCardExtenderModule::OnSequencerTimeChanged(TWeakPtr<ISequencer> InSequencer)
|
|
{
|
|
OnSequencerTimeChangedDelegate.Broadcast(InSequencer);
|
|
}
|
|
|
|
void FDisplayClusterLightCardExtenderModule::OnSequencerClosed(TSharedRef<ISequencer> InSequencer)
|
|
{
|
|
InSequencer->OnGlobalTimeChanged().RemoveAll(this);
|
|
InSequencer->OnCloseEvent().RemoveAll(this);
|
|
OpenSequencers.Remove(InSequencer);
|
|
|
|
// Positions could have reset to their original values.
|
|
OnSequencerTimeChangedDelegate.Broadcast(InSequencer);
|
|
}
|
|
#endif
|
|
|
|
IMPLEMENT_MODULE(FDisplayClusterLightCardExtenderModule, DisplayClusterLightCardExtender)
|