gameServer/ServerState.hs
author smxx
Fri, 28 May 2010 16:21:54 +0000
changeset 3483 54ff8cbabaa6
parent 3458 11cd56019f00
child 3501 a3159a410e5c
permissions -rw-r--r--
Engine: * New weapon attributes: ejectX/ejectY: Offset to the hedgehog (center of hand graphic) where the projectile(s) will be spawned * Changed Laser Sight to origin from the weapon instead of the hedgehog (needs some adjustments while walking/jumping) * Changed most weapons to no longer shoot from the hedgehog's center and use the weapon's visible position instead (might require some testing and adjustments) * Silenced the small Piano explosions

module ServerState
    (
    module RoomsAndClients,
    clientRoomA,
    ServerState(..),
    clients
    ) where

import Control.Monad.State
----------------------
import RoomsAndClients
import CoreTypes

data ServerState = ServerState {
        clientIndex :: Maybe ClientIndex,
        serverInfo :: ServerInfo,
        roomsClients :: MRnC
    }


clientRoomA :: StateT ServerState IO RoomIndex
clientRoomA = do
    (Just ci) <- gets clientIndex
    rnc <- gets roomsClients
    liftIO $ clientRoomM rnc ci

clients :: (ClientInfo -> a) -> StateT ServerState IO a
clients f = do
    (Just ci) <- gets clientIndex
    rnc <- gets roomsClients
    liftIO $ clientsM rnc f ci