@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
48 lines • 1.47 kB
TypeScript
/**
* 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