(Feat) Add Animation Fps Charater

This commit is contained in:
2026-08-13 22:07:08 +02:00
parent 176beab9fc
commit cca54a5e0d
157 changed files with 850 additions and 148 deletions
@@ -0,0 +1,77 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "CustomizationCategoryWidget.generated.h"
class UBorder;
class UButton;
class UTextBlock;
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnCustomizationCategoryClicked, int32, CategoryIndex);
/**
* Une ligne de la colonne de gauche : « Corps », « Cheveux », « Peau »...
*
* Elle ne sait pas ce qu'elle designe -- juste un libelle et un index, comme
* USettingRowWidget ignore ce qu'il regle. C'est l'ecran qui traduit l'index en
* categorie, et c'est ce qui permet de n'avoir qu'UN widget a dessiner pour les
* onze entrees.
*/
UCLASS(Abstract)
class EMBERWILD_API UCustomizationCategoryWidget : public UUserWidget
{
GENERATED_BODY()
public:
virtual void NativeOnInitialized() override;
UPROPERTY(BlueprintAssignable, Category = "Customization")
FOnCustomizationCategoryClicked OnCategoryClicked;
UFUNCTION(BlueprintCallable, Category = "Customization")
void Setup(int32 InIndex, const FText& InLabel);
UFUNCTION(BlueprintCallable, Category = "Customization")
void SetSelected(bool bInSelected);
/**
* L'index de la categorie que porte cette rangee.
*
* Indispensable a l'ecran : les categories vides etant sautees, le rang de
* la rangee dans la colonne ne vaut PAS son index de categorie.
*/
UFUNCTION(BlueprintPure, Category = "Customization")
int32 GetCategoryIndex() const { return CategoryIndex; }
protected:
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> CategoryButton;
UPROPERTY(meta = (BindWidget))
TObjectPtr<UTextBlock> CategoryLabel;
/** Optionnel : on peut aussi marquer la selection par la couleur du texte. */
UPROPERTY(meta = (BindWidgetOptional))
TObjectPtr<UBorder> SelectionBorder;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Customization")
FLinearColor SelectedLabelColor = FLinearColor(1.f, 0.78f, 0.35f, 1.f);
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Customization")
FLinearColor UnselectedLabelColor = FLinearColor(0.8f, 0.8f, 0.8f, 1.f);
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Customization")
FLinearColor SelectedBorderColor = FLinearColor(1.f, 1.f, 1.f, 0.12f);
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Customization")
FLinearColor UnselectedBorderColor = FLinearColor(1.f, 1.f, 1.f, 0.f);
private:
UFUNCTION()
void HandleButtonClicked();
int32 CategoryIndex = 0;
};