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.Component

Description

 
Synopsis

Documentation

newtype ComponentID Source #

Unique component identifier.

Constructors

ComponentID 

Fields

Instances

Instances details
Generic ComponentID Source # 
Instance details

Defined in Aztecs.ECS.Component.Internal

Associated Types

type Rep ComponentID 
Instance details

Defined in Aztecs.ECS.Component.Internal

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

Defined in Aztecs.ECS.Component.Internal

Eq ComponentID Source # 
Instance details

Defined in Aztecs.ECS.Component.Internal

Ord ComponentID Source # 
Instance details

Defined in Aztecs.ECS.Component.Internal

type Rep ComponentID Source # 
Instance details

Defined in Aztecs.ECS.Component.Internal

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

class (Monad m, Typeable a, Storage a (StorageT a)) => Component (m :: Type -> Type) a where Source #

Component that can be stored in the World.

Minimal complete definition

Nothing

Associated Types

type StorageT a Source #

Storage of this component.

type StorageT a = Vector a

Methods

componentOnInsert :: EntityID -> a -> Access m () Source #

Lifecycle hook called when a component is inserted.

componentOnChange :: EntityID -> a -> Access m () Source #

Lifecycle hook called when a component is changed.

componentOnRemove :: EntityID -> a -> Access m () Source #

Lifecycle hook called when a component is removed.

Instances

Instances details
Monad m => Component m ChildState Source # 
Instance details

Defined in Aztecs.Hierarchy

Associated Types

type StorageT ChildState 
Instance details

Defined in Aztecs.Hierarchy

Monad m => Component m Children Source # 
Instance details

Defined in Aztecs.Hierarchy

Associated Types

type StorageT Children 
Instance details

Defined in Aztecs.Hierarchy

type StorageT Children = Vector Children
Monad m => Component m Parent Source # 
Instance details

Defined in Aztecs.Hierarchy

Associated Types

type StorageT Parent 
Instance details

Defined in Aztecs.Hierarchy

type StorageT Parent = Vector Parent
Monad m => Component m ParentState Source # 
Instance details

Defined in Aztecs.Hierarchy

Associated Types

type StorageT ParentState 
Instance details

Defined in Aztecs.Hierarchy

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