Safe Haskell | None |
---|
Semantics of client commands. See https://github.com/kosmikus/LambdaHack/wiki/Client-server-architecture.
- cmdClientAISem :: (MonadAtomic m, MonadClientWriteServer CmdTakeTimeSer m) => CmdClientAI -> m ()
- cmdClientUISem :: (MonadAtomic m, MonadClientUI m, MonadClientWriteServer CmdSer m) => CmdClientUI -> m ()
- exeFrontend :: (MonadAtomic m, MonadClientUI m, MonadClientReadServer CmdClientUI m, MonadClientWriteServer CmdSer m, MonadAtomic n, MonadClientReadServer CmdClientAI n, MonadClientWriteServer CmdTakeTimeSer n) => (m () -> SessionUI -> State -> StateClient -> ChanServer CmdClientUI CmdSer -> IO ()) -> (n () -> SessionUI -> State -> StateClient -> ChanServer CmdClientAI CmdTakeTimeSer -> IO ()) -> COps -> DebugModeCli -> ((FactionId -> ChanFrontend -> ChanServer CmdClientUI CmdSer -> IO ()) -> (FactionId -> ChanServer CmdClientAI CmdTakeTimeSer -> IO ()) -> IO ()) -> IO ()
- class MonadActionRO m => MonadClient m
- class MonadClient m => MonadClientUI m
- class MonadClient m => MonadClientReadServer c m | m -> c
- class MonadClient m => MonadClientWriteServer d m | m -> d
Documentation
cmdClientAISem :: (MonadAtomic m, MonadClientWriteServer CmdTakeTimeSer m) => CmdClientAI -> m ()Source
cmdClientUISem :: (MonadAtomic m, MonadClientUI m, MonadClientWriteServer CmdSer m) => CmdClientUI -> m ()Source
exeFrontend :: (MonadAtomic m, MonadClientUI m, MonadClientReadServer CmdClientUI m, MonadClientWriteServer CmdSer m, MonadAtomic n, MonadClientReadServer CmdClientAI n, MonadClientWriteServer CmdTakeTimeSer n) => (m () -> SessionUI -> State -> StateClient -> ChanServer CmdClientUI CmdSer -> IO ()) -> (n () -> SessionUI -> State -> StateClient -> ChanServer CmdClientAI CmdTakeTimeSer -> IO ()) -> COps -> DebugModeCli -> ((FactionId -> ChanFrontend -> ChanServer CmdClientUI CmdSer -> IO ()) -> (FactionId -> ChanServer CmdClientAI CmdTakeTimeSer -> IO ()) -> IO ()) -> IO ()Source
Wire together game content, the main loop of game clients, the main game loop assigned to this frontend (possibly containing the server loop, if the whole game runs in one process), UI config and the definitions of game commands.
class MonadActionRO m => MonadClient m Source
MonadClient (ActionCli c d) |
class MonadClient m => MonadClientUI m Source
MonadClientUI (ActionCli c d) |
class MonadClient m => MonadClientReadServer c m | m -> cSource
MonadClientReadServer c (ActionCli c d) |
class MonadClient m => MonadClientWriteServer d m | m -> dSource
MonadClientWriteServer d (ActionCli c d) |