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