feat: ZMMO client base (Game/Entity|Controller|Modes|Network)
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.
This commit is contained in:
43
Plugins/VisualStudioTools/Scripts/Package-Plugin.ps1
Normal file
43
Plugins/VisualStudioTools/Scripts/Package-Plugin.ps1
Normal file
@@ -0,0 +1,43 @@
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]
|
||||
$EnginePath,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]
|
||||
$EngineVersion
|
||||
)
|
||||
|
||||
function New-TemporaryDirectory {
|
||||
$parent = [System.IO.Path]::GetTempPath()
|
||||
$name = [System.IO.Path]::GetRandomFileName()
|
||||
New-Item -ItemType Directory -Path (Join-Path $parent $name)
|
||||
}
|
||||
|
||||
$PackagePath = New-TemporaryDirectory
|
||||
& msbuild "-p:UnrealEngine=$EnginePath;OutputPath=$PackagePath;Versioned=true"
|
||||
|
||||
# Add EnabledByDefault property in the descriptor file
|
||||
Write-Host "Patch plugin descriptor file"
|
||||
$descriptor = "$PackagePath/VisualStudioTools.uplugin"
|
||||
$a = Get-Content $descriptor | ConvertFrom-Json
|
||||
$a | Add-Member -NotePropertyName EnabledByDefault -NotePropertyValue $true -ErrorAction Ignore
|
||||
$a | ConvertTo-Json -depth 100 | Out-File $descriptor -Encoding utf8
|
||||
|
||||
Write-Host "Copy Config folder"
|
||||
Copy-Item -Path Config -Destination $PackagePath/Config -Recurse
|
||||
|
||||
$PublishPath = "publish"
|
||||
If(!(test-path -PathType Container $PublishPath))
|
||||
{
|
||||
New-Item -ItemType Directory -Path $PublishPath | Out-Null
|
||||
}
|
||||
|
||||
Write-Host "Create ZIP package"
|
||||
$tag = $EngineVersion.Replace(".", "")
|
||||
$files = Get-ChildItem $PackagePath -Exclude @("Binaries", "Intermediate")
|
||||
$zip = "$PublishPath/VisualStudioTools_v$($a.VersionName)_ue$tag.zip"
|
||||
Compress-Archive -Path $files -DestinationPath "$PublishPath/VisualStudioTools_v$($a.VersionName)_ue$tag.zip" -CompressionLevel Fastest
|
||||
|
||||
Remove-Item $PackagePath -Force -Recurse
|
||||
|
||||
Write-Host "Done: $($zip | Resolve-Path)"
|
||||
Reference in New Issue
Block a user