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

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

data Components Source #

Component ID map.

Constructors

Components 

Fields

Instances

Instances details
Generic Components Source # 
Instance details

Defined in Aztecs.ECS.World.Components.Internal

Associated Types

type Rep Components 
Instance details

Defined in Aztecs.ECS.World.Components.Internal

type Rep Components = D1 ('MetaData "Components" "Aztecs.ECS.World.Components.Internal" "aztecs-0.16.0-1t3LRuVnzUqKpg58E4sSVq" 'False) (C1 ('MetaCons "Components" 'PrefixI 'True) (S1 ('MetaSel ('Just "componentIds") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map TypeRep ComponentID)) :*: S1 ('MetaSel ('Just "nextComponentId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ComponentID)))
Show Components Source # 
Instance details

Defined in Aztecs.ECS.World.Components.Internal

type Rep Components Source # 
Instance details

Defined in Aztecs.ECS.World.Components.Internal

type Rep Components = D1 ('MetaData "Components" "Aztecs.ECS.World.Components.Internal" "aztecs-0.16.0-1t3LRuVnzUqKpg58E4sSVq" 'False) (C1 ('MetaCons "Components" 'PrefixI 'True) (S1 ('MetaSel ('Just "componentIds") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map TypeRep ComponentID)) :*: S1 ('MetaSel ('Just "nextComponentId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ComponentID)))

lookup :: Typeable a => Components -> Maybe ComponentID Source #

Lookup a component ID by type.

insert :: forall a (m :: Type -> Type). Component m a => Components -> (ComponentID, Components) Source #

Insert a component ID by type, if it does not already exist.

insert' :: forall c (m :: Type -> Type). Component m c => Components -> (ComponentID, Components) Source #

Insert a component ID by type.