Safe Haskell | None |
---|---|
Language | Haskell2010 |
- newtype Ent = Ent {}
- type SystemState w m = (Int, w (WorldOf m))
- newtype SystemT w m a = SystemT {
- runSystemT' :: StateT (SystemState w m) m a
- type System w = SystemT w Identity
- newtype QueryT w m a = QueryT {
- runQueryT' :: ReaderT (Ent, w FieldOf) (MaybeT m) a
- data VTable m a = VTable {}
- data StorageType
- data ComponentType
- data Update a
- type family Component (s :: StorageType) (c :: ComponentType) (a :: Type) :: Type where ...
Documentation
The key for an entity.
newtype SystemT w m a Source #
A monad transformer over an ECS given a world w
.
SystemT | |
|
MonadReader r m => MonadReader r (SystemT w m) Source # | |
MonadState s m => MonadState s (SystemT w m) Source # | |
MonadWriter ww m => MonadWriter ww (SystemT w m) Source # | |
MonadTrans (SystemT w) Source # | |
Monad m => Monad (SystemT w m) Source # | |
Functor m => Functor (SystemT w m) Source # | |
Monad m => Applicative (SystemT w m) Source # | |
MonadIO m => MonadIO (SystemT w m) Source # | |
A computation to run over a particular entity.
MonadReader r m => MonadReader r (QueryT w m) Source # | |
MonadState s m => MonadState s (QueryT w m) Source # | |
MonadWriter ww m => MonadWriter ww (QueryT w m) Source # | |
MonadTrans (QueryT w) Source # | |
Monad m => Monad (QueryT w m) Source # | |
Functor m => Functor (QueryT w m) Source # | |
Monad m => Applicative (QueryT w m) Source # | |
MonadIO m => MonadIO (QueryT w m) Source # | |
Monad m => Alternative (QueryT w m) Source # | |
Monad m => MonadPlus (QueryT w m) Source # | |
A collection of methods necessary to dispatch reads and writes to
a Virtual
component.
(MonadTrans t, Functor (t m), Monad m) => GHoistWorld t m (K1 * i (VTable m a)) (K1 * i' (VTable (t m) a)) Source # | |
Monad m => GSetEntity m (K1 * i (Update a)) (K1 * i' (VTable m a)) Source # | |
Monad m => GGetEntity m (K1 * i (VTable m a)) (K1 * i' (Maybe a)) Source # | |
(Applicative m, KnownSymbol sym) => GDefault keep (M1 * S (MetaSel (Just Symbol sym) x y z) (K1 * i (VTable m a))) Source # | |
GGraft (K1 * i (VTable m a)) (K1 * i' (VTable (t m) a)) Source # | |
data StorageType Source #
Data kind used to parameterize the ECS record.
data ComponentType Source #
Data kind used to parameterize the fields of the ECS record.
Describes how we can change an a
.
Functor Update Source # | |
Foldable Update Source # | |
Traversable Update Source # | |
GDefault False (K1 * i (Update c)) Source # | |
GDefault True (K1 * i (Update c)) Source # | |
Applicative m => GSetEntity m (K1 * i (Update a)) (K1 * i' (IntMap a)) Source # | |
Monad m => GSetEntity m (K1 * i (Update a)) (K1 * i' (VTable m a)) Source # | |
Applicative m => GSetEntity m (K1 * i (Update a)) (K1 * i' (Maybe (Int, a))) Source # | |
Eq a => Eq (Update a) Source # | |
Ord a => Ord (Update a) Source # | |
Read a => Read (Update a) Source # | |
Show a => Show (Update a) Source # | |
GConvertSetter (K1 * i (Maybe a)) (K1 * i' (Update a)) Source # | |
GConvertSetter (K1 * i a) (K1 * i' (Update a)) Source # | |
type family Component (s :: StorageType) (c :: ComponentType) (a :: Type) :: Type where ... Source #
A type family to be used in your ECS recrod.