- 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>
70 lines
2.2 KiB
C++
70 lines
2.2 KiB
C++
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Engine/GameInstance.h"
|
|
#include "ZeusGameInstance.generated.h"
|
|
|
|
class UZeusNetworkSubsystem;
|
|
|
|
/**
|
|
* UZeusGameInstance
|
|
*
|
|
* Game instance do cliente Zeus MMO. O `UZeusNetworkSubsystem` (do plugin
|
|
* `ZeusNetwork`) e um `UGameInstanceSubsystem` e portanto e criado
|
|
* automaticamente em qualquer `UGameInstance`; esta classe existe sobretudo
|
|
* como ponto de extensao para:
|
|
*
|
|
* - Auto-connect ao servidor Zeus em `Init()` (`bAutoConnectOnStart`).
|
|
* - Expor a configuracao default (`Host`, `Port`) ao Project Settings.
|
|
* - Hooks de logout / shutdown limpos em `Shutdown()`.
|
|
*
|
|
* Marcada `Blueprintable, BlueprintType` para permitir um BP filho com
|
|
* overrides de configuracao por build (dev / staging / prod).
|
|
*/
|
|
UCLASS(Blueprintable, BlueprintType)
|
|
class ZMMO_API UZeusGameInstance : public UGameInstance
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
virtual void Init() override;
|
|
virtual void Shutdown() override;
|
|
|
|
/**
|
|
* Se `true`, tenta ligar ao servidor Zeus em `Init()` usando
|
|
* `ZeusServerHost`/`ZeusServerPort`. Default `false`: a conexao agora e
|
|
* dirigida pelo `UUIFrontEndFlowSubsystem` (fluxo Boot→Connecting→Login).
|
|
* Pôr `true` apenas para smoke test legado sem front-end.
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Config, Category = "Zeus|Network")
|
|
bool bAutoConnectOnStart = false;
|
|
|
|
/** Host (IPv4 ou hostname) do servidor Zeus. */
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Config, Category = "Zeus|Network")
|
|
FString ZeusServerHost = TEXT("127.0.0.1");
|
|
|
|
/** Porta UDP do servidor Zeus (1..65535). */
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Config, Category = "Zeus|Network", meta = (ClampMin = "1", ClampMax = "65535"))
|
|
int32 ZeusServerPort = 27777;
|
|
|
|
protected:
|
|
/** Devolve o subsystem Zeus desta game instance (criado automaticamente pelo plugin). */
|
|
UFUNCTION(BlueprintPure, Category = "Zeus|Network")
|
|
UZeusNetworkSubsystem* GetZeusNetwork() const;
|
|
|
|
void BindZeusDelegates(UZeusNetworkSubsystem* Zeus);
|
|
void UnbindZeusDelegates(UZeusNetworkSubsystem* Zeus);
|
|
|
|
UFUNCTION()
|
|
void HandleZeusConnected();
|
|
|
|
UFUNCTION()
|
|
void HandleZeusConnectionFailed(FString Reason);
|
|
|
|
UFUNCTION()
|
|
void HandleZeusDisconnected();
|
|
|
|
UFUNCTION()
|
|
void HandleZeusNetworkLog(FString Message);
|
|
};
|