- 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>
78 lines
2.6 KiB
C++
78 lines
2.6 KiB
C++
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "CommonActivatableWidget.h"
|
|
#include "Engine/EngineBaseTypes.h"
|
|
#include "UIActivatableScreen_Base.generated.h"
|
|
|
|
/**
|
|
* Modo de input desejado pela tela (espelha o padrão do Lyra). O
|
|
* UUIActivatableScreen_Base converte isto num FUIInputConfig em
|
|
* GetDesiredInputConfig.
|
|
*/
|
|
UENUM(BlueprintType)
|
|
enum class EZeusScreenInputMode : uint8
|
|
{
|
|
Default, // não força nada (herda do CommonUI)
|
|
GameAndMenu, // jogo + UI (ex.: HUD com cursor)
|
|
Game, // só jogo
|
|
Menu // só UI (telas de front-end — default)
|
|
};
|
|
|
|
/**
|
|
* Base de TODAS as telas de front-end (Boot/Login/ServerSelect/Lobby/…).
|
|
*
|
|
* Fundação CommonUI (UCommonActivatableWidget) cuida de
|
|
* ativação/foco/voltar/stack. Camada Abstract; o WBP concreto herda DIRETO
|
|
* desta classe C++ (UMG não encadeia árvores — ARQUITETURA.md §3.3). Os WBPs
|
|
* gerados pelo Zeus UMG Forge são reparented para cá (§4.8).
|
|
*
|
|
* Reage à troca de tema via UZeusThemeSubsystem (mesmo padrão de
|
|
* UUIButton_Base) e encaminha o "voltar" ao UUIFrontEndFlowSubsystem.
|
|
*/
|
|
UCLASS(Abstract, Blueprintable)
|
|
class ZMMO_API UUIActivatableScreen_Base : public UCommonActivatableWidget
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
/** Re-resolve os tokens do tema ativo e reaplica. WBP/filho sobrescreve. */
|
|
UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "UI Style")
|
|
void RefreshUIStyle();
|
|
virtual void RefreshUIStyle_Implementation();
|
|
|
|
protected:
|
|
// ---- Input config (desktop/gamepad) ----
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Input")
|
|
EZeusScreenInputMode InputConfig = EZeusScreenInputMode::Menu;
|
|
|
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Input")
|
|
EMouseCaptureMode GameMouseCaptureMode = EMouseCaptureMode::CapturePermanently;
|
|
|
|
virtual TOptional<FUIInputConfig> GetDesiredInputConfig() const override;
|
|
|
|
// ---- Lifecycle (espelha o hook de tema de UUIButton_Base) ----
|
|
virtual void NativeConstruct() override;
|
|
virtual void NativeDestruct() override;
|
|
virtual void NativeOnActivated() override;
|
|
virtual void NativeOnDeactivated() override;
|
|
|
|
/** "Voltar" (Esc/B): encaminha ao UUIFrontEndFlowSubsystem::RequestBack. */
|
|
virtual bool NativeOnHandleBackAction() override;
|
|
|
|
/** Hooks Blueprint para o WBP refinado. */
|
|
UFUNCTION(BlueprintImplementableEvent, Category = "UI",
|
|
meta = (DisplayName = "On Screen Activated"))
|
|
void BP_OnScreenActivated();
|
|
|
|
UFUNCTION(BlueprintImplementableEvent, Category = "UI",
|
|
meta = (DisplayName = "On Screen Deactivated"))
|
|
void BP_OnScreenDeactivated();
|
|
|
|
private:
|
|
UFUNCTION()
|
|
void HandleThemeChanged(FName NewThemeId);
|
|
|
|
bool bThemeBound = false;
|
|
};
|