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.World.Observers

Description

 
Synopsis

Documentation

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)))

newtype EntityObservers Source #

Observers for a specific entity

Instances

Instances details
Monoid EntityObservers Source # 
Instance details

Defined in Aztecs.ECS.World.Observers.Internal

Semigroup EntityObservers Source # 
Instance details

Defined in Aztecs.ECS.World.Observers.Internal

Generic EntityObservers Source # 
Instance details

Defined in Aztecs.ECS.World.Observers.Internal

Associated Types

type Rep EntityObservers 
Instance details

Defined in Aztecs.ECS.World.Observers.Internal

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

Defined in Aztecs.ECS.World.Observers.Internal

type Rep EntityObservers Source # 
Instance details

Defined in Aztecs.ECS.World.Observers.Internal

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

data DynamicObserver (m :: Type -> Type) Source #

Dynamic observer callback

Constructors

DynEntityObserver !(EntityID -> Dynamic -> m ())

Entity observer callback

DynEventObserver !(Dynamic -> m ())

Event observer callback

empty :: forall (m :: Type -> Type). Observers m Source #

Empty Observers.

insertEntityObserver :: (Typeable e, Monad m) => (EntityID -> e -> m ()) -> Observers m -> (ObserverID, Observers m) Source #

Insert an entity observer callback.

insertEventObserver :: (Typeable e, Monad m) => (e -> m ()) -> Observers m -> (ObserverID, Observers m) Source #

Insert an event observer callback.

addEntityObserver :: forall (m :: Type -> Type) e. Typeable e => EntityID -> ObserverID -> Observers m -> Observers m Source #

Add an observer to a specific entity for a given event type.

addGlobalObserver :: forall (m :: Type -> Type) e. Typeable e => ObserverID -> Observers m -> Observers m Source #

Add a global observer for a given event type.

lookupEntityObservers :: forall (m :: Type -> Type). TypeRep -> EntityID -> Observers m -> Set ObserverID Source #

Lookup all observer IDs for an entity and event type.

lookupGlobalObservers :: forall (m :: Type -> Type). TypeRep -> Observers m -> Set ObserverID Source #

Lookup all global observer IDs for an event type.

lookupCallback :: forall (m :: Type -> Type). ObserverID -> Observers m -> Maybe (DynamicObserver m) Source #

Lookup an observer callback by ID.

removeObserver :: forall (m :: Type -> Type). ObserverID -> Observers m -> Observers m Source #

Remove an observer by ID.