aztecs-0.16.0: A modular game engine and Entity-Component-System (ECS) for Haskell.
Copyright(c) Matt Hunzinger 2025
LicenseBSD-style (see the LICENSE file in the distribution)
Maintainermatt@hunzinger.me
Stabilityprovisional
Portabilitynon-portable (GHC extensions)
Safe HaskellNone
LanguageHaskell2010

Aztecs.ECS.Observer

Description

 
Synopsis

Documentation

data Observer (m :: Type -> Type) e Source #

Observer component

Constructors

Observer 

Fields

Instances

Instances details
(Monad m, Typeable m, Event e) => Component m (Observer m e) Source # 
Instance details

Defined in Aztecs.ECS.Observer

Associated Types

type StorageT (Observer m e) 
Instance details

Defined in Aztecs.ECS.Observer

type StorageT (Observer m e) = Vector (Observer m e)
Show (Observer m e) Source # 
Instance details

Defined in Aztecs.ECS.Observer

Methods

showsPrec :: Int -> Observer m e -> ShowS #

show :: Observer m e -> String #

showList :: [Observer m e] -> ShowS #

type StorageT (Observer m e) Source # 
Instance details

Defined in Aztecs.ECS.Observer

type StorageT (Observer m e) = Vector (Observer m e)

newtype ObserverID Source #

Observer identifier

Constructors

ObserverID 

Fields

Instances

Instances details
Generic ObserverID Source # 
Instance details

Defined in Aztecs.ECS.World.Observers.Internal

Associated Types

type Rep ObserverID 
Instance details

Defined in Aztecs.ECS.World.Observers.Internal

type Rep ObserverID = D1 ('MetaData "ObserverID" "Aztecs.ECS.World.Observers.Internal" "aztecs-0.16.0-1t3LRuVnzUqKpg58E4sSVq" 'True) (C1 ('MetaCons "ObserverID" 'PrefixI 'True) (S1 ('MetaSel ('Just "unObserverId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))
Show ObserverID Source # 
Instance details

Defined in Aztecs.ECS.World.Observers.Internal

Eq ObserverID Source # 
Instance details

Defined in Aztecs.ECS.World.Observers.Internal

Ord ObserverID Source # 
Instance details

Defined in Aztecs.ECS.World.Observers.Internal

type Rep ObserverID Source # 
Instance details

Defined in Aztecs.ECS.World.Observers.Internal

type Rep ObserverID = D1 ('MetaData "ObserverID" "Aztecs.ECS.World.Observers.Internal" "aztecs-0.16.0-1t3LRuVnzUqKpg58E4sSVq" 'True) (C1 ('MetaCons "ObserverID" 'PrefixI 'True) (S1 ('MetaSel ('Just "unObserverId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))

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

Instances details
Show (ObserverKind m e) Source # 
Instance details

Defined in Aztecs.ECS.Observer

observer :: forall (m :: Type -> Type) e. Event e => EntityID -> (EntityID -> e -> Access m ()) -> Observer m e Source #

Create an observer for a single entity.

observerFor :: forall (m :: Type -> Type) e. Event e => Set EntityID -> (EntityID -> e -> Access m ()) -> Observer m e Source #

Create an observer for specific entities.

observerGlobal :: forall (m :: Type -> Type) e. Event e => (e -> Access m ()) -> Observer m e Source #

Create a global observer (observes all events of this type).