Add spell training widget and logic

This commit is contained in:
2025-01-06 03:42:06 -05:00
parent 32f7d37242
commit a7a2e522fa
11 changed files with 280 additions and 13 deletions
@@ -0,0 +1,53 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "SpellTrainWidget.h"
#include "Components/Button.h"
#include "Components/EditableTextBox.h"
void USpellTrainWidget::AddNewTemplate()
{
UE_LOG(
LogTemp,
Warning,
TEXT("USpellTrainWidget::AddNewTemplate()")
);
ALumiCharacter* Lumi = nullptr;
LumiController->GetLumiCharacter(Lumi);
const FString Name = TxtBoxName->GetText().ToString();
Lumi->AddSpellTemplateToTable(Name);
GEngine->AddOnScreenDebugMessage(
-1,
10.f,
FColor::Black,
TEXT("Template with name: ") + Name + TEXT(" added to table.")
);
}
void USpellTrainWidget::Clear()
{
UE_LOG(
LogTemp,
Warning,
TEXT("USpellTrainWidget::Clear()")
);
ALumiCharacter* Lumi = nullptr;
LumiController->GetLumiCharacter(Lumi);
Lumi->HideTrainWidget();
}
void USpellTrainWidget::NativeConstruct()
{
Super::NativeConstruct();
if (APlayerController* PlayerController = GetOwningPlayer())
{
LumiController = Cast<ALumiController>(PlayerController);
}
BtnAdd->OnClicked.AddUniqueDynamic(this, &USpellTrainWidget::AddNewTemplate);
BtnClear->OnClicked.AddUniqueDynamic(this, &USpellTrainWidget::Clear);
}
@@ -0,0 +1,44 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "WizardingCentral/Characters/LumiController.h"
#include "SpellTrainWidget.generated.h"
class UButton;
class UEditableTextBox;
/**
*
*/
UCLASS()
class WIZARDINGCENTRAL_API USpellTrainWidget : public UUserWidget
{
GENERATED_BODY()
protected:
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> BtnAdd;
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> BtnClear;
UPROPERTY(meta = (BindWidget))
TObjectPtr<UEditableTextBox> TxtBoxName;
private:
TObjectPtr<ALumiController> LumiController;
protected:
UFUNCTION()
void
AddNewTemplate();
UFUNCTION()
void
Clear();
virtual void NativeConstruct() override;
};