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

Aztecs.ECS.Query.Reader

Synopsis

Queries

newtype QueryReader i o Source #

Query to read from entities.

Instances

Instances details
ArrowDynamicQueryReader QueryReader Source # 
Instance details

Defined in Aztecs.ECS.Query.Reader

ArrowQueryReader QueryReader Source # 
Instance details

Defined in Aztecs.ECS.Query.Reader

Arrow QueryReader Source # 
Instance details

Defined in Aztecs.ECS.Query.Reader

Methods

arr :: (b -> c) -> QueryReader b c #

first :: QueryReader b c -> QueryReader (b, d) (c, d) #

second :: QueryReader b c -> QueryReader (d, b) (d, c) #

(***) :: QueryReader b c -> QueryReader b' c' -> QueryReader (b, b') (c, c') #

(&&&) :: QueryReader b c -> QueryReader b c' -> QueryReader b (c, c') #

ArrowChoice QueryReader Source # 
Instance details

Defined in Aztecs.ECS.Query.Reader

Methods

left :: QueryReader b c -> QueryReader (Either b d) (Either c d) #

right :: QueryReader b c -> QueryReader (Either d b) (Either d c) #

(+++) :: QueryReader b c -> QueryReader b' c' -> QueryReader (Either b b') (Either c c') #

(|||) :: QueryReader b d -> QueryReader c d -> QueryReader (Either b c) d #

Category QueryReader Source # 
Instance details

Defined in Aztecs.ECS.Query.Reader

Methods

id :: forall (a :: k). QueryReader a a #

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

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

Applicative (QueryReader i) Source # 
Instance details

Defined in Aztecs.ECS.Query.Reader

Methods

pure :: a -> QueryReader i a #

(<*>) :: QueryReader i (a -> b) -> QueryReader i a -> QueryReader i b #

liftA2 :: (a -> b -> c) -> QueryReader i a -> QueryReader i b -> QueryReader i c #

(*>) :: QueryReader i a -> QueryReader i b -> QueryReader i b #

(<*) :: QueryReader i a -> QueryReader i b -> QueryReader i a #

Functor (QueryReader i) Source # 
Instance details

Defined in Aztecs.ECS.Query.Reader

Methods

fmap :: (a -> b) -> QueryReader i a -> QueryReader i b #

(<$) :: a -> QueryReader i b -> QueryReader i a #

class Arrow arr => ArrowQueryReader arr where Source #

Arrow for queries that can read from entities.

Minimal complete definition

fetch

Methods

fetch :: Component a => arr () a Source #

Fetch a Component by its type.

fetchMaybe :: Component a => arr () (Maybe a) Source #

Fetch a Component by its type, returning Nothing if it doesn't exist.

Instances

Instances details
ArrowQueryReader Query Source # 
Instance details

Defined in Aztecs.ECS.Query

Methods

fetch :: Component a => Query () a Source #

fetchMaybe :: Component a => Query () (Maybe a) Source #

ArrowQueryReader QueryReader Source # 
Instance details

Defined in Aztecs.ECS.Query.Reader

class Arrow arr => ArrowDynamicQueryReader arr where Source #

Minimal complete definition

entity, fetchDyn

Methods

entity :: arr () EntityID Source #

Fetch the currently matched EntityID.

fetchDyn :: Component a => ComponentID -> arr () a Source #

Fetch a Component by its ComponentID.

fetchMaybeDyn :: Component a => ComponentID -> arr () (Maybe a) Source #

Try to fetch a Component by its ComponentID.

Running

all :: i -> QueryReader i a -> Entities -> ([a], Entities) Source #

all' :: i -> QueryReader i a -> Entities -> ([a], Components) Source #

Match all entities.

Filters

with :: forall a. Component a => QueryFilter Source #

Filter for entities containing this component.

without :: forall a. Component a => QueryFilter Source #

Filter out entities containing this component.