mudb
Version:
Real-time database for multiplayer games
38 lines (37 loc) • 1.58 kB
TypeScript
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;
}