UNPKG

mudb

Version:

Real-time database for multiplayer games

38 lines (37 loc) 1.58 kB
import { MuServer, MuRemoteClient } from '../server'; import { MuStateSchema, MuAnySchema, MuStateSet, MuDefaultStateSchema, MuStateReplica } from './state'; export declare class MuRemoteClientState<Schema extends MuAnySchema> implements MuStateReplica<Schema> { sessionId: string; tick: number; state: Schema['identity']; history: MuStateSet<Schema['identity']>; windowSize: number; private _client; constructor(client: MuRemoteClient<typeof MuDefaultStateSchema['client']>, schema: Schema, windowSize: number); close(): void; } export declare class MuServerState<Schema extends MuStateSchema<MuAnySchema, MuAnySchema>> implements MuStateReplica<Schema['server']> { readonly clients: MuRemoteClientState<Schema['client']>[]; readonly schema: Schema; server: MuServer; tick: number; state: Schema['server']['identity']; history: MuStateSet<Schema['server']['identity']>; windowSize: number; maxHistorySize: number; private _protocol; private _observedStates; constructor(spec: { server: MuServer; schema: Schema; windowSize?: number; maxHistorySize?: number; }); configure(spec?: { ready?: () => void; connect?: (client: MuRemoteClientState<Schema['client']>) => void; disconnect?: (client: MuRemoteClientState<Schema['client']>) => void; state?: (client: MuRemoteClientState<Schema['client']>, state: Schema['client']['identity'], tick: number, reliable: boolean) => void; }): void; commit(reliable?: boolean): void; }