50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "SkillTreeManager.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"));
 | |
| }
 |