// Project Lab - NHTV Igad

#pragma once

#include "MenuScreen.h"
#include "CharacterSettings.h"
#include "CharacterDependentSubMenus.generated.h"

UCLASS()
class UCharacterDependentSubMenu : public UMenuPanel
{
	GENERATED_BODY()
public:
	virtual void OnEnter(class UMenuScreenBase* screen) override;

	virtual void OnSuspend(USubMenu* newSubMenu, bool loseFocus) override;
	virtual void OnRestore(USubMenu* removedMenu) override;

	UPROPERTY(BlueprintReadOnly, Category = "Skill Tree Sub Menu")
	class UCharacterSubMenu* characterSubMenu;
	UPROPERTY(BlueprintReadOnly, Category = "Skill Tree Sub Menu")
	class ACharacterCarousel* characterCarousel;
	// Curently displayed character in the menu
	UPROPERTY(BlueprintReadOnly, Category = "Skill Tree Sub Menu")
	class ACharacterBase* displayCharacter;

	UFUNCTION(BlueprintCallable, Category = "Skill Tree Sub Menu")
	FCharacterSave GetCharacterSave() const;
	UFUNCTION(BlueprintCallable, Category = "Skill Tree Sub Menu")
	void SetCharacterSave(const FCharacterSave& save);
};

UCLASS()
class UCustomizationSubMenu : public UCharacterDependentSubMenu
{
	GENERATED_BODY()
public:
};
UCLASS()
class USkillTreeSubMenu : public UCharacterDependentSubMenu
{
	GENERATED_BODY()
public:
};
UCLASS()
class USkillSelectByAbilitySubMenu : public UCharacterDependentSubMenu
{
	GENERATED_BODY()
public:
};