refactor: change file name
This commit is contained in:
49
Source/UTAD_UI/SkillTree/SkillTreeSubsystem.cpp
Normal file
49
Source/UTAD_UI/SkillTree/SkillTreeSubsystem.cpp
Normal 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"));
|
||||
}
|
||||
64
Source/UTAD_UI/SkillTree/SkillTreeSubsystem.h
Normal file
64
Source/UTAD_UI/SkillTree/SkillTreeSubsystem.h
Normal 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;
|
||||
};
|
||||
Reference in New Issue
Block a user