Table of Contents

Class SceneServerRuntimeData

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

Runtime data container for scene server identification and state. Manages scene server operational state separately from SceneServerSystem logic.

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

Properties

ExpiredSceneIdsBuffer

Reusable buffer for expired pending scene IDs during cleanup sweeps. Only used from the main thread.

public List<long> ExpiredSceneIdsBuffer { get; }

Property Value

List<long>

ID

Database ID for this scene server instance.

public long ID { get; set; }

Property Value

long

IsLocked

Indicates whether the scene server is locked (not accepting new connections).

public bool IsLocked { get; set; }

Property Value

bool

NextPendingSceneSweepUtc

Next UTC timestamp when pending-scene cleanup is allowed.

public DateTime NextPendingSceneSweepUtc { get; set; }

Property Value

DateTime

SceneDetailsValuesBuffer

Reusable buffer for iterating scene instance details. Only used from the main thread.

public List<ISceneInstanceDetails> SceneDetailsValuesBuffer { get; }

Property Value

List<ISceneInstanceDetails>

SceneGroupValuesBuffer

Reusable buffer for iterating scene group value collections. Only used from the main thread.

public List<Dictionary<long, ISceneInstanceDetails>> SceneGroupValuesBuffer { get; }

Property Value

List<Dictionary<long, ISceneInstanceDetails>>

ScenePulseDataBuffer

Reusable buffer for scene pulse payload data (Handle, CharacterCount). Only used from the main thread. Snapshotted before passing to async.

public List<(long SceneID, int CharacterCount)> ScenePulseDataBuffer { get; }

Property Value

List<(long SceneID, int CharacterCount)>

ScenesToUnloadBuffer

Reusable buffer for scene handles queued for unloading. Only used from the main thread.

public List<long> ScenesToUnloadBuffer { get; }

Property Value

List<long>

UnloadedHandlesBuffer

Reusable buffer for scene handles during unload iteration. Only used from the main thread.

public List<int> UnloadedHandlesBuffer { get; }

Property Value

List<int>

Methods

Clear()

Clears all scene server runtime data.

public override void Clear()

EndPulse()

Atomically transitions the pulse gate from in-flight back to idle.

public void EndPulse()

InitializeOnce()

Initializes the scene server runtime data container.

public override ServerComponentInitializationStatus InitializeOnce()

Returns

ServerComponentInitializationStatus

OnDeinitialize()

Deinitializes the scene server runtime data container.

protected override void OnDeinitialize()

TryBeginPulse()

Atomically transitions the pulse gate from idle to in-flight. Returns true if this call won the race; false if a pulse is already in flight.

public bool TryBeginPulse()

Returns

bool