56 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			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);
 | |
| }; |