| 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 | None |
| Language | Haskell2010 |
Aztecs.ECS.Observer
Description
Synopsis
- data Observer (m :: Type -> Type) e = Observer {
- observerKind :: !(ObserverKind m e)
- observerId :: !(Maybe ObserverID)
- newtype ObserverID = ObserverID {
- unObserverId :: Int
- data ObserverKind (m :: Type -> Type) e
- = EntityObserver !(Set EntityID) !(EntityID -> e -> Access m ())
- | EventObserver !(e -> Access m ())
- observer :: forall (m :: Type -> Type) e. Event e => EntityID -> (EntityID -> e -> Access m ()) -> Observer m e
- observerFor :: forall (m :: Type -> Type) e. Event e => Set EntityID -> (EntityID -> e -> Access m ()) -> Observer m e
- observerGlobal :: forall (m :: Type -> Type) e. Event e => (e -> Access m ()) -> Observer m e
Documentation
data Observer (m :: Type -> Type) e Source #
Observer component
Constructors
| Observer | |
Fields
| |
newtype ObserverID Source #
Observer identifier
Constructors
| ObserverID | |
Fields
| |
Instances
data ObserverKind (m :: Type -> Type) e Source #
The kind of observer - either entity-specific or global.
Constructors
| EntityObserver !(Set EntityID) !(EntityID -> e -> Access m ()) | Observe events on specific entities (callback receives EntityID and event). |
| EventObserver !(e -> Access m ()) | Observe all events of this type globally (callback receives just the event). |
Instances
| Show (ObserverKind m e) Source # | |
Defined in Aztecs.ECS.Observer Methods showsPrec :: Int -> ObserverKind m e -> ShowS # show :: ObserverKind m e -> String # showList :: [ObserverKind m e] -> ShowS # | |
observer :: forall (m :: Type -> Type) e. Event e => EntityID -> (EntityID -> e -> Access m ()) -> Observer m e Source #
Create an observer for a single entity.