Stability | experimental |
---|---|
Safe Haskell | None |
Language | Haskell2010 |
Reactive stores module, still experimental.
Adds the Reactive r s
store, which when wrapped around store s
, will call the react
on its r
.
Show c => Reactive (Printer c) (Map c)
will print a message every time a c
value is set.
Enum c => Reactive (EnumMap c) (Map c)
allows you to look up entities by component value.
Use e.g. rget >>= mapLookup True
to retrieve a list of entities that have a True
component.
Synopsis
- type family ReactElem r
- class Monad m => Reacts m r where
- data Reactive r s = Reactive r s
- rget :: forall w m r s. (Component (ReactElem r), Has w m (ReactElem r), Storage (ReactElem r) ~ Reactive r s) => SystemT w m r
- data Printer c = Printer
- newtype EnumMap c = EnumMap (IORef (IntMap IntSet))
- mapLookup :: Enum c => EnumMap c -> c -> System w [Entity]
Documentation
type family ReactElem r Source #
Analogous to Elem
, but for Reacts
instances.
For a Reactive r s
to be valid, ReactElem r = Elem s
class Monad m => Reacts m r where Source #
Class required by Reactive
.
Given some r
and update information about some component, will run a side-effect in monad m
.
Note that there are also instances for (,)
.
Wrapper for reactivity around some store s.
Reactive r s |
Instances
ExplMembers m s => ExplMembers m (Reactive r s) Source # | |
Defined in Apecs.Reactive | |
(Reacts m r, ExplDestroy m s, ExplGet m s, Elem s ~ ReactElem r) => ExplDestroy m (Reactive r s) Source # | |
Defined in Apecs.Reactive explDestroy :: Reactive r s -> Int -> m () Source # | |
(Reacts m r, ExplSet m s, ExplGet m s, Elem s ~ ReactElem r) => ExplSet m (Reactive r s) Source # | |
ExplGet m s => ExplGet m (Reactive r s) Source # | |
(Reacts m r, ExplInit m s) => ExplInit m (Reactive r s) Source # | |
Defined in Apecs.Reactive | |
type Elem (Reactive r s) Source # | |
Defined in Apecs.Reactive |
rget :: forall w m r s. (Component (ReactElem r), Has w m (ReactElem r), Storage (ReactElem r) ~ Reactive r s) => SystemT w m r Source #
Reads r
from the game world.
Prints a message to stdout every time a component is updated.