Safe Haskell | None |
---|
Semantics of client commands. See https://github.com/kosmikus/LambdaHack/wiki/Client-server-architecture.
- cmdClientAISem :: (MonadAtomic m, MonadClientWriteServer CmdSerTakeTime m) => CmdClientAI -> m ()
- cmdClientUISem :: (MonadAtomic m, MonadClientAbort m, MonadClientUI m, MonadClientWriteServer CmdSer m) => CmdClientUI -> m ()
- loopAI :: MonadClientReadServer CmdClientAI m => DebugModeCli -> (CmdClientAI -> m ()) -> m ()
- loopUI :: (MonadClientUI m, MonadClientReadServer CmdClientUI m) => DebugModeCli -> (CmdClientUI -> m ()) -> m ()
- exeFrontend :: (MonadAtomic m, MonadClientAbort m, MonadClientUI m, MonadClientReadServer CmdClientUI m, MonadClientWriteServer CmdSer m, MonadAtomic n, MonadClientReadServer CmdClientAI n, MonadClientWriteServer CmdSerTakeTime n) => (m () -> SessionUI -> State -> StateClient -> ChanServer CmdClientUI CmdSer -> IO ()) -> (n () -> SessionUI -> State -> StateClient -> ChanServer CmdClientAI CmdSerTakeTime -> IO ()) -> COps -> DebugModeCli -> ((FactionId -> ChanFrontend -> ChanServer CmdClientUI CmdSer -> IO ()) -> (FactionId -> ChanServer CmdClientAI CmdSerTakeTime -> 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 CmdSerTakeTime m) => CmdClientAI -> m ()
cmdClientUISem :: (MonadAtomic m, MonadClientAbort m, MonadClientUI m, MonadClientWriteServer CmdSer m) => CmdClientUI -> m ()
loopAI :: MonadClientReadServer CmdClientAI m => DebugModeCli -> (CmdClientAI -> m ()) -> m ()
loopUI :: (MonadClientUI m, MonadClientReadServer CmdClientUI m) => DebugModeCli -> (CmdClientUI -> m ()) -> m ()
exeFrontend :: (MonadAtomic m, MonadClientAbort m, MonadClientUI m, MonadClientReadServer CmdClientUI m, MonadClientWriteServer CmdSer m, MonadAtomic n, MonadClientReadServer CmdClientAI n, MonadClientWriteServer CmdSerTakeTime n) => (m () -> SessionUI -> State -> StateClient -> ChanServer CmdClientUI CmdSer -> IO ()) -> (n () -> SessionUI -> State -> StateClient -> ChanServer CmdClientAI CmdSerTakeTime -> IO ()) -> COps -> DebugModeCli -> ((FactionId -> ChanFrontend -> ChanServer CmdClientUI CmdSer -> IO ()) -> (FactionId -> ChanServer CmdClientAI CmdSerTakeTime -> IO ()) -> IO ()) -> IO ()
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
(Monoid a, MonadClient m) => MonadClient (WriterT a m) | |
MonadClient (ActionCli c d) |
class MonadClient m => MonadClientUI m
(Monoid a, MonadClientUI m) => MonadClientUI (WriterT a m) | |
MonadClientUI (ActionCli c d) |
class MonadClient m => MonadClientReadServer c m | m -> c
MonadClientReadServer c (ActionCli c d) |
class MonadClient m => MonadClientWriteServer d m | m -> d
MonadClientWriteServer d (ActionCli c d) |