Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Aztecs.ECS.Query
Synopsis
- newtype Query i o = Query {
- runQuery :: Components -> (ReadsWrites, Components, DynamicQuery i o)
- class Arrow arr => ArrowQueryReader arr where
- fetch :: Component a => arr () a
- fetchMaybe :: Component a => arr () (Maybe a)
- class ArrowQueryReader arr => ArrowQuery arr where
- class Arrow arr => ArrowDynamicQueryReader arr where
- entity :: arr () EntityID
- fetchDyn :: Component a => ComponentID -> arr () a
- fetchMaybeDyn :: Component a => ComponentID -> arr () (Maybe a)
- class ArrowDynamicQueryReader arr => ArrowDynamicQuery arr where
- setDyn :: Component a => ComponentID -> arr a a
- all :: i -> Query i a -> Entities -> ([a], Entities)
- map :: i -> Query i a -> Entities -> ([a], Entities)
- fromReader :: QueryReader i o -> Query i o
- toReader :: Query i o -> QueryReader i o
- newtype QueryFilter = QueryFilter {}
- with :: forall a. Component a => QueryFilter
- without :: forall a. Component a => QueryFilter
- data ReadsWrites = ReadsWrites {
- reads :: !(Set ComponentID)
- writes :: !(Set ComponentID)
- disjoint :: ReadsWrites -> ReadsWrites -> Bool
Queries
Query for matching entities.
Do notation:
move :: (ArrowQuery arr) => arr () Position move = proc () -> do Velocity v <- Q.fetch -< () Position p <- Q.fetch -< () Q.set -< Position $ p + v
Arrow combinators:
move :: (ArrowQuery arr) => arr () Position move = Q.fetch &&& Q.fetch >>> arr (\(Position p, Velocity v) -> Position $ p + v) >>> Q.set
Applicative combinators:
move :: (ArrowQuery arr) => arr () Position move = (,) <$> Q.fetch <*> Q.fetch >>> arr (\(Position p, Velocity v) -> Position $ p + v) >>> Q.set
Constructors
Query | |
Fields
|
Instances
ArrowQuery Query Source # | |
ArrowDynamicQuery Query Source # | |
Defined in Aztecs.ECS.Query | |
ArrowDynamicQueryReader Query Source # | |
Defined in Aztecs.ECS.Query | |
ArrowQueryReader Query Source # | |
Arrow Query Source # | |
ArrowChoice Query Source # | |
Category Query Source # | |
Monad m => ArrowSystem Query (SystemT m) Source # | |
Applicative (Query i) Source # | |
Functor (Query i) Source # | |
class Arrow arr => ArrowQueryReader arr where Source #
Arrow for queries that can read from entities.
Minimal complete definition
Methods
fetch :: Component a => arr () a Source #
Fetch a Component
by its type.
fetchMaybe :: Component a => arr () (Maybe a) Source #
Instances
ArrowQueryReader Query Source # | |
ArrowQueryReader QueryReader Source # | |
Defined in Aztecs.ECS.Query.Reader Methods fetch :: Component a => QueryReader () a Source # fetchMaybe :: Component a => QueryReader () (Maybe a) Source # |
class ArrowQueryReader arr => ArrowQuery arr where Source #
Arrow for queries that can update entities.
Instances
class Arrow arr => ArrowDynamicQueryReader arr where Source #
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
.
Instances
ArrowDynamicQueryReader Query Source # | |
Defined in Aztecs.ECS.Query | |
ArrowDynamicQueryReader DynamicQuery Source # | |
Defined in Aztecs.ECS.Query.Dynamic Methods entity :: DynamicQuery () EntityID Source # fetchDyn :: Component a => ComponentID -> DynamicQuery () a Source # fetchMaybeDyn :: Component a => ComponentID -> DynamicQuery () (Maybe a) Source # | |
ArrowDynamicQueryReader DynamicQueryReader Source # | |
Defined in Aztecs.ECS.Query.Dynamic.Reader Methods entity :: DynamicQueryReader () EntityID Source # fetchDyn :: Component a => ComponentID -> DynamicQueryReader () a Source # fetchMaybeDyn :: Component a => ComponentID -> DynamicQueryReader () (Maybe a) Source # | |
ArrowDynamicQueryReader QueryReader Source # | |
Defined in Aztecs.ECS.Query.Reader Methods entity :: QueryReader () EntityID Source # fetchDyn :: Component a => ComponentID -> QueryReader () a Source # fetchMaybeDyn :: Component a => ComponentID -> QueryReader () (Maybe a) Source # |
class ArrowDynamicQueryReader arr => ArrowDynamicQuery arr where Source #
Methods
setDyn :: Component a => ComponentID -> arr a a Source #
Instances
ArrowDynamicQuery Query Source # | |
Defined in Aztecs.ECS.Query | |
ArrowDynamicQuery DynamicQuery Source # | |
Defined in Aztecs.ECS.Query.Dynamic Methods setDyn :: Component a => ComponentID -> DynamicQuery a a Source # |
Running
Conversion
fromReader :: QueryReader i o -> Query i o Source #
toReader :: Query i o -> QueryReader i o Source #
Filters
newtype QueryFilter Source #
Filter for a Query
.
Constructors
QueryFilter | |
Fields |
Instances
Monoid QueryFilter Source # | |
Defined in Aztecs.ECS.Query.Reader Methods mempty :: QueryFilter # mappend :: QueryFilter -> QueryFilter -> QueryFilter # mconcat :: [QueryFilter] -> QueryFilter # | |
Semigroup QueryFilter Source # | |
Defined in Aztecs.ECS.Query.Reader Methods (<>) :: QueryFilter -> QueryFilter -> QueryFilter # sconcat :: NonEmpty QueryFilter -> QueryFilter # stimes :: Integral b => b -> QueryFilter -> QueryFilter # |
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.
Reads and writes
data ReadsWrites Source #
Reads and writes of a Query
.
Constructors
ReadsWrites | |
Fields
|
Instances
Monoid ReadsWrites Source # | |
Defined in Aztecs.ECS.Query Methods mempty :: ReadsWrites # mappend :: ReadsWrites -> ReadsWrites -> ReadsWrites # mconcat :: [ReadsWrites] -> ReadsWrites # | |
Semigroup ReadsWrites Source # | |
Defined in Aztecs.ECS.Query Methods (<>) :: ReadsWrites -> ReadsWrites -> ReadsWrites # sconcat :: NonEmpty ReadsWrites -> ReadsWrites # stimes :: Integral b => b -> ReadsWrites -> ReadsWrites # | |
Show ReadsWrites Source # | |
Defined in Aztecs.ECS.Query Methods showsPrec :: Int -> ReadsWrites -> ShowS # show :: ReadsWrites -> String # showList :: [ReadsWrites] -> ShowS # |
disjoint :: ReadsWrites -> ReadsWrites -> Bool Source #