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
- Entity :: DynamicQueryT f EntityID
- 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
- Lift :: (MonadTrans g, Monad (g f), Monad f) => DynamicQueryT f a -> DynamicQueryT (g f) a
- Op :: ComponentID -> 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 ()
- liftQueryDyn :: (MonadTrans g, Monad (g f), Monad f) => DynamicQueryT f a -> DynamicQueryT (g f) a
- queryDyn :: Applicative f => DynamicQueryT f a -> Entities -> f ([a], Entities)
- readQuerySingleDyn :: (HasCallStack, Applicative f) => DynamicQueryT f a -> Entities -> f a
- readQuerySingleMaybeDyn :: Applicative f => DynamicQueryT f a -> Entities -> f (Maybe a)
- queryEntitiesDyn :: Monad m => [EntityID] -> DynamicQueryT m a -> Entities -> m ([a], Entities)
- readQueryDyn :: Applicative f => DynamicQueryT f a -> Entities -> f [a]
- querySingleDyn :: (HasCallStack, Applicative m) => DynamicQueryT m a -> Entities -> m (a, Entities)
- querySingleMaybeDyn :: Applicative f => DynamicQueryT f a -> Entities -> f (Maybe a, Entities)
- readQueryEntitiesDyn :: Applicative f => [EntityID] -> DynamicQueryT f a -> Entities -> f [a]
- data QueryFilter = QueryFilter {
- filterWith :: !(Set ComponentID)
- filterWithout :: !(Set ComponentID)
- data Operation f a where
- Fetch :: Component a => Operation f a
- FetchMaybe :: Component a => Operation f (Maybe a)
- FetchMap :: Component a => (a -> a) -> Operation f a
- FetchMapM :: (Monad f, Component a) => (a -> f a) -> Operation f a
- ZipFetchMap :: Component a => (b -> a -> (c, a)) -> DynamicQueryT f b -> Operation f (c, a)
- ZipFetchMapM :: (Monad f, Component a) => (b -> a -> f (c, a)) -> DynamicQueryT f b -> Operation f (c, a)
- With :: Operation f ()
- Without :: Operation f ()
- 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
Entity :: DynamicQueryT f EntityID | |
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 | |
Lift :: (MonadTrans g, Monad (g f), Monad f) => DynamicQueryT f a -> DynamicQueryT (g f) a | |
Op :: ComponentID -> 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 #
Conversion
liftQueryDyn :: (MonadTrans g, Monad (g f), Monad f) => DynamicQueryT f a -> DynamicQueryT (g f) a Source #
Running
queryDyn :: Applicative f => DynamicQueryT f a -> Entities -> f ([a], Entities) Source #
Match and update all matched entities.
Since: 0.11
readQuerySingleDyn :: (HasCallStack, Applicative f) => DynamicQueryT f a -> Entities -> f a Source #
Match a single entity.
Since: 0.11
readQuerySingleMaybeDyn :: Applicative f => DynamicQueryT f a -> Entities -> f (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 :: Applicative f => DynamicQueryT f a -> Entities -> f [a] Source #
Match all entities.
Since: 0.11
querySingleDyn :: (HasCallStack, Applicative m) => DynamicQueryT m a -> Entities -> m (a, Entities) Source #
Match and update a single entity.
Since: 0.11
querySingleMaybeDyn :: Applicative f => DynamicQueryT f a -> Entities -> f (Maybe a, Entities) Source #
Match and update a single entity, or Nothing
.
Since: 0.11
readQueryEntitiesDyn :: Applicative f => [EntityID] -> DynamicQueryT f a -> Entities -> f [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 # |
data Operation f a where Source #
Constructors
Fetch :: Component a => Operation f a | |
FetchMaybe :: Component a => Operation f (Maybe a) | |
FetchMap :: Component a => (a -> a) -> Operation f a | |
FetchMapM :: (Monad f, Component a) => (a -> f a) -> Operation f a | |
ZipFetchMap :: Component a => (b -> a -> (c, a)) -> DynamicQueryT f b -> Operation f (c, a) | |
ZipFetchMapM :: (Monad f, Component a) => (b -> a -> f (c, a)) -> DynamicQueryT f b -> Operation f (c, a) | |
With :: Operation f () | |
Without :: Operation f () |
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 #