| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Ecstasy.Types
- 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.
Constructors
| SystemT | |
Fields
| |
Instances
| 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.
Instances
| 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.
Constructors
| VTable | |
Instances
| (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.
Constructors
| Keep | Keep the current value. |
| Unset | Delete the current value if it exists. |
| Set !a | Set the current value. |
Instances
| 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.