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.System
Description
Systems to process entities.
Synopsis
- type System = SystemT Identity
- newtype SystemT m a = System {
- unSystem :: forall t. (MonadTrans t, Monad (t m)) => Job t m a
- readQuery :: Monad m => Query a -> SystemT m [a]
- readQueryT :: Monad m => QueryT m a -> SystemT m [a]
- readQueryEntities :: Monad m => [EntityID] -> Query a -> SystemT m [a]
- readQueryEntitiesT :: Monad m => [EntityID] -> QueryT m a -> SystemT m [a]
- query :: Monad m => Query a -> SystemT m [a]
- queryT :: Monad m => QueryT m a -> SystemT m [a]
- querySingleMaybe :: Monad m => Query a -> SystemT m (Maybe a)
- querySingleMaybeT :: Monad m => QueryT m a -> SystemT m (Maybe a)
- fromQuery :: Query a -> SystemT m (DynamicQuery a)
- fromQueryT :: Monad m => QueryT m a -> SystemT m (DynamicQueryT m a)
- readQueryDyn :: Monad m => DynamicQuery a -> SystemT m [a]
- readQueryDynT :: Monad m => DynamicQueryT m a -> SystemT m [a]
- readQueryEntitiesDyn :: Monad m => [EntityID] -> DynamicQuery a -> SystemT m [a]
- readQueryEntitiesDynT :: Monad m => [EntityID] -> DynamicQueryT m a -> SystemT m [a]
- queryDyn :: Monad m => DynamicQuery a -> SystemT m [a]
- queryDynT :: Monad m => DynamicQueryT m a -> SystemT m [a]
- querySingleMaybeDyn :: Monad m => DynamicQuery a -> SystemT m (Maybe a)
- querySingleMaybeDynT :: Monad m => DynamicQueryT m a -> SystemT m (Maybe a)
- data Job t m a where
- newtype Task t (m :: Type -> Type) a = Task {}
- runSystemT :: (MonadTrans t, Monad (t m), Monad m) => SystemT m a -> ((Entities -> Entities) -> t m Entities) -> t m a
- concurrently :: SystemT IO a -> ((Entities -> Entities) -> IO Entities) -> IO a
Systems
System to process entities.
Since: 0.11
Constructors
System | |
Fields
|
Queries
Reading
readQuery :: Monad m => Query a -> SystemT m [a] Source #
Match all entities with a Query
.
Since: 0.11
readQueryT :: Monad m => QueryT m a -> SystemT m [a] Source #
Match all entities with a QueryT
.
Since: 0.11
readQueryEntities :: Monad m => [EntityID] -> Query a -> SystemT m [a] Source #
Match entities with a QueryT
.
Since: 0.11
readQueryEntitiesT :: Monad m => [EntityID] -> QueryT m a -> SystemT m [a] Source #
Match entities with a QueryT
.
Since: 0.11
Writing
query :: Monad m => Query a -> SystemT m [a] Source #
Match and update all entities with a QueryT
.
Since: 0.11
queryT :: Monad m => QueryT m a -> SystemT m [a] Source #
Match and update all entities with a QueryT
.
Since: 0.11
querySingleMaybe :: Monad m => Query a -> SystemT m (Maybe a) Source #
Match and update a single entity with a Query
, or Nothing
.
Since: 0.11
querySingleMaybeT :: Monad m => QueryT m a -> SystemT m (Maybe a) Source #
Match and update a single entity with a QueryT
, or Nothing
.
Since: 0.11
Conversion
fromQueryT :: Monad m => QueryT m a -> SystemT m (DynamicQueryT m a) Source #
Dynamic Queries
Reading
readQueryDyn :: Monad m => DynamicQuery a -> SystemT m [a] Source #
readQueryDynT :: Monad m => DynamicQueryT m a -> SystemT m [a] Source #
readQueryEntitiesDyn :: Monad m => [EntityID] -> DynamicQuery a -> SystemT m [a] Source #
readQueryEntitiesDynT :: Monad m => [EntityID] -> DynamicQueryT m a -> SystemT m [a] Source #
Writing
queryDyn :: Monad m => DynamicQuery a -> SystemT m [a] Source #
Map all entities with a DynamicQuery
.
Since: 0.11
queryDynT :: Monad m => DynamicQueryT m a -> SystemT m [a] Source #
Map all entities with a DynamicQueryT
.
Since: 0.11
querySingleMaybeDyn :: Monad m => DynamicQuery a -> SystemT m (Maybe a) Source #
Map a single entity with a DynamicQuery
.
Since: 0.11
querySingleMaybeDynT :: Monad m => DynamicQueryT m a -> SystemT m (Maybe a) Source #
Map a single entity with a DynamicQueryT
.
Since: 0.11
Internal
Job to be interpreted.
Since: 0.11
Running
runSystemT :: (MonadTrans t, Monad (t m), Monad m) => SystemT m a -> ((Entities -> Entities) -> t m Entities) -> t m a Source #