Table of Contents

Class WorldSceneSystemRuntimeData

Namespace
FishMMO.Server.Implementation.World.WorldServer
Assembly
FishMMO.Server.dll

Runtime data container for WorldSceneSystem state. Stores mutable state separate from the system logic.

public class WorldSceneSystemRuntimeData : RuntimeDataContainer, IRuntimeDataContainer<INetworkManagerWrapper, ServerManager, NetworkConnection, IRuntimeDataContainer>, IServerComponent<INetworkManagerWrapper, ServerManager, NetworkConnection, IRuntimeDataContainer>, IWorldSceneSystemRuntimeData, IRuntimeDataContainer, IServerComponent
Inheritance
WorldSceneSystemRuntimeData
Implements
Inherited Members

Properties

AvailableSceneCache

Cache of FetchAvailableAsync results keyed by scene name. Entries expire after a configurable TTL to reduce database polling.

public TimedCache<string, IReadOnlyList<SceneData>> AvailableSceneCache { get; set; }

Property Value

TimedCache<string, IReadOnlyList<SceneData>>

CachedSceneCharacterCount

Cached total character count across all scenes for this world server. Used by UpdateConnectionCountAsync to avoid re-fetching all scene rows every cycle.

public int CachedSceneCharacterCount { get; set; }

Property Value

int

CachedSceneCharacterCountUtc

UTC timestamp of the last CachedSceneCharacterCount update.

public DateTime CachedSceneCharacterCountUtc { get; set; }

Property Value

DateTime

InstanceLookupDebounce

Per-account debounce tracker for world-scene instance lookups.

public ExpiringKeyTracker<string> InstanceLookupDebounce { get; set; }

Property Value

ExpiringKeyTracker<string>

LoginAuthenticator

Reference to the world server authenticator for login/authentication events.

public WorldServerAuthenticator LoginAuthenticator { get; set; }

Property Value

WorldServerAuthenticator

NextDebounceCleanup

Time remaining until the next debounce entry cleanup sweep.

public float NextDebounceCleanup { get; set; }

Property Value

float

NextQueuePositionUpdate

Time remaining until the next scene-routing queue position broadcast.

public float NextQueuePositionUpdate { get; set; }

Property Value

float

NextWaitQueueUpdate

Time remaining until the next wait queue update.

public float NextWaitQueueUpdate { get; set; }

Property Value

float

NextWaitingQueueSweep

Time remaining until the next waiting queue sweep.

public float NextWaitingQueueSweep { get; set; }

Property Value

float

SceneServerAddressCache

Cache of scene server addresses keyed by scene server ID. Addresses change infrequently, so a longer TTL is appropriate.

public TimedCache<long, ushort> SceneServerAddressCache { get; set; }

Property Value

TimedCache<long, ushort>

WaitQueueRateSeconds

Rate in seconds at which the wait queue is processed.

public float WaitQueueRateSeconds { get; set; }

Property Value

float

WaitingQueueEnteredUtcByClientId

Tracks when each client entered a world-scene waiting queue.

public Dictionary<int, DateTime> WaitingQueueEnteredUtcByClientId { get; set; }

Property Value

Dictionary<int, DateTime>

Methods

Clear()

Clears the runtime data. Called when resetting state between sessions.

public override void Clear()

EndProcessing()

Atomically ends queue processing.

public void EndProcessing()

InitializeOnce()

Initializes the runtime data once. Called when the data container is first set up.

public override ServerComponentInitializationStatus InitializeOnce()

Returns

ServerComponentInitializationStatus

OnDeinitialize()

Deinitializes the runtime data. Called when shutting down the server.

protected override void OnDeinitialize()

TryBeginProcessing()

Atomically attempts to begin queue processing.

public bool TryBeginProcessing()

Returns

bool

true if processing was started; otherwise false.