aztecs-0.8.0: A modular game engine and Entity-Component-System (ECS) for Haskell.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Aztecs.ECS.System

Synopsis

Documentation

newtype SystemT m i o Source #

System to process entities.

Constructors

System 

Fields

Instances

Instances details
Monad m => ArrowSystem Query (SystemT m) Source # 
Instance details

Defined in Aztecs.ECS.System

Methods

map :: Query i a -> SystemT m i [a] Source #

map_ :: Query i o -> SystemT m i () Source #

filterMap :: Query i a -> QueryFilter -> SystemT m i [a] Source #

mapSingle :: Query i a -> SystemT m i a Source #

mapSingleMaybe :: Query i a -> SystemT m i (Maybe a) Source #

Monad m => ArrowReaderSystem QueryReader (SystemT m) Source # 
Instance details

Defined in Aztecs.ECS.System

Methods

all :: QueryReader i a -> SystemT m i [a] Source #

filter :: QueryReader () a -> QueryFilter -> SystemT m () [a] Source #

single :: QueryReader i a -> SystemT m i a Source #

Monad m => Category (SystemT m :: Type -> Type -> Type) Source # 
Instance details

Defined in Aztecs.ECS.System

Methods

id :: forall (a :: k). SystemT m a a #

(.) :: forall (b :: k) (c :: k) (a :: k). SystemT m b c -> SystemT m a b -> SystemT m a c #

Monad m => ArrowQueueSystem Bundle (AccessT m) (SystemT m) Source # 
Instance details

Defined in Aztecs.ECS.System

Methods

queue :: (i -> AccessT m ()) -> SystemT m i () Source #

Monad m => Arrow (SystemT m) Source # 
Instance details

Defined in Aztecs.ECS.System

Methods

arr :: (b -> c) -> SystemT m b c #

first :: SystemT m b c -> SystemT m (b, d) (c, d) #

second :: SystemT m b c -> SystemT m (d, b) (d, c) #

(***) :: SystemT m b c -> SystemT m b' c' -> SystemT m (b, b') (c, c') #

(&&&) :: SystemT m b c -> SystemT m b c' -> SystemT m b (c, c') #

Monad m => ArrowChoice (SystemT m) Source # 
Instance details

Defined in Aztecs.ECS.System

Methods

left :: SystemT m b c -> SystemT m (Either b d) (Either c d) #

right :: SystemT m b c -> SystemT m (Either d b) (Either d c) #

(+++) :: SystemT m b c -> SystemT m b' c' -> SystemT m (Either b b') (Either c c') #

(|||) :: SystemT m b d -> SystemT m c d -> SystemT m (Either b c) d #

Monad m => ArrowLoop (SystemT m) Source # 
Instance details

Defined in Aztecs.ECS.System

Methods

loop :: SystemT m (b, d) (c, d) -> SystemT m b c #

Monad m => ArrowSchedule (SystemT m) (Schedule m) Source # 
Instance details

Defined in Aztecs.ECS.Schedule

Methods

system :: SystemT m i o -> Schedule m i o Source #

Functor (SystemT m i) Source # 
Instance details

Defined in Aztecs.ECS.System

Methods

fmap :: (a -> b) -> SystemT m i a -> SystemT m i b #

(<$) :: a -> SystemT m i b -> SystemT m i a #

class Arrow arr => ArrowReaderSystem q arr | arr -> q where Source #

Minimal complete definition

all, filter

Methods

all :: q i a -> arr i [a] Source #

Query all matching entities.

filter :: q () a -> QueryFilter -> arr () [a] Source #

Query all matching entities with a QueryFilter.

single :: q i a -> arr i a Source #

Query a single matching entity. If there are zero or multiple matching entities, an error will be thrown.

Instances

Instances details
Monad m => ArrowReaderSystem QueryReader (SystemT m) Source # 
Instance details

Defined in Aztecs.ECS.System

Methods

all :: QueryReader i a -> SystemT m i [a] Source #

filter :: QueryReader () a -> QueryFilter -> SystemT m () [a] Source #

single :: QueryReader i a -> SystemT m i a Source #

Monad m => ArrowReaderSystem QueryReader (ReaderSystemT m) Source # 
Instance details

Defined in Aztecs.ECS.System.Reader

class Arrow arr => ArrowSystem q arr | arr -> q where Source #

Minimal complete definition

map, filterMap, mapSingle, mapSingleMaybe

Methods

map :: q i a -> arr i [a] Source #

Query and update all matching entities.

map_ :: q i o -> arr i () Source #

Query and update all matching entities, ignoring the results.

filterMap :: q i a -> QueryFilter -> arr i [a] Source #

Map all matching entities with a QueryFilter, storing the updated entities.

mapSingle :: q i a -> arr i a Source #

Map a single matching entity, storing the updated components. If there are zero or multiple matching entities, an error will be thrown.

mapSingleMaybe :: q i a -> arr i (Maybe a) Source #

Instances

Instances details
Monad m => ArrowSystem Query (SystemT m) Source # 
Instance details

Defined in Aztecs.ECS.System

Methods

map :: Query i a -> SystemT m i [a] Source #

map_ :: Query i o -> SystemT m i () Source #

filterMap :: Query i a -> QueryFilter -> SystemT m i [a] Source #

mapSingle :: Query i a -> SystemT m i a Source #

mapSingleMaybe :: Query i a -> SystemT m i (Maybe a) Source #

class (MonadAccess b m, Arrow arr) => ArrowQueueSystem b m arr | arr -> m where Source #

Methods

queue :: (i -> m ()) -> arr i () Source #

Queue an Access to happen after this system schedule.

Instances

Instances details
ArrowQueueSystem Bundle Access QueueSystem Source # 
Instance details

Defined in Aztecs.ECS.System.Queue

Methods

queue :: (i -> Access ()) -> QueueSystem i () Source #

Monad m => ArrowQueueSystem Bundle (AccessT m) (SystemT m) Source # 
Instance details

Defined in Aztecs.ECS.System

Methods

queue :: (i -> AccessT m ()) -> SystemT m i () Source #

Monad m => ArrowQueueSystem Bundle (AccessT m) (DynamicSystemT m) Source # 
Instance details

Defined in Aztecs.ECS.System.Dynamic

Methods

queue :: (i -> AccessT m ()) -> DynamicSystemT m i () Source #

Monad m => ArrowQueueSystem Bundle (AccessT m) (DynamicReaderSystemT m) Source # 
Instance details

Defined in Aztecs.ECS.System.Dynamic.Reader

Methods

queue :: (i -> AccessT m ()) -> DynamicReaderSystemT m i () Source #

Monad m => ArrowQueueSystem Bundle (AccessT m) (ReaderSystemT m) Source # 
Instance details

Defined in Aztecs.ECS.System.Reader

Methods

queue :: (i -> AccessT m ()) -> ReaderSystemT m i () Source #

fromReader :: Monad m => ReaderSystemT m i o -> SystemT m i o Source #