Files
utad-ui/Source/UTAD_UI/SkillTree/SkillTreeBlueprintLibrary.h

56 lines
2.6 KiB
C++

#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "SkillTreeTypes.h"
#include "SkillTreeBlueprintLibrary.generated.h"
// Forward declarations
class USkillTreeComponent;
UCLASS()
class UTAD_UI_API USkillTreeBlueprintLibrary : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
public:
// UI Helper Functions
// Get state color for UI display
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Get Skill State Color"))
static FLinearColor GetSkillStateColor(ESkillNodeState State);
// Get state text for UI display
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Get Skill State Text"))
static FText GetSkillStateText(ESkillNodeState State);
// Check if a skill can be selected with detailed reason
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Get Skill Availability Text"))
static FText GetSkillAvailabilityText(USkillTreeComponent* SkillTreeComponent, FName SkillID);
// Get formatted description with current values
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Format Skill Description"))
static FText FormatSkillDescription(const FSkillNodeData& NodeData);
// Calculate total stats preview (including selected but not purchased skills)
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Get Preview Total Health Bonus"))
static float GetPreviewTotalHealthBonus(USkillTreeComponent* SkillTreeComponent);
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Get Preview Total Damage Bonus"))
static float GetPreviewTotalDamageBonus(USkillTreeComponent* SkillTreeComponent);
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Get Preview Total Speed Bonus"))
static float GetPreviewTotalSpeedBonus(USkillTreeComponent* SkillTreeComponent);
// Check if any skills are selected
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Has Selected Skills"))
static bool HasSelectedSkills(USkillTreeComponent* SkillTreeComponent);
// Check if player can respec
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Can Player Respec"))
static bool CanPlayerRespec(USkillTreeComponent* SkillTreeComponent);
// Get the connections between skills for line rendering
UFUNCTION(BlueprintPure, Category = "Skill Tree UI", meta = (DisplayName = "Get Skill Connections"))
static TArray<FName> GetSkillConnections(USkillTreeComponent* SkillTreeComponent, FName SkillID);
};