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:
62
Source/ZeusJobs/Public/ZeusJobsLibrary.h
Normal file
62
Source/ZeusJobs/Public/ZeusJobsLibrary.h
Normal file
@@ -0,0 +1,62 @@
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Kismet/BlueprintFunctionLibrary.h"
|
||||
#include "ZeusJobTypes.h"
|
||||
#include "ZeusJobsLibrary.generated.h"
|
||||
|
||||
class UZeusJobDataAsset;
|
||||
|
||||
/**
|
||||
* Helpers Blueprint pra UI/HUD acessar dados de job sem precisar pegar o
|
||||
* Subsystem manualmente. Todos usam WorldContextObject pra resolver
|
||||
* GameInstance → Subsystem internamente.
|
||||
*
|
||||
* Padrao de uso em UMG:
|
||||
* - Text binding: `JobsLibrary::GetJobDisplayName(Self, AttrComp.Current.ClassId)`
|
||||
* - Image binding: `JobsLibrary::GetJobIcon(Self, ClassId).LoadSynchronous()`
|
||||
*/
|
||||
UCLASS()
|
||||
class ZEUSJOBS_API UZeusJobsLibrary : public UBlueprintFunctionLibrary
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
/// Nome localizado do job. Fallback "Classe N" se ClassId nao tem DA
|
||||
/// correspondente (job nao registrado no Content/ZMMO/Data/Jobs/).
|
||||
UFUNCTION(BlueprintPure, Category = "Zeus|Jobs",
|
||||
meta = (WorldContext = "WorldContextObject"))
|
||||
static FText GetJobDisplayName(const UObject* WorldContextObject, int32 ClassId);
|
||||
|
||||
/// DataAsset completo (pode ser nullptr — caller checa).
|
||||
UFUNCTION(BlueprintPure, Category = "Zeus|Jobs",
|
||||
meta = (WorldContext = "WorldContextObject"))
|
||||
static UZeusJobDataAsset* GetJobData(const UObject* WorldContextObject, int32 ClassId);
|
||||
|
||||
/// Helper de UI: retorna true se ClassId tem DA registrado.
|
||||
UFUNCTION(BlueprintPure, Category = "Zeus|Jobs",
|
||||
meta = (WorldContext = "WorldContextObject"))
|
||||
static bool IsJobRegistered(const UObject* WorldContextObject, int32 ClassId);
|
||||
|
||||
/// Lista jobs num tier (UI dropdown). Vazio se subsystem indisponivel.
|
||||
UFUNCTION(BlueprintPure, Category = "Zeus|Jobs",
|
||||
meta = (WorldContext = "WorldContextObject"))
|
||||
static TArray<UZeusJobDataAsset*> GetJobsByTier(
|
||||
const UObject* WorldContextObject, EZeusJobTier Tier);
|
||||
|
||||
/// Destinos de promocao a partir do char atual. WBP de promocao consome
|
||||
/// direto. Vazio se nao houver filhos (ex: char ja' esta em Tier 3
|
||||
/// Mastery — Jobs.4 introduzira terminal de progressao).
|
||||
UFUNCTION(BlueprintPure, Category = "Zeus|Jobs",
|
||||
meta = (WorldContext = "WorldContextObject"))
|
||||
static TArray<UZeusJobDataAsset*> GetEligibleNextJobs(
|
||||
const UObject* WorldContextObject, int32 CurrentClassId);
|
||||
|
||||
/// Helper de send via ZeusNetworkSubsystem. Conveniencia pra WBP nao
|
||||
/// precisar pegar o subsystem manualmente. Idempotente: rejeitado
|
||||
/// silenciosamente se nao conectado.
|
||||
UFUNCTION(BlueprintCallable, Category = "Zeus|Jobs",
|
||||
meta = (WorldContext = "WorldContextObject"))
|
||||
static void SendJobChangeRequest(
|
||||
const UObject* WorldContextObject, int32 TargetClassId);
|
||||
};
|
||||
Reference in New Issue
Block a user