Fixed world delegates

This commit is contained in:
Jordon Brooks 2024-07-07 19:22:41 +01:00
parent 6ba25c1b0d
commit a2d4452691
Signed by: jordon
GPG key ID: DBD9758CD53E786A
2 changed files with 22 additions and 22 deletions

View file

@ -58,27 +58,6 @@ TMap<FName, TMap<FName, FHLConfigValue>> UHarmonyLinkGraphics::_DefaultSettings
}} }}
}; };
UHarmonyLinkGraphics::UHarmonyLinkGraphics()
{
UE_LOG(LogHarmonyLink, Warning, TEXT("HarmonyLinkGraphics initialized."));
if (_INSTANCE != this)
{
if (_INSTANCE)
{
DestroySettings();
}
_INSTANCE = this;
}
AddToRoot();
FWorldDelegates::OnPostWorldInitialization.AddStatic(&UHarmonyLinkGraphics::OnPostWorldInitialization);
FWorldDelegates::OnPreWorldFinishDestroy.AddStatic(&UHarmonyLinkGraphics::OnWorldEnd);
Init();
}
UHarmonyLinkGraphics::~UHarmonyLinkGraphics() UHarmonyLinkGraphics::~UHarmonyLinkGraphics()
{ {
UE_LOG(LogHarmonyLink, Verbose, TEXT("~UHarmonyLinkGraphics called.")); UE_LOG(LogHarmonyLink, Verbose, TEXT("~UHarmonyLinkGraphics called."));
@ -276,6 +255,7 @@ UHarmonyLinkGraphics* UHarmonyLinkGraphics::GetSettings()
// Proceed to create a new singleton instance // Proceed to create a new singleton instance
_INSTANCE = NewObject<UHarmonyLinkGraphics>(); _INSTANCE = NewObject<UHarmonyLinkGraphics>();
_INSTANCE->Init();
return _INSTANCE; return _INSTANCE;
} }
@ -353,6 +333,22 @@ void UHarmonyLinkGraphics::DestroySettings()
void UHarmonyLinkGraphics::Init() void UHarmonyLinkGraphics::Init()
{ {
UE_LOG(LogHarmonyLink, Warning, TEXT("HarmonyLinkGraphics initialized."));
if (_INSTANCE != this)
{
if (_INSTANCE)
{
DestroySettings();
}
_INSTANCE = this;
}
AddToRoot();
FWorldDelegates::OnPostWorldInitialization.AddStatic(&UHarmonyLinkGraphics::OnPostWorldInitialization);
FWorldDelegates::OnPreWorldFinishDestroy.AddStatic(&UHarmonyLinkGraphics::OnWorldEnd);
UE_LOG(LogHarmonyLink, Log, TEXT("Init called.")); UE_LOG(LogHarmonyLink, Log, TEXT("Init called."));
if (!HarmonyLinkLib::HL_Init()) if (!HarmonyLinkLib::HL_Init())
@ -650,6 +646,11 @@ void UHarmonyLinkGraphics::OnWorldEnd(UWorld* World)
UE_LOG(LogHarmonyLink, Error, TEXT("World Already destroyed")) UE_LOG(LogHarmonyLink, Error, TEXT("World Already destroyed"))
return; return;
} }
if (!World->IsGameWorld())
{
return;
}
if(World->GetTimerManager().TimerExists(_TickTimerHandle)) if(World->GetTimerManager().TimerExists(_TickTimerHandle))
{ {

View file

@ -22,7 +22,6 @@ class HARMONYLINK_API UHarmonyLinkGraphics : public UBlueprintFunctionLibrary
GENERATED_BODY() GENERATED_BODY()
public: public:
UHarmonyLinkGraphics();
virtual ~UHarmonyLinkGraphics() override; virtual ~UHarmonyLinkGraphics() override;
UPROPERTY(BlueprintAssignable) UPROPERTY(BlueprintAssignable)