feat(ui): sistema de UI Style (tokens C++ por tema) + fontes Aurora Arcana

Camada de estilo data-driven do cliente ZMMO, portando o nucleo do projeto de referencia (Hyper) para C++ conforme ARQUITETURA.md (BP Struct proibido):

- Source/ZMMO/Data/UI: UIStyleTypes.h (enums EUI*), UIStyleTokens.h (tokens primitive/semantic/component), UIStyleRow.h (FUIStyle + FUIStyleRow). - ZMMOThemeSubsystem: GetActiveUIStyle() resolve DT_UI_Styles por ThemeId com fallback Default. - Fontes: 8 UFontFace Inline (Cinzel/Rajdhani) em Content/ZMMO/UI/Fonts + DT_UI_Styles preenchido. - ARQUITETURA.md: prefixo de widget UI_, classes base UUI*_Base (UCLASS Abstract) sem prefixo ZMMO. - Config/DefaultGame.ini: UIStyleTable apontando DT_UI_Styles. - Scripts/import_fonts.py (importador idempotente). Inclui tambem o scaffolding do modulo ZMMO ainda nao versionado (Source/ZMMO/Data, Game/UI, Content/ZMMO, uproject, Build.cs).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-18 21:21:32 -03:00
parent 50471831a2
commit 1c06d69174
124 changed files with 2328 additions and 1 deletions

View File

@@ -0,0 +1,29 @@
#pragma once
#include "CoreMinimal.h"
#include "ThemeKeys.generated.h"
UENUM(BlueprintType)
enum class EZMMOThemeKey : uint8
{
// HUD
HUD_Frame UMETA(DisplayName = "HUD - Frame"),
HUD_HotbarBackground UMETA(DisplayName = "HUD - Hotbar Background"),
HUD_HealthBar UMETA(DisplayName = "HUD - Health Bar"),
HUD_ManaBar UMETA(DisplayName = "HUD - Mana Bar"),
// Login / Character Select
Login_Background UMETA(DisplayName = "Login - Background"),
Login_Logo UMETA(DisplayName = "Login - Logo"),
Login_Music UMETA(DisplayName = "Login - Music"),
Login_AmbientVFX UMETA(DisplayName = "Login - Ambient VFX"),
CharSelect_Background UMETA(DisplayName = "Character Select - Background"),
// Inventory
Inventory_SlotEmpty UMETA(DisplayName = "Inventory - Empty Slot"),
Inventory_Background UMETA(DisplayName = "Inventory - Background"),
// Generic
MainMenu_Music UMETA(DisplayName = "Main Menu Music"),
LoadingScreen UMETA(DisplayName = "Loading Screen")
};