Estrutura inicial do cliente Unreal Zeus MMO alinhada ao padrao "cliente solto + servidor valida input/velocidade" (ADR 0038): - Source/ZMMO/Game/Entity/ — IZMMOEntityInterface, AZMMOEntity (base AActor para Mob/NPC/Object), AZMMOPlayerCharacter (player local com CMC livre, Enhanced Input, envio de C_INPUT_AXIS), AZMMOPlayerProxy (snapshot-only para players remotos). - Source/ZMMO/Game/Controller/ — AZMMOPlayerController com IMC defaults (IMC_Default + IMC_MouseLook) e suporte opcional a virtual joystick. - Source/ZMMO/Game/Modes/ — AZMMOGameMode (defaults para PlayerCharacter / PlayerController), UZMMOGameInstance (auto-connect ao servidor Zeus em Init e logging dos eventos OnConnected/OnDisconnected/...). - Source/ZMMO/Game/Network/ — UZMMOWorldSubsystem (registry EntityId -> AActor*, dispatch dos delegates OnPlayerSpawned/Despawned/ StateUpdate; ignora snapshots locais do cliente solto). - Config/DefaultEngine.ini — GlobalDefaultGameMode aponta para /Script/ZMMO.ZMMOGameMode; GameInstanceClass para /Script/ZMMO.ZMMOGameInstance; redirects para a nova hierarquia. - ZMMO.Build.cs — depende de ZeusNetwork; PublicIncludePaths para a nova arvore Game/Entity|Controller|Modes|Network. - Content — assets do template ThirdPerson (Mannequins, IAs/IMCs, Lvl_ThirdPerson + TestWorld). Os Variant_* levels ficam no commit inicial mas serao limpos numa proxima sessao com aprovacao explicita (Master Rule para .umap/.uasset). Notas: - BP_ThirdPersonCharacter/GameMode/PlayerController ainda apontam para a hierarquia antiga e estao a aguardar aprovacao para remocao (Master Rule). - README.md descreve a arquitectura e o smoke test de conexao.
79 lines
2.7 KiB
C#
79 lines
2.7 KiB
C#
// Copyright 2022 (c) Microsoft. All rights reserved.
|
|
|
|
using UnrealBuildTool;
|
|
|
|
public class VisualStudioTools : ModuleRules
|
|
{
|
|
public VisualStudioTools(ReadOnlyTargetRules Target) : base(Target)
|
|
{
|
|
bool bIsCustomDevBuild = System.Environment.GetEnvironmentVariable("VSTUE_IsCustomDevBuild") == "1";
|
|
if (bIsCustomDevBuild)
|
|
{
|
|
// Get correct header suggestions in the IDE and validate
|
|
// the plugin build without having to affect for the whole target,
|
|
// which is expensive in source-builds of the engine.
|
|
PCHUsage = ModuleRules.PCHUsageMode.NoPCHs;
|
|
bUseUnity = false;
|
|
|
|
// When debugging the commandlet code, disable optimizations to get
|
|
// proper local variable inspection and less inlined stack frames
|
|
OptimizeCode = CodeOptimization.Never;
|
|
|
|
// Enable more restricted warnings during compilation in UE5.
|
|
// Required by tasks in the compliance pipeline.
|
|
#if UE_5_6_OR_LATER
|
|
CppCompileWarningSettings.UnsafeTypeCastWarningLevel = WarningLevel.Error;
|
|
#elif UE_5_0_OR_LATER
|
|
UnsafeTypeCastWarningLevel = WarningLevel.Error;
|
|
#endif
|
|
}
|
|
else
|
|
{
|
|
PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
|
|
}
|
|
|
|
// To support UE5.1+, the code is using the new FTopLevelAssetPath API
|
|
// with a detection of support via version numbers.
|
|
// If the check is producing a false positive/negative in your version of the engine
|
|
// you can change the block below and force the check as enabled/disabled.
|
|
if ((Target.Version.MajorVersion == 5 && Target.Version.MinorVersion >= 1) || Target.Version.MajorVersion > 5)
|
|
{
|
|
PrivateDefinitions.Add("FILTER_ASSETS_BY_CLASS_PATH=1");
|
|
}
|
|
else
|
|
{
|
|
PrivateDefinitions.Add("FILTER_ASSETS_BY_CLASS_PATH=0");
|
|
}
|
|
|
|
PublicDependencyModuleNames.AddRange(
|
|
new[]
|
|
{
|
|
"Core",
|
|
}
|
|
);
|
|
|
|
PrivateDependencyModuleNames.AddRange(
|
|
new string[]
|
|
{
|
|
"ApplicationCore",
|
|
"AssetRegistry",
|
|
"CoreUObject",
|
|
"Engine",
|
|
"Json",
|
|
"JsonUtilities",
|
|
"Kismet",
|
|
"UnrealEd",
|
|
"Slate",
|
|
"SlateCore",
|
|
"ToolMenus",
|
|
"EditorSubsystem",
|
|
"MainFrame",
|
|
"BlueprintGraph",
|
|
"VisualStudioDTE",
|
|
"EditorStyle",
|
|
"Projects"
|
|
}
|
|
);
|
|
}
|
|
}
|