- Renomeia ~50 classes UCLASS/USTRUCT/UENUM/UINTERFACE pra Zeus* (AZeusGameMode, AZeusCharacter, UZeusGameInstance, IZeusEntityInterface, UZeusWorldSubsystem, FZeusEntitySnapshot, etc.) - Encurta AZMMOPlayerCharacter -> AZeusCharacter - Renomeia módulos satélite ZMMOAttributes -> ZeusAttributes e ZMMOJobs -> ZeusJobs (pasta + .Build.cs + .uproject) - Mantém módulo principal ZMMO (renomeia depois quando jogo ganhar nome) - DefaultEngine.ini: ActiveClassRedirects ZMMOX -> ZeusX (preserva BPs/assets) - DefaultGame.ini: sections atualizadas pra ZeusThemeSubsystem/ZeusPlayerState - Category="ZMMO|..." -> "Zeus|..." em UPROPERTYs - Preserva LogZMMO, ZMMO_API, /Script/ZMMO., /Game/ZMMO/, classes Target Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
61 lines
1.9 KiB
C++
61 lines
1.9 KiB
C++
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "CommonUserWidget.h"
|
|
#include "UI/UIStyleTokens.h"
|
|
#include "UISpinner_Base.generated.h"
|
|
|
|
class UCircularThrobber;
|
|
|
|
/**
|
|
* Spinner/throbber indeterminado do ZMMO — mesmo padrão de UUIPanel_Base.
|
|
* Fundação CommonUI (UCommonUserWidget). Camada Abstract; o WBP concreto
|
|
* (UI_Spinner_Master) herda DIRETO desta classe C++ (UMG não encadeia
|
|
* árvores — ARQUITETURA.md §3.3).
|
|
*
|
|
* Visual data-driven por FUIStyle.Spinner (UZeusThemeSubsystem). C++ aplica
|
|
* NumberOfPieces/Period/Radius no UCircularThrobber; cor/brush vão pelo hook
|
|
* BP_ApplySpinnerStyle (o WBP tinge a imagem do throbber).
|
|
*/
|
|
UCLASS(Abstract, Blueprintable)
|
|
class ZMMO_API UUISpinner_Base : public UCommonUserWidget
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
/** Re-resolve os tokens do tema ativo e reaplica no throbber. */
|
|
UFUNCTION(BlueprintCallable, Category = "UI Style")
|
|
void RefreshUIStyle();
|
|
|
|
/**
|
|
* Variante visual do spinner (dropdown vem de FUIStyle.Spinner.Colors/
|
|
* Layouts no DT_UI_Styles). Data-driven, sem enum fixo.
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Spinner",
|
|
meta = (GetOptions = "GetVariantOptions"))
|
|
FName Variant = TEXT("Default");
|
|
|
|
UFUNCTION()
|
|
TArray<FString> GetVariantOptions() const;
|
|
|
|
protected:
|
|
virtual void NativePreConstruct() override;
|
|
virtual void NativeConstruct() override;
|
|
virtual void NativeDestruct() override;
|
|
|
|
/** Hook opcional: o WBP aplica cor/brush do spinner (variante composta). */
|
|
UFUNCTION(BlueprintImplementableEvent, Category = "UI Style",
|
|
meta = (DisplayName = "Apply Spinner Style"))
|
|
void BP_ApplySpinnerStyle(const FUIStyleSpinnerVariant& VariantStyle);
|
|
|
|
/** Throbber circular (nome esperado no WBP: "Throbber"). */
|
|
UPROPERTY(meta = (BindWidgetOptional))
|
|
TObjectPtr<UCircularThrobber> Throbber;
|
|
|
|
private:
|
|
UFUNCTION()
|
|
void HandleThemeChanged(FName NewThemeId);
|
|
|
|
bool bThemeBound = false;
|
|
};
|