Copyright | (c) Matt Hunzinger 2025 |
---|---|
License | BSD-style (see the LICENSE file in the distribution) |
Maintainer | matt@hunzinger.me |
Stability | provisional |
Portability | non-portable (GHC extensions) |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Aztecs.ECS.Query.Dynamic
Description
Synopsis
- type DynamicQuery = DynamicQueryT Identity
- data DynamicQueryT f a where
- Pure :: !a -> DynamicQueryT f a
- Map :: !(a -> b) -> !(DynamicQueryT f a) -> DynamicQueryT f b
- Ap :: !(DynamicQueryT f (a -> b)) -> !(DynamicQueryT f a) -> DynamicQueryT f b
- Op :: !(Operation f a) -> DynamicQueryT f a
- entityDyn :: DynamicQueryT f EntityID
- fetchDyn :: Component a => ComponentID -> DynamicQueryT f a
- fetchMaybeDyn :: Component a => ComponentID -> DynamicQueryT f (Maybe a)
- fetchMapDyn :: Component a => (a -> a) -> ComponentID -> DynamicQueryT f a
- fetchMapDynM :: (Monad f, Component a) => (a -> f a) -> ComponentID -> DynamicQueryT f a
- zipFetchMapDyn :: Component a => (b -> a -> a) -> ComponentID -> DynamicQueryT f b -> DynamicQueryT f a
- zipFetchMapAccumDyn :: Component a => (b -> a -> (c, a)) -> ComponentID -> DynamicQueryT f b -> DynamicQueryT f (c, a)
- zipFetchMapDynM :: (Monad f, Component a) => (b -> a -> f a) -> ComponentID -> DynamicQueryT f b -> DynamicQueryT f a
- zipFetchMapAccumDynM :: (Monad f, Component a) => (b -> a -> f (c, a)) -> ComponentID -> DynamicQueryT f b -> DynamicQueryT f (c, a)
- withDyn :: ComponentID -> DynamicQueryT f ()
- withoutDyn :: ComponentID -> DynamicQueryT f ()
- queryDyn :: Monad m => DynamicQueryT m a -> Entities -> m ([a], Entities)
- singleDyn :: (HasCallStack, Monad m) => DynamicQueryT m a -> Entities -> m a
- singleMaybeDyn :: Monad m => DynamicQueryT m a -> Entities -> m (Maybe a)
- queryEntitiesDyn :: Monad m => [EntityID] -> DynamicQueryT m a -> Entities -> m ([a], Entities)
- readQueryDyn :: Monad m => DynamicQueryT m a -> Entities -> m [a]
- mapSingleDyn :: (HasCallStack, Monad m) => DynamicQueryT m a -> Entities -> m (a, Entities)
- mapSingleMaybeDyn :: Monad m => DynamicQueryT m a -> Entities -> m (Maybe a, Entities)
- readQueryEntitiesDyn :: Monad m => [EntityID] -> DynamicQueryT m a -> Entities -> m [a]
- data QueryFilter = QueryFilter {
- filterWith :: !(Set ComponentID)
- filterWithout :: !(Set ComponentID)
- queryFilter :: DynamicQueryT f a -> QueryFilter
- runDynQuery :: Applicative f => DynamicQueryT f a -> Archetype -> f ([a], Archetype)
- runDynQueryEntities :: Applicative f => [EntityID] -> DynamicQueryT f a -> Archetype -> f ([a], Archetype)
- readDynQuery :: Applicative f => DynamicQueryT f a -> Archetype -> f [a]
- readDynQueryEntities :: Applicative f => [EntityID] -> DynamicQueryT f a -> Archetype -> f [a]
Dynamic queries
type DynamicQuery = DynamicQueryT Identity Source #
data DynamicQueryT f a where Source #
Dynamic query for components by ID.
Since: 0.11
Constructors
Pure :: !a -> DynamicQueryT f a | |
Map :: !(a -> b) -> !(DynamicQueryT f a) -> DynamicQueryT f b | |
Ap :: !(DynamicQueryT f (a -> b)) -> !(DynamicQueryT f a) -> DynamicQueryT f b | |
Op :: !(Operation f a) -> DynamicQueryT f a |
Instances
Applicative (DynamicQueryT f) Source # | Since: 0.11 |
Defined in Aztecs.ECS.Query.Dynamic Methods pure :: a -> DynamicQueryT f a # (<*>) :: DynamicQueryT f (a -> b) -> DynamicQueryT f a -> DynamicQueryT f b # liftA2 :: (a -> b -> c) -> DynamicQueryT f a -> DynamicQueryT f b -> DynamicQueryT f c # (*>) :: DynamicQueryT f a -> DynamicQueryT f b -> DynamicQueryT f b # (<*) :: DynamicQueryT f a -> DynamicQueryT f b -> DynamicQueryT f a # | |
Functor (DynamicQueryT f) Source # | |
Defined in Aztecs.ECS.Query.Dynamic Methods fmap :: (a -> b) -> DynamicQueryT f a -> DynamicQueryT f b # (<$) :: a -> DynamicQueryT f b -> DynamicQueryT f a # |
Operations
fetchDyn :: Component a => ComponentID -> DynamicQueryT f a Source #
fetchMaybeDyn :: Component a => ComponentID -> DynamicQueryT f (Maybe a) Source #
fetchMapDyn :: Component a => (a -> a) -> ComponentID -> DynamicQueryT f a Source #
fetchMapDynM :: (Monad f, Component a) => (a -> f a) -> ComponentID -> DynamicQueryT f a Source #
zipFetchMapDyn :: Component a => (b -> a -> a) -> ComponentID -> DynamicQueryT f b -> DynamicQueryT f a Source #
zipFetchMapAccumDyn :: Component a => (b -> a -> (c, a)) -> ComponentID -> DynamicQueryT f b -> DynamicQueryT f (c, a) Source #
zipFetchMapDynM :: (Monad f, Component a) => (b -> a -> f a) -> ComponentID -> DynamicQueryT f b -> DynamicQueryT f a Source #
zipFetchMapAccumDynM :: (Monad f, Component a) => (b -> a -> f (c, a)) -> ComponentID -> DynamicQueryT f b -> DynamicQueryT f (c, a) Source #
Filters
withDyn :: ComponentID -> DynamicQueryT f () Source #
withoutDyn :: ComponentID -> DynamicQueryT f () Source #
Running
queryDyn :: Monad m => DynamicQueryT m a -> Entities -> m ([a], Entities) Source #
Match and update all matched entities.
Since: 0.11
singleDyn :: (HasCallStack, Monad m) => DynamicQueryT m a -> Entities -> m a Source #
Match a single entity.
Since: 0.11
singleMaybeDyn :: Monad m => DynamicQueryT m a -> Entities -> m (Maybe a) Source #
Match a single entity, or Nothing
.
Since: 0.11
queryEntitiesDyn :: Monad m => [EntityID] -> DynamicQueryT m a -> Entities -> m ([a], Entities) Source #
readQueryDyn :: Monad m => DynamicQueryT m a -> Entities -> m [a] Source #
Match all entities.
Since: 0.11
mapSingleDyn :: (HasCallStack, Monad m) => DynamicQueryT m a -> Entities -> m (a, Entities) Source #
Map a single matched entity.
Since: 0.11
mapSingleMaybeDyn :: Monad m => DynamicQueryT m a -> Entities -> m (Maybe a, Entities) Source #
Map a single matched entity, or Nothing
.
Since: 0.11
readQueryEntitiesDyn :: Monad m => [EntityID] -> DynamicQueryT m a -> Entities -> m [a] Source #
Internal
data QueryFilter Source #
Query
filter.
Since: 0.11
Constructors
QueryFilter | |
Fields
|
Instances
Monoid QueryFilter Source # | Since: 0.9 |
Defined in Aztecs.ECS.Query.Dynamic Methods mempty :: QueryFilter # mappend :: QueryFilter -> QueryFilter -> QueryFilter # mconcat :: [QueryFilter] -> QueryFilter # | |
Semigroup QueryFilter Source # | Since: 0.9 |
Defined in Aztecs.ECS.Query.Dynamic Methods (<>) :: QueryFilter -> QueryFilter -> QueryFilter # sconcat :: NonEmpty QueryFilter -> QueryFilter # stimes :: Integral b => b -> QueryFilter -> QueryFilter # | |
Show QueryFilter Source # | |
Defined in Aztecs.ECS.Query.Dynamic Methods showsPrec :: Int -> QueryFilter -> ShowS # show :: QueryFilter -> String # showList :: [QueryFilter] -> ShowS # |
queryFilter :: DynamicQueryT f a -> QueryFilter Source #
runDynQuery :: Applicative f => DynamicQueryT f a -> Archetype -> f ([a], Archetype) Source #
runDynQueryEntities :: Applicative f => [EntityID] -> DynamicQueryT f a -> Archetype -> f ([a], Archetype) Source #
readDynQuery :: Applicative f => DynamicQueryT f a -> Archetype -> f [a] Source #
readDynQueryEntities :: Applicative f => [EntityID] -> DynamicQueryT f a -> Archetype -> f [a] Source #