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:
2026-06-02 17:24:38 -03:00
parent bd1dab25ca
commit 6a6a28a086
128 changed files with 1224 additions and 1210 deletions

View File

@@ -0,0 +1,51 @@
#pragma once
#include "CoreMinimal.h"
#include "Subsystems/WorldSubsystem.h"
#include "ZeusAttributesPayload.h"
#include "ZeusAttributeNetworkHandler.generated.h"
class UZeusNetworkSubsystem;
/**
* Ponte entre o `UZeusNetworkSubsystem` (GameInstanceSubsystem do plugin
* ZeusNetwork) e os `UZeusAttributeComponent` ligados aos atores do mundo.
*
* Por que UWorldSubsystem (e nao GameInstanceSubsystem)?
* - O registry de atores (`UZeusWorldSubsystem::GetActorByEntityId`) e'
* World-scoped, reset a cada OpenLevel.
* - World subsystem so existe enquanto ha mundo carregado, o que e' exato
* quando precisamos rotear snapshots (no front-end nao ha pawn).
*
* Lifecycle: `Initialize` binda nos 3 delegates do ZeusNetworkSubsystem;
* `Deinitialize` unbinda. Conversao `FZeusAttributesPayload ->
* FZeusAttributesSnapshot` (USTRUCT Blueprint) acontece aqui.
*/
UCLASS()
class ZEUSATTRIBUTES_API UZeusAttributeNetworkHandler : public UWorldSubsystem
{
GENERATED_BODY()
public:
virtual void Initialize(FSubsystemCollectionBase& Collection) override;
virtual void Deinitialize() override;
virtual bool ShouldCreateSubsystem(UObject* Outer) const override;
private:
void HandleAttributeSnapshotFull(const FZeusAttributesPayload& Payload);
void HandleHpSpUpdate(int64 EntityId, int32 Hp, int32 Sp);
void HandleLevelUp(int64 EntityId, int32 NewBaseLevel, int32 StatusPointDelta);
void HandleStatAllocReply(bool bAccepted, int32 Reason);
UZeusNetworkSubsystem* GetZeusNetSubsystem() const;
/// Acha o AttributeComponent do player local (Pawn->PlayerState).
/// Usado pro StatAllocReply (sem EntityId no payload).
class UZeusAttributeComponent* FindLocalPlayerAttributeComponent() const;
FDelegateHandle SnapshotFullHandle;
FDelegateHandle HpSpUpdateHandle;
FDelegateHandle LevelUpHandle;
FDelegateHandle StatAllocReplyHandle;
};