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 => QueryT m a -> SystemT m [a]
- allDyn :: Monad m => DynamicQueryT m a -> SystemT m [a]
- readQueryEntities :: Monad m => [EntityID] -> QueryT m a -> SystemT m [a]
- query :: Monad m => QueryT m a -> SystemT m [a]
- querySingleMaybe :: Monad m => QueryT m a -> SystemT m (Maybe a)
- queryDyn :: Monad m => DynamicQueryT m a -> SystemT m [a]
- querySingleMaybeDyn :: Monad m => DynamicQueryT m a -> SystemT m (Maybe a)
- 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
- data Job t m a where
- newtype Task t (m :: Type -> Type) a = Task {}
Systems
System to process entities.
Since: 0.11
Constructors
System | |
Fields
|
Reading
readQuery :: Monad m => QueryT m a -> SystemT m [a] Source #
Match all entities with a QueryT
.
Since: 0.11
readQueryEntities :: Monad m => [EntityID] -> QueryT m a -> SystemT m [a] Source #
Match entities with a QueryT
.
Since: 0.11
Writing
query :: Monad m => QueryT m a -> SystemT m [a] Source #
Match and update all entities with a QueryT
.
Since: 0.11
querySingleMaybe :: Monad m => QueryT m a -> SystemT m (Maybe a) Source #
Match and update a single entity with a QueryT
, or Nothing
.
Since: 0.11
queryDyn :: Monad m => DynamicQueryT m a -> SystemT m [a] Source #
Map all entities with a DynamicQueryT
.
Since: 0.11
querySingleMaybeDyn :: Monad m => DynamicQueryT m a -> SystemT m (Maybe a) Source #
Map a single entity with a DynamicQueryT
.
Since: 0.11
Running
runSystemT :: (MonadTrans t, Monad (t m), Monad m) => SystemT m a -> ((Entities -> Entities) -> t m Entities) -> t m a Source #
Internal
Job to be interpreted.
Since: 0.11