Swap ListView over to ScrollBox
This commit is contained in:
parent
e7a10aa267
commit
8fba6df0db
BIN
Content/Widgets/MainMenu/BP_SelectWeaponWidget.uasset
(Stored with Git LFS)
BIN
Content/Widgets/MainMenu/BP_SelectWeaponWidget.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
Content/Widgets/MainMenu/BP_StarterButtonWIdget.uasset
(Stored with Git LFS)
BIN
Content/Widgets/MainMenu/BP_StarterButtonWIdget.uasset
(Stored with Git LFS)
Binary file not shown.
@ -3,11 +3,10 @@
|
|||||||
|
|
||||||
#include "SelectWeaponWidget.h"
|
#include "SelectWeaponWidget.h"
|
||||||
|
|
||||||
#include "MainMenuWidget.h"
|
#include "CustomButton.h"
|
||||||
#include "StarterWeaponButtonDataObject.h"
|
#include "StarterWeaponButtonDataObject.h"
|
||||||
#include "UpgradeButtonDataObject.h"
|
#include "StarterWeaponButtonWidget.h"
|
||||||
#include "Components/Button.h"
|
#include "Components/ScrollBox.h"
|
||||||
#include "Components/ListView.h"
|
|
||||||
#include "Kismet/GameplayStatics.h"
|
#include "Kismet/GameplayStatics.h"
|
||||||
|
|
||||||
void USelectWeaponWidget::NativeConstruct()
|
void USelectWeaponWidget::NativeConstruct()
|
||||||
@ -17,47 +16,36 @@ void USelectWeaponWidget::NativeConstruct()
|
|||||||
if (BackButton)
|
if (BackButton)
|
||||||
{
|
{
|
||||||
BackButton->OnClicked.AddUniqueDynamic(this, &USelectWeaponWidget::BackButtonClicked);
|
BackButton->OnClicked.AddUniqueDynamic(this, &USelectWeaponWidget::BackButtonClicked);
|
||||||
BackButton->OnHovered.AddUniqueDynamic(this, &USelectWeaponWidget::BackButtonOnHovered);
|
|
||||||
BackButton->OnUnhovered.AddUniqueDynamic(this, &USelectWeaponWidget::BackButtonOnUnhovered);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (UpgradesListView)
|
if (StarterWeaponsScrollBox && StarterWeaponButtonWidgetTemplate)
|
||||||
{
|
{
|
||||||
// Get a list of weapons that the player owns that can be upgraded
|
|
||||||
for (TSubclassOf<AWeapon> Weapon : StarterWeapons)
|
for (TSubclassOf<AWeapon> Weapon : StarterWeapons)
|
||||||
{
|
{
|
||||||
UStarterWeaponButtonDataObject* Temp = NewObject<UStarterWeaponButtonDataObject>(this);
|
if (UStarterWeaponButtonWidget* Widget = CreateWidget<UStarterWeaponButtonWidget>(
|
||||||
Temp->SetData(Weapon, this);
|
GetWorld(), StarterWeaponButtonWidgetTemplate))
|
||||||
UpgradesListView->AddItem(Temp);
|
{
|
||||||
|
UStarterWeaponButtonDataObject* Temp = NewObject<UStarterWeaponButtonDataObject>(this);
|
||||||
|
Temp->SetData(Weapon, this);
|
||||||
|
Widget->SetData(Temp);
|
||||||
|
StarterWeaponsScrollBox->AddChild(Widget);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void USelectWeaponWidget::BackButtonClicked()
|
void USelectWeaponWidget::BackButtonClicked()
|
||||||
{
|
{
|
||||||
PlayClickedSound();
|
|
||||||
if (PreviousWidget)
|
if (PreviousWidget)
|
||||||
{
|
{
|
||||||
RemoveFromParent();
|
RemoveFromParent();
|
||||||
|
|
||||||
UUserWidget* SelectWeaponWidget = CreateWidget<UUserWidget, APlayerController*>(
|
UUserWidget* MainMenuWidget = CreateWidget<UUserWidget, APlayerController*>(
|
||||||
UGameplayStatics::GetPlayerController(GetWorld(), 0), PreviousWidget);
|
UGameplayStatics::GetPlayerController(GetWorld(), 0), PreviousWidget);
|
||||||
|
|
||||||
if (SelectWeaponWidget)
|
if (MainMenuWidget)
|
||||||
{
|
{
|
||||||
SelectWeaponWidget->AddToViewport();
|
MainMenuWidget->AddToViewport();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void USelectWeaponWidget::BackButtonOnHovered()
|
|
||||||
{
|
|
||||||
PlayHoveredSound();
|
|
||||||
SetTextBlockHovered(BackTextBlock);
|
|
||||||
}
|
|
||||||
|
|
||||||
void USelectWeaponWidget::BackButtonOnUnhovered()
|
|
||||||
{
|
|
||||||
PlayUnhoveredSound();
|
|
||||||
SetTextBlockUnhovered(BackTextBlock);
|
|
||||||
}
|
|
||||||
|
@ -7,9 +7,12 @@
|
|||||||
#include "SelectWeaponWidget.generated.h"
|
#include "SelectWeaponWidget.generated.h"
|
||||||
|
|
||||||
|
|
||||||
|
class UStarterWeaponButtonWidget;
|
||||||
|
class UScrollBox;
|
||||||
|
class UCustomListView;
|
||||||
class AWeapon;
|
class AWeapon;
|
||||||
class UListView;
|
class UListView;
|
||||||
class UButton;
|
class UCustomButton;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@ -18,33 +21,28 @@ class VAMPIRES_API USelectWeaponWidget : public UVampireInteractiveWidget
|
|||||||
{
|
{
|
||||||
GENERATED_BODY()
|
GENERATED_BODY()
|
||||||
|
|
||||||
|
public:
|
||||||
UPROPERTY(meta=(BindWidget))
|
UPROPERTY(meta=(BindWidget))
|
||||||
TObjectPtr<UButton> BackButton;
|
TObjectPtr<UCustomButton> BackButton;
|
||||||
|
|
||||||
UPROPERTY(meta=(BindWidget))
|
UPROPERTY(meta=(BindWidget))
|
||||||
TObjectPtr<UTextBlock> BackTextBlock;
|
TObjectPtr<UScrollBox> StarterWeaponsScrollBox;
|
||||||
|
|
||||||
UPROPERTY(meta=(BindWidget))
|
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
|
||||||
TObjectPtr<UListView> UpgradesListView;
|
TSubclassOf<UStarterWeaponButtonWidget> StarterWeaponButtonWidgetTemplate;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
UPROPERTY(EditDefaultsOnly)
|
UPROPERTY(EditDefaultsOnly)
|
||||||
TArray<TSubclassOf<AWeapon>> StarterWeapons;
|
TArray<TSubclassOf<AWeapon>> StarterWeapons;
|
||||||
|
|
||||||
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
|
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
|
||||||
TSubclassOf<class UUserWidget> PreviousWidget;
|
TSubclassOf<class UUserWidget> PreviousWidget;
|
||||||
|
|
||||||
|
FTimerHandle TimerHandle;
|
||||||
|
|
||||||
virtual void NativeConstruct() override;
|
virtual void NativeConstruct() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
UFUNCTION()
|
UFUNCTION()
|
||||||
void BackButtonClicked();
|
void BackButtonClicked();
|
||||||
|
|
||||||
UFUNCTION()
|
|
||||||
void BackButtonOnHovered();
|
|
||||||
|
|
||||||
UFUNCTION()
|
|
||||||
void BackButtonOnUnhovered();
|
|
||||||
};
|
};
|
||||||
|
@ -10,11 +10,12 @@
|
|||||||
#include "Kismet/GameplayStatics.h"
|
#include "Kismet/GameplayStatics.h"
|
||||||
#include "vampires/VampireGameInstance.h"
|
#include "vampires/VampireGameInstance.h"
|
||||||
|
|
||||||
void UStarterWeaponButtonWidget::NativeOnListItemObjectSet(UObject* ListItemObject)
|
void UStarterWeaponButtonWidget::SetData(UStarterWeaponButtonDataObject* ListItemObject)
|
||||||
{
|
{
|
||||||
if (UStarterWeaponButtonDataObject* Item = Cast<UStarterWeaponButtonDataObject>(ListItemObject))
|
if (UStarterWeaponButtonDataObject* Item = Cast<UStarterWeaponButtonDataObject>(ListItemObject))
|
||||||
{
|
{
|
||||||
TextBlock->SetText(Item->WeaponName);
|
TextBlock->SetText(Item->WeaponName);
|
||||||
|
ButtonText = Item->WeaponName;
|
||||||
DescriptionTextBlock->SetText(Item->WeaponDescription);
|
DescriptionTextBlock->SetText(Item->WeaponDescription);
|
||||||
WeaponIcon->SetBrushFromTexture(Item->WeaponIcon);
|
WeaponIcon->SetBrushFromTexture(Item->WeaponIcon);
|
||||||
Parent = Item->Parent;
|
Parent = Item->Parent;
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#include "Blueprint/UserWidget.h"
|
#include "Blueprint/UserWidget.h"
|
||||||
#include "StarterWeaponButtonWidget.generated.h"
|
#include "StarterWeaponButtonWidget.generated.h"
|
||||||
|
|
||||||
|
class UStarterWeaponButtonDataObject;
|
||||||
class AWeapon;
|
class AWeapon;
|
||||||
class UTextBlock;
|
class UTextBlock;
|
||||||
class UImage;
|
class UImage;
|
||||||
@ -32,7 +33,9 @@ class VAMPIRES_API UStarterWeaponButtonWidget : public UCustomButton, public IUs
|
|||||||
UPROPERTY()
|
UPROPERTY()
|
||||||
TObjectPtr<UUserWidget> Parent;
|
TObjectPtr<UUserWidget> Parent;
|
||||||
|
|
||||||
virtual void NativeOnListItemObjectSet(UObject* ListItemObject) override;
|
public:
|
||||||
|
void SetData(UStarterWeaponButtonDataObject* ListItemObject);
|
||||||
|
|
||||||
|
private:
|
||||||
virtual void OnButtonClicked() override;
|
virtual void OnButtonClicked() override;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user