Asset and File-Transfer Lifecycle
Intended scope
Section titled “Intended scope”- End-to-end lifecycle diagram (Mermaid):
- Server scans
AssetDirectory→ builds manifest (hash, size, kind). - Client connects → server sends
FileManifestMessage. - Client
FileCachediffs manifest vs local cache → requests missing chunks. - Server streams
FileChunkMessagepayloads. - Client assembles chunks → verifies hash → writes to disk.
- Server sends
FileTransferCompleteMessage. AnomalyResources.TryGetTexture/TryLoadFromBundle<T>materialize objects on first access.
- Server scans
- Server-side lifecycle hooks —
AssetEvents.Spawned,Despawned,Reloaded,OverrideApplied,OverrideCleared. - Client-side progress events —
FileTransferEvents.Progress,Complete. - Caching strategy — content-addressed; cache shared across servers; manual eviction guidance.
- Late-join flow — manifest re-issued; only missing chunks requested.
Sources
Section titled “Sources”Anomaly.Shared\Networking\Messages\FileManifestMessage.cs,FileChunkMessage.cs,FileTransferCompleteMessage.cs.Anomaly.Client.Api\FileTransfer\FileCache.cs.Anomaly.Client.Api\Assets\AnomalyResources.cs.Anomaly.Server\FileTransfer\ServerAssetManager.cs,FileTransferSession.cs.Anomaly.Server\Assets\AssetOverrides.cs,AssetFileWatcher.cs,AssetRegistry.cs,AssetSpawner.cs.