refactor: change file name

This commit is contained in:
2025-10-11 03:34:03 +02:00
parent be8ea7a497
commit 6be3bf9fa2
2 changed files with 113 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
#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"));
}

View File

@@ -0,0 +1,64 @@
#pragma once
#include "CoreMinimal.h"
#include "Subsystems/GameInstanceSubsystem.h"
#include "SkillTreeTypes.h"
#include "SkillTreeSubsystem.generated.h"
// Forward declarations
class USkillTreeComponent;
UCLASS()
class UTAD_UI_API USkillTreeSubsystem : public UGameInstanceSubsystem
{
GENERATED_BODY()
public:
// Subsystem interface
virtual void Initialize(FSubsystemCollectionBase& Collection) override;
virtual void Deinitialize() override;
// Get the singleton instance
UFUNCTION(BlueprintPure, Category = "Skill Tree", meta = (DisplayName = "Get Skill Tree Manager"))
static USkillTreeSubsystem* GetSkillTreeManager(const UObject* WorldContextObject);
// Register and unregister player skill tree components
UFUNCTION(BlueprintCallable, Category = "Skill Tree")
void RegisterPlayerSkillTree(USkillTreeComponent* SkillTreeComponent);
UFUNCTION(BlueprintCallable, Category = "Skill Tree")
void UnregisterPlayerSkillTree();
// Get the player's skill tree component
UFUNCTION(BlueprintPure, Category = "Skill Tree")
USkillTreeComponent* GetPlayerSkillTree() const { return PlayerSkillTreeComponent; }
// Global skill tree settings
UFUNCTION(BlueprintPure, Category = "Skill Tree Settings")
int32 GetMaxSkillPoints() const { return MaxSkillPoints; }
UFUNCTION(BlueprintPure, Category = "Skill Tree Settings")
int32 GetSkillPointsPerLevel() const { return SkillPointsPerLevel; }
UFUNCTION(BlueprintPure, Category = "Skill Tree Settings")
int32 GetRespecCost() const { return RespecCost; }
protected:
// Reference to the player's skill tree component
UPROPERTY()
USkillTreeComponent* PlayerSkillTreeComponent;
// Global settings
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Settings")
int32 MaxSkillPoints = 100;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Settings")
int32 SkillPointsPerLevel = 1;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Settings")
int32 RespecCost = 100; // Cost in gold/currency to reset skills
// Data table for skills (can be overridden in Blueprint)
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Settings")
class UDataTable* DefaultSkillDataTable;
};