spice-0.4.0.0: src/FRP/Spice/Engine/Driver.hs
{-|
This module need not be used directly. Refer to @'FRP.Spice.Engine'@ instead.
-}
module FRP.Spice.Engine.Driver where
--------------------
-- Global Imports --
import FRP.Spice.Engine.RenderWrapper
import FRP.Spice.Assets
import FRP.Spice.Game
----------
-- Code --
{-|
Driving a network created with the @'FRP.Spice.Engine.Network.makeNetwork'@
function and a function such as @'FRP.Spice.Engine.RunInput.runInput'@.
-}
driveNetwork :: Game a => Assets -> (Float -> IO a) -> IO (Maybe Float) -> IO ()
driveNetwork assets network iomdriver = do
mdriver <- iomdriver
case mdriver of
Just driver -> do state <- network driver
renderWrapper $ render assets state
driveNetwork assets network iomdriver
Nothing -> return ()