aztecs-0.14.0: A modular game engine and Entity-Component-System (ECS) for Haskell.
Safe HaskellNone
LanguageHaskell2010

Aztecs.ECS

Synopsis

Documentation

class Monad m => PrimMonad (m :: Type -> Type) where #

Class of monads which can perform primitive state-transformer actions.

Associated Types

type PrimState (m :: Type -> Type) #

State token type.

Methods

primitive :: (State# (PrimState m) -> (# State# (PrimState m), a #)) -> m a #

Execute a primitive operation.

Instances

Instances details
PrimMonad IO 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState IO 
Instance details

Defined in Control.Monad.Primitive

Methods

primitive :: (State# (PrimState IO) -> (# State# (PrimState IO), a #)) -> IO a #

PrimMonad (ST s) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (ST s) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ST s) = s

Methods

primitive :: (State# (PrimState (ST s)) -> (# State# (PrimState (ST s)), a #)) -> ST s a #

PrimMonad (ST s) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (ST s) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ST s) = s

Methods

primitive :: (State# (PrimState (ST s)) -> (# State# (PrimState (ST s)), a #)) -> ST s a #

PrimMonad m => PrimMonad (MaybeT m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (MaybeT m) 
Instance details

Defined in Control.Monad.Primitive

Methods

primitive :: (State# (PrimState (MaybeT m)) -> (# State# (PrimState (MaybeT m)), a #)) -> MaybeT m a #

(MonadTrans t, Monad (t m), PrimMonad m) => PrimMonad (Commands t m) Source # 
Instance details

Defined in Aztecs.ECS.Commands

Associated Types

type PrimState (Commands t m) 
Instance details

Defined in Aztecs.ECS.Commands

Methods

primitive :: (State# (PrimState (Commands t m)) -> (# State# (PrimState (Commands t m)), a #)) -> Commands t m a #

PrimMonad m => PrimMonad (AztecsT cs m) Source # 
Instance details

Defined in Aztecs.Internal

Associated Types

type PrimState (AztecsT cs m) 
Instance details

Defined in Aztecs.Internal

type PrimState (AztecsT cs m) = PrimState (StateT (World m cs) m)

Methods

primitive :: (State# (PrimState (AztecsT cs m)) -> (# State# (PrimState (AztecsT cs m)), a #)) -> AztecsT cs m a #

(Monoid w, PrimMonad m) => PrimMonad (AccumT w m)

Since: primitive-0.6.3.0

Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (AccumT w m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (AccumT w m) = PrimState m

Methods

primitive :: (State# (PrimState (AccumT w m)) -> (# State# (PrimState (AccumT w m)), a #)) -> AccumT w m a #

PrimMonad m => PrimMonad (ExceptT e m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (ExceptT e m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ExceptT e m) = PrimState m

Methods

primitive :: (State# (PrimState (ExceptT e m)) -> (# State# (PrimState (ExceptT e m)), a #)) -> ExceptT e m a #

PrimMonad m => PrimMonad (IdentityT m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (IdentityT m) 
Instance details

Defined in Control.Monad.Primitive

Methods

primitive :: (State# (PrimState (IdentityT m)) -> (# State# (PrimState (IdentityT m)), a #)) -> IdentityT m a #

PrimMonad m => PrimMonad (ReaderT r m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (ReaderT r m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ReaderT r m) = PrimState m

Methods

primitive :: (State# (PrimState (ReaderT r m)) -> (# State# (PrimState (ReaderT r m)), a #)) -> ReaderT r m a #

PrimMonad m => PrimMonad (SelectT r m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (SelectT r m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (SelectT r m) = PrimState m

Methods

primitive :: (State# (PrimState (SelectT r m)) -> (# State# (PrimState (SelectT r m)), a #)) -> SelectT r m a #

PrimMonad m => PrimMonad (StateT s m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (StateT s m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (StateT s m) = PrimState m

Methods

primitive :: (State# (PrimState (StateT s m)) -> (# State# (PrimState (StateT s m)), a #)) -> StateT s m a #

PrimMonad m => PrimMonad (StateT s m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (StateT s m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (StateT s m) = PrimState m

Methods

primitive :: (State# (PrimState (StateT s m)) -> (# State# (PrimState (StateT s m)), a #)) -> StateT s m a #

(Monoid w, PrimMonad m) => PrimMonad (WriterT w m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (WriterT w m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (WriterT w m) = PrimState m

Methods

primitive :: (State# (PrimState (WriterT w m)) -> (# State# (PrimState (WriterT w m)), a #)) -> WriterT w m a #

(Monoid w, PrimMonad m) => PrimMonad (WriterT w m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (WriterT w m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (WriterT w m) = PrimState m

Methods

primitive :: (State# (PrimState (WriterT w m)) -> (# State# (PrimState (WriterT w m)), a #)) -> WriterT w m a #

(Monoid w, PrimMonad m) => PrimMonad (WriterT w m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (WriterT w m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (WriterT w m) = PrimState m

Methods

primitive :: (State# (PrimState (WriterT w m)) -> (# State# (PrimState (WriterT w m)), a #)) -> WriterT w m a #

PrimMonad m => PrimMonad (ContT r m)

Since: primitive-0.6.3.0

Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (ContT r m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ContT r m) = PrimState m

Methods

primitive :: (State# (PrimState (ContT r m)) -> (# State# (PrimState (ContT r m)), a #)) -> ContT r m a #

(Monoid w, PrimMonad m) => PrimMonad (RWST r w s m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (RWST r w s m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (RWST r w s m) = PrimState m

Methods

primitive :: (State# (PrimState (RWST r w s m)) -> (# State# (PrimState (RWST r w s m)), a #)) -> RWST r w s m a #

(Monoid w, PrimMonad m) => PrimMonad (RWST r w s m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (RWST r w s m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (RWST r w s m) = PrimState m

Methods

primitive :: (State# (PrimState (RWST r w s m)) -> (# State# (PrimState (RWST r w s m)), a #)) -> RWST r w s m a #

(Monoid w, PrimMonad m) => PrimMonad (RWST r w s m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (RWST r w s m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (RWST r w s m) = PrimState m

Methods

primitive :: (State# (PrimState (RWST r w s m)) -> (# State# (PrimState (RWST r w s m)), a #)) -> RWST r w s m a #

newtype Query a Source #

Constructors

Query 

Fields

Instances

Instances details
Foldable Query Source # 
Instance details

Defined in Aztecs.ECS.Query

Methods

fold :: Monoid m => Query m -> m #

foldMap :: Monoid m => (a -> m) -> Query a -> m #

foldMap' :: Monoid m => (a -> m) -> Query a -> m #

foldr :: (a -> b -> b) -> b -> Query a -> b #

foldr' :: (a -> b -> b) -> b -> Query a -> b #

foldl :: (b -> a -> b) -> b -> Query a -> b #

foldl' :: (b -> a -> b) -> b -> Query a -> b #

foldr1 :: (a -> a -> a) -> Query a -> a #

foldl1 :: (a -> a -> a) -> Query a -> a #

toList :: Query a -> [a] #

null :: Query a -> Bool #

length :: Query a -> Int #

elem :: Eq a => a -> Query a -> Bool #

maximum :: Ord a => Query a -> a #

minimum :: Ord a => Query a -> a #

sum :: Num a => Query a -> a #

product :: Num a => Query a -> a #

Applicative Query Source # 
Instance details

Defined in Aztecs.ECS.Query

Methods

pure :: a -> Query a #

(<*>) :: Query (a -> b) -> Query a -> Query b #

liftA2 :: (a -> b -> c) -> Query a -> Query b -> Query c #

(*>) :: Query a -> Query b -> Query b #

(<*) :: Query a -> Query b -> Query a #

Functor Query Source # 
Instance details

Defined in Aztecs.ECS.Query

Methods

fmap :: (a -> b) -> Query a -> Query b #

(<$) :: a -> Query b -> Query a #

(ECS m, Applicative m, Queryable m a) => Access m (Query a) Source # 
Instance details

Defined in Aztecs.ECS.Access.Internal

Associated Types

type AccessType (Query a) 
Instance details

Defined in Aztecs.ECS.Access.Internal

Methods

access :: m (Query a) Source #

type AccessType (Query a) Source # 
Instance details

Defined in Aztecs.ECS.Access.Internal

runQuery :: Query a -> [a] Source #

class System (m :: Type -> Type) sys where Source #

Associated Types

type SystemIn (m :: Type -> Type) sys Source #

Methods

runSystem :: sys -> SystemIn m sys -> m () Source #

Instances

Instances details
System m sys => System m (Run constraints sys) Source # 
Instance details

Defined in Aztecs.ECS.Schedule.Internal

Associated Types

type SystemIn m (Run constraints sys) 
Instance details

Defined in Aztecs.ECS.Schedule.Internal

type SystemIn m (Run constraints sys) = SystemIn m sys

Methods

runSystem :: Run constraints sys -> SystemIn m (Run constraints sys) -> m () Source #

system :: (ECS m, Monad m, System (Task m) sys, Access m (SystemIn (Task m) sys)) => sys -> m () Source #