refactor: prefixo ZMMO -> Zeus em classes/módulos C++ do cliente
- 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>
This commit is contained in:
76
Source/ZeusAttributes/Public/ZeusHudHpSpWidget.h
Normal file
76
Source/ZeusAttributes/Public/ZeusHudHpSpWidget.h
Normal file
@@ -0,0 +1,76 @@
|
||||
#pragma once
|
||||
|
||||
#include "Blueprint/UserWidget.h"
|
||||
#include "CoreMinimal.h"
|
||||
#include "ZeusAttributeTypes.h"
|
||||
#include "ZeusHudHpSpWidget.generated.h"
|
||||
|
||||
class UProgressBar;
|
||||
class UTextBlock;
|
||||
|
||||
/**
|
||||
* Sub-widget do HUD: barras de HP/SP + label de level. Sem auto-bind no
|
||||
* AttributeComponent — o parent (`UZeusHudWidget`) propaga snapshots via
|
||||
* `ApplySnapshot` / `ApplyHpSpDelta` quando o player local recebe updates.
|
||||
*
|
||||
* Composicao do HUD (ver `UZeusHudWidget`):
|
||||
* WBP_HUD (UZeusHudWidget root)
|
||||
* |-- HpSpBar (UZeusHudHpSpWidget — este)
|
||||
* |-- PlayerInfo (futuro — nome/job/level)
|
||||
* |-- Minimap (futuro)
|
||||
* |-- QuickBar (futuro — hotkeys)
|
||||
* |-- Buffs (futuro — icones SC)
|
||||
* |-- Chat (futuro)
|
||||
* |-- TargetInfo (futuro — mob/player targetado)
|
||||
*
|
||||
* Cada sub-widget tem responsabilidade unica (SRP). O parent (UZeusHudWidget)
|
||||
* faz binding com AttributeComponent e propaga deltas.
|
||||
*
|
||||
* Convencao `meta=(BindWidget)`: o WBP filho deve ter widgets com nomes
|
||||
* exatos (HpBar, SpBar). `BindWidgetOptional` permite omitir.
|
||||
*/
|
||||
UCLASS(Abstract, Blueprintable, BlueprintType)
|
||||
class ZEUSATTRIBUTES_API UZeusHudHpSpWidget : public UUserWidget
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
/** Atualiza todos os campos a partir do snapshot. Chamado pelo UZeusHudWidget. */
|
||||
UFUNCTION(BlueprintCallable, Category = "Zeus|HUD")
|
||||
void ApplySnapshot(const FZeusAttributesSnapshot& Snapshot);
|
||||
|
||||
/** Atualiza apenas HP/SP (sem mexer no level/text). Otimizacao do tick. */
|
||||
UFUNCTION(BlueprintCallable, Category = "Zeus|HUD")
|
||||
void ApplyHpSp(int32 Hp, int32 MaxHp, int32 Sp, int32 MaxSp);
|
||||
|
||||
protected:
|
||||
/**
|
||||
* Hook BlueprintNativeEvent para skin visual reagir a um snapshot novo
|
||||
* (cores, animacao de level up, etc.). Impl default em C++ apenas
|
||||
* atualiza progress bars + textos via BindWidget/BindWidgetOptional.
|
||||
*/
|
||||
UFUNCTION(BlueprintNativeEvent, Category = "Zeus|HUD")
|
||||
void OnSnapshotApplied(const FZeusAttributesSnapshot& Snapshot);
|
||||
virtual void OnSnapshotApplied_Implementation(const FZeusAttributesSnapshot& Snapshot);
|
||||
|
||||
// === BindWidget — devem existir no WBP com EXATAMENTE estes nomes ===
|
||||
UPROPERTY(BlueprintReadOnly, meta = (BindWidget), Category = "Zeus|HUD")
|
||||
UProgressBar* HpBar = nullptr;
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, meta = (BindWidget), Category = "Zeus|HUD")
|
||||
UProgressBar* SpBar = nullptr;
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional), Category = "Zeus|HUD")
|
||||
UTextBlock* HpText = nullptr;
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional), Category = "Zeus|HUD")
|
||||
UTextBlock* SpText = nullptr;
|
||||
|
||||
UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional), Category = "Zeus|HUD")
|
||||
UTextBlock* LevelText = nullptr;
|
||||
|
||||
private:
|
||||
/// Ultimo snapshot recebido (cache pra ApplyHpSp manter MaxHp/MaxSp). */
|
||||
UPROPERTY(Transient)
|
||||
FZeusAttributesSnapshot LastSnapshot;
|
||||
};
|
||||
Reference in New Issue
Block a user