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,67 @@
#include "ZeusJobChangeNetworkHandler.h"
#include "Engine/GameInstance.h"
#include "Engine/World.h"
#include "ZeusNetworkSubsystem.h"
DEFINE_LOG_CATEGORY_STATIC(LogZeusJobChange, Log, All);
bool UZeusJobChangeNetworkHandler::ShouldCreateSubsystem(UObject* Outer) const
{
// Mesmo criterio do AttributeNetworkHandler — so' em mundos de gameplay
// (PIE / standalone in-game). Editor preview / front-end menu nao precisa.
const UWorld* World = Cast<UWorld>(Outer);
if (World == nullptr) { return false; }
return World->WorldType == EWorldType::Game
|| World->WorldType == EWorldType::PIE;
}
void UZeusJobChangeNetworkHandler::Initialize(FSubsystemCollectionBase& Collection)
{
Super::Initialize(Collection);
if (UZeusNetworkSubsystem* Net = GetZeusNetSubsystem())
{
JobChangeResultHandle = Net->OnJobChangeResult.AddUObject(
this, &UZeusJobChangeNetworkHandler::HandleJobChangeResult);
UE_LOG(LogZeusJobChange, Log,
TEXT("[ZeusJobChangeNetworkHandler] Bind OnJobChangeResult OK"));
}
else
{
UE_LOG(LogZeusJobChange, Warning,
TEXT("[ZeusJobChangeNetworkHandler] ZeusNetworkSubsystem indisponivel — bind pulado"));
}
}
void UZeusJobChangeNetworkHandler::Deinitialize()
{
if (UZeusNetworkSubsystem* Net = GetZeusNetSubsystem())
{
if (JobChangeResultHandle.IsValid())
{
Net->OnJobChangeResult.Remove(JobChangeResultHandle);
JobChangeResultHandle.Reset();
}
}
OnJobChangeResult.Clear();
Super::Deinitialize();
}
void UZeusJobChangeNetworkHandler::HandleJobChangeResult(
bool bAccepted, int32 Reason, int32 NewClassId)
{
UE_LOG(LogZeusJobChange, Log,
TEXT("[ZeusJobChangeNetworkHandler] S_JOB_CHANGE_RESULT accepted=%d reason=%d newClassId=%d"),
bAccepted ? 1 : 0, Reason, NewClassId);
OnJobChangeResult.Broadcast(bAccepted, Reason, NewClassId);
}
UZeusNetworkSubsystem* UZeusJobChangeNetworkHandler::GetZeusNetSubsystem() const
{
const UWorld* World = GetWorld();
if (World == nullptr) { return nullptr; }
UGameInstance* GI = World->GetGameInstance();
if (GI == nullptr) { return nullptr; }
return GI->GetSubsystem<UZeusNetworkSubsystem>();
}