14 lines
306 B
Haskell
14 lines
306 B
Haskell
module Dodge.Clock
|
|
( clockCycle
|
|
) where
|
|
import Dodge.Data
|
|
|
|
import qualified Data.Vector as V
|
|
clockCycle :: Int -> V.Vector a -> World -> a
|
|
{-# INLINABLE clockCycle #-}
|
|
clockCycle tPeriod xs w = xs V.! i
|
|
where
|
|
l = V.length xs
|
|
t = _worldClock w `mod` (l * tPeriod)
|
|
i = t `div` tPeriod
|