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