UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

48 lines 1.47 kB
/** * Per-peer "last acknowledged frame" tracker. * * The replicator sends actions for frames `[Baseline.last_acked(peer) + 1, current]` * to each peer. When the peer's ack arrives (via the {@link Channel}), it * advances the baseline. * * Frame numbers are absolute uint32. At 60 Hz, 2^32 frames = 2.27 years — * we can ignore wraparound for practical sessions and use plain `>` comparison. * * @author Alex Goldring * @copyright Company Named Limited (c) 2025 */ export class Baseline { /** * Record that `peer_id` has acknowledged through `frame`. Monotonic: out-of-order * acks (for an older frame than already recorded) are ignored. * * @param {number} peer_id * @param {number} frame */ set_acked(peer_id: number, frame: number): void; /** * Returns the most recent acknowledged frame for `peer_id`, or -1 if none. * * @param {number} peer_id * @returns {number} */ last_acked(peer_id: number): number; /** * Forget tracking for `peer_id` (e.g. on disconnect). * * @param {number} peer_id */ forget(peer_id: number): void; /** * Number of tracked peers. * @returns {number} */ peer_count(): number; /** * Iterate (peer_id, last_acked_frame) pairs. * @param {function(number, number): void} fn */ for_each(fn: (arg0: number, arg1: number) => void): void; #private; } //# sourceMappingURL=Baseline.d.ts.map