aztecs-0.1.0.1: A type-safe and friendly ECS for Haskell
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Aztecs.System

Synopsis

Documentation

data Access (m :: Type -> Type) a where Source #

Constructors

PureA :: a -> Access m a 
MapA :: (a -> b) -> Access m a -> Access m b 
AppA :: Access m (a -> b) -> Access m a -> Access m b 
BindA :: Access m a -> (a -> Access m b) -> Access m b 
AllA :: Archetype -> Query m a -> Access m [a] 
GetA :: Archetype -> Query m a -> Entity -> Access m (Maybe a) 
CommandA :: Command m () -> Access m () 
LiftA :: m a -> Access m a 

Instances

Instances details
MonadIO m => MonadIO (Access m) Source # 
Instance details

Defined in Data.Aztecs.System

Methods

liftIO :: IO a -> Access m a #

Monad m => Applicative (Access m) Source # 
Instance details

Defined in Data.Aztecs.System

Methods

pure :: a -> Access m a #

(<*>) :: Access m (a -> b) -> Access m a -> Access m b #

liftA2 :: (a -> b -> c) -> Access m a -> Access m b -> Access m c #

(*>) :: Access m a -> Access m b -> Access m b #

(<*) :: Access m a -> Access m b -> Access m a #

Functor (Access m) Source # 
Instance details

Defined in Data.Aztecs.System

Methods

fmap :: (a -> b) -> Access m a -> Access m b #

(<$) :: a -> Access m b -> Access m a #

Monad m => Monad (Access m) Source # 
Instance details

Defined in Data.Aztecs.System

Methods

(>>=) :: Access m a -> (a -> Access m b) -> Access m b #

(>>) :: Access m a -> Access m b -> Access m b #

return :: a -> Access m a #

all :: Monad m => Query m a -> Access m [a] Source #

Query all matches.

get :: Monad m => Entity -> Query m a -> Access m (Maybe a) Source #

command :: Command m () -> Access m () Source #

class Typeable a => System m a where Source #

Methods

access :: Access m () Source #

runSystem :: forall a. System IO a => World -> IO World Source #

runSystem' :: forall a. System IO a => Cache -> World -> IO (Maybe (Access IO ()), Cache, [Command IO ()], World) Source #

newtype Cache Source #

Constructors

Cache (Map Archetype ArchetypeId) 

Instances

Instances details
Monoid Cache Source # 
Instance details

Defined in Data.Aztecs.System

Methods

mempty :: Cache #

mappend :: Cache -> Cache -> Cache #

mconcat :: [Cache] -> Cache #

Semigroup Cache Source # 
Instance details

Defined in Data.Aztecs.System

Methods

(<>) :: Cache -> Cache -> Cache #

sconcat :: NonEmpty Cache -> Cache #

stimes :: Integral b => b -> Cache -> Cache #