- 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>
92 lines
3.2 KiB
C++
92 lines
3.2 KiB
C++
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Blueprint/UserWidget.h"
|
|
#include "ZeusCharSummary.h"
|
|
#include "UICharCard_Base.generated.h"
|
|
|
|
class UCommonTextBlock;
|
|
class UBorder;
|
|
class UUIButton_Base;
|
|
class UWidget;
|
|
|
|
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FZeusOnCharCardSelected, FString, CharId);
|
|
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FZeusOnCharCardDeleteRequest, FString, CharId);
|
|
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FZeusOnCharCardDeleteAccept, FString, CharId);
|
|
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FZeusOnCharCardDeleteCancel, FString, CharId);
|
|
|
|
/**
|
|
* Card de personagem (instanciado dinamicamente pelo Lobby/CharSelect).
|
|
*
|
|
* Quando `Summary.DeleteScheduledAtMs > 0`, o card alterna os botoes:
|
|
* - Btn_Select → escondido
|
|
* - Btn_Delete → escondido
|
|
* - Btn_AcceptDelete → visivel (efetiva o delete depois da janela)
|
|
* - Btn_CancelDelete → visivel (cancela o agendamento)
|
|
*
|
|
* Visibilidade so e alterada se os widgets opcionais estiverem bindados —
|
|
* o WBP pode optar por mostrar/esconder via BP override.
|
|
*/
|
|
UCLASS(Abstract, Blueprintable)
|
|
class ZMMO_API UUICharCard_Base : public UUserWidget
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
UFUNCTION(BlueprintCallable, Category = "Zeus|CharCard")
|
|
void SetFromSummary(const FZeusCharSummary& InSummary);
|
|
|
|
UPROPERTY(BlueprintReadOnly, Category = "Zeus|CharCard")
|
|
FZeusCharSummary Summary;
|
|
|
|
UPROPERTY(BlueprintAssignable, Category = "Zeus|CharCard")
|
|
FZeusOnCharCardSelected OnCardSelected;
|
|
|
|
UPROPERTY(BlueprintAssignable, Category = "Zeus|CharCard")
|
|
FZeusOnCharCardDeleteRequest OnCardDeleteRequest;
|
|
|
|
UPROPERTY(BlueprintAssignable, Category = "Zeus|CharCard")
|
|
FZeusOnCharCardDeleteAccept OnCardDeleteAccept;
|
|
|
|
UPROPERTY(BlueprintAssignable, Category = "Zeus|CharCard")
|
|
FZeusOnCharCardDeleteCancel OnCardDeleteCancel;
|
|
|
|
/**
|
|
* Hook BP — chamado apos SetFromSummary aplicar valores. Util pra
|
|
* ajustar visual quando delete esta agendado (badges, cores, etc).
|
|
*/
|
|
UFUNCTION(BlueprintImplementableEvent, Category = "Zeus|CharCard")
|
|
void OnSummaryApplied(bool bIsDeleteScheduled);
|
|
|
|
protected:
|
|
virtual void NativeConstruct() override;
|
|
virtual void NativeDestruct() override;
|
|
|
|
void HandleSelectClicked();
|
|
void HandleDeleteClicked();
|
|
void HandleAcceptDeleteClicked();
|
|
void HandleCancelDeleteClicked();
|
|
|
|
/** Re-renderiza o texto do countdown (chamado pelo timer 1s). */
|
|
UFUNCTION()
|
|
void TickCountdown();
|
|
|
|
void StartCountdownTimer();
|
|
void StopCountdownTimer();
|
|
|
|
UPROPERTY(meta = (BindWidgetOptional)) TObjectPtr<UBorder> Card_Bg;
|
|
UPROPERTY(meta = (BindWidgetOptional)) TObjectPtr<UCommonTextBlock> Text_Name;
|
|
UPROPERTY(meta = (BindWidgetOptional)) TObjectPtr<UCommonTextBlock> Text_Level;
|
|
UPROPERTY(meta = (BindWidgetOptional)) TObjectPtr<UCommonTextBlock> Text_Class;
|
|
UPROPERTY(meta = (BindWidget)) TObjectPtr<UUIButton_Base> Btn_Select;
|
|
UPROPERTY(meta = (BindWidgetOptional)) TObjectPtr<UUIButton_Base> Btn_Delete;
|
|
UPROPERTY(meta = (BindWidgetOptional)) TObjectPtr<UUIButton_Base> Btn_AcceptDelete;
|
|
UPROPERTY(meta = (BindWidgetOptional)) TObjectPtr<UUIButton_Base> Btn_CancelDelete;
|
|
UPROPERTY(meta = (BindWidgetOptional)) TObjectPtr<UCommonTextBlock> Text_DeleteCountdown;
|
|
|
|
private:
|
|
bool bBound = false;
|
|
|
|
FTimerHandle CountdownTimerHandle;
|
|
};
|