50 lines
1.3 KiB
C++
50 lines
1.3 KiB
C++
#include "SkillTreeSubsystem.h"
|
|
#include "SkillTreeComponent.h"
|
|
#include "Engine/World.h"
|
|
#include "Kismet/GameplayStatics.h"
|
|
|
|
void USkillTreeSubsystem::Initialize(FSubsystemCollectionBase& Collection)
|
|
{
|
|
Super::Initialize(Collection);
|
|
|
|
UE_LOG(LogTemp, Log, TEXT("SkillTreeManager: Initialized"));
|
|
}
|
|
|
|
void USkillTreeSubsystem::Deinitialize()
|
|
{
|
|
Super::Deinitialize();
|
|
|
|
PlayerSkillTreeComponent = nullptr;
|
|
}
|
|
|
|
USkillTreeSubsystem* USkillTreeSubsystem::GetSkillTreeManager(const UObject* WorldContextObject)
|
|
{
|
|
if (!WorldContextObject)
|
|
{
|
|
return nullptr;
|
|
}
|
|
|
|
UGameInstance* GameInstance = UGameplayStatics::GetGameInstance(WorldContextObject);
|
|
if (!GameInstance)
|
|
{
|
|
return nullptr;
|
|
}
|
|
|
|
return GameInstance->GetSubsystem<USkillTreeSubsystem>();
|
|
}
|
|
|
|
void USkillTreeSubsystem::RegisterPlayerSkillTree(USkillTreeComponent* SkillTreeComponent)
|
|
{
|
|
if (SkillTreeComponent)
|
|
{
|
|
PlayerSkillTreeComponent = SkillTreeComponent;
|
|
UE_LOG(LogTemp, Log, TEXT("SkillTreeManager: Registered player skill tree component"));
|
|
}
|
|
}
|
|
|
|
void USkillTreeSubsystem::UnregisterPlayerSkillTree()
|
|
{
|
|
PlayerSkillTreeComponent = nullptr;
|
|
UE_LOG(LogTemp, Log, TEXT("SkillTreeManager: Unregistered player skill tree component"));
|
|
}
|