#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(); } 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")); }