ascii-agents-core 0.3.0

Headless engine for ascii-agents — state, sprites, layout
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
use std::time::{Duration, SystemTime};

pub fn frame_index_at(start: SystemTime, now: SystemTime, frame_ms: u32, n_frames: usize) -> usize {
    if n_frames <= 1 {
        return 0;
    }
    let elapsed = now
        .duration_since(start)
        .unwrap_or(Duration::ZERO)
        .as_millis();
    let frame_ms = frame_ms.max(1) as u128;
    (elapsed / frame_ms) as usize % n_frames
}