Skip to content

Asset and File-Transfer Lifecycle

  • End-to-end lifecycle diagram (Mermaid):
    1. Server scans AssetDirectory → builds manifest (hash, size, kind).
    2. Client connects → server sends FileManifestMessage.
    3. Client FileCache diffs manifest vs local cache → requests missing chunks.
    4. Server streams FileChunkMessage payloads.
    5. Client assembles chunks → verifies hash → writes to disk.
    6. Server sends FileTransferCompleteMessage.
    7. AnomalyResources.TryGetTexture / TryLoadFromBundle<T> materialize objects on first access.
  • 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.
  • 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.