Pseudocomponent indicating the absence of a.
Mainly used as e.g. cmap $ (a, Not b) -> c to iterate over entities with an a but no b.
Can also be used to delete components, like cmap $ a -> (Not :: Not a) to delete every a component.
Moduleapecs-0.9.6Haskell2010
Apecs.Components
- 7 types
- Packageapecs-0.9.6
- Exports7
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceComponents.hs
Pseudostore used to produce values of type Not a, inverts explExists, and destroys instead of explSet.
Constructors
NotStore s
Pseudostore used to produce values of type Maybe a.
Will always return True for explExists.
Writing can both set and delete a component using Just and Nothing respectively.
Constructors
Instances3ExplGet, ExplSet, Elem
ExplGet m s => ExplGet m (MaybeStore s)Defined in apecs-0.9.6 · Apecs.Components(ExplDestroy m s, ExplSet m s) => ExplSet m (MaybeStore s)Defined in apecs-0.9.6 · Apecs.Componentstype Elem (MaybeStore s) = Maybe (Elem s)Defined in apecs-0.9.6 · Apecs.Components
Used for Either, a logical disjunction between two components.
As expected, Either is used to model error values.
Getting an Either a b will first attempt to get a b and return it as Right b, or if it does not exist, get an a as Left a.
Can also be used to set one of two things.
Constructors
EitherStore sa sb
Instances4ExplDestroy, ExplGet, ExplSet, Elem
(ExplDestroy m sa, ExplDestroy m sb) => ExplDestroy m (EitherStore sa sb)Defined in apecs-0.9.6 · Apecs.Components(ExplGet m sa, ExplGet m sb) => ExplGet m (EitherStore sa sb)Defined in apecs-0.9.6 · Apecs.Components(ExplSet m sa, ExplSet m sb) => ExplSet m (EitherStore sa sb)Defined in apecs-0.9.6 · Apecs.Componentstype Elem (EitherStore sa sb) = Either (Elem sa) (Elem sb)Defined in apecs-0.9.6 · Apecs.Components
Pseudocomponent that functions normally for explExists and explMembers, but always return Filter for explGet.
Can be used in cmap as cmap $ (Filter :: Filter a) -> b.
Since the above can be written more consicely as cmap $ (_ :: a) -> b, it is rarely directly.
More interestingly, we can define reusable filters like movables = Filter :: Filter (Position, Velocity).
Note that 'Filter c' is equivalent to 'Not (Not c)'.
Instances5Has, Eq, Show, Component, Storage
Has w m c => Has w m (Filter c)Defined in apecs-0.9.6 · Apecs.ComponentsEq (Filter c)Defined in apecs-0.9.6 · Apecs.ComponentsShow (Filter c)Defined in apecs-0.9.6 · Apecs.ComponentsComponent c => Component (Filter c)Defined in apecs-0.9.6 · Apecs.Componentstype Storage (Filter c) = FilterStore (Storage c)Defined in apecs-0.9.6 · Apecs.Components
Constructors
Instances3ExplGet, ExplMembers, Elem
ExplGet m s => ExplGet m (FilterStore s)Defined in apecs-0.9.6 · Apecs.ComponentsExplMembers m s => ExplMembers m (FilterStore s)Defined in apecs-0.9.6 · Apecs.Componentstype Elem (FilterStore s) = Filter (Elem s)Defined in apecs-0.9.6 · Apecs.Components
Pseudostore used to produce components of type Entity.
Always returns True for explExists, and echoes back the entity argument for explGet.
Used in e.g. cmap $ (a, ety :: Entity) -> b to access the current entity.
Instances2ExplGet, Elem
Monad m => ExplGet m EntityStoreDefined in apecs-0.9.6 · Apecs.Componentstype Elem EntityStore = EntityDefined in apecs-0.9.6 · Apecs.Components
Orphan instances
59 instancesComponent EntityComponent ()Monad m => ExplDestroy m ()Monad m => ExplGet m ()Monad m => ExplSet m ()Monad m => Has w m EntityMonad m => Has w m ()Has w m c => Has w m (Identity c)Has w m c => Has w m (Maybe c)(Has w m ca, Has w m cb) => Has w m (Either ca cb)(Has w m t_0, Has w m t_1) => Has w m (t_0, t_1)(Has w m t_0, Has w m t_1, Has w m t_2) => Has w m (t_0, t_1, t_2)(Has w m t_0, Has w m t_1, Has w m t_2, Has w m t_3) => Has w m (t_0, t_1, t_2, t_3)(Has w m t_0, Has w m t_1, Has w m t_2, Has w m t_3, Has w m t_4) => Has w m (t_0, t_1, t_2, t_3, t_4)(Has w m t_0, Has w m t_1, Has w m t_2, Has w m t_3, Has w m t_4, Has w m t_5) => Has w m (t_0, t_1, t_2, t_3, t_4, t_5)(Has w m t_0, Has w m t_1, Has w m t_2, Has w m t_3, Has w m t_4, Has w m t_5, Has w m t_6) => Has w m (t_0, t_1, t_2, t_3, t_4, t_5, t_6)(Has w m t_0, Has w m t_1, Has w m t_2, Has w m t_3, Has w m t_4, Has w m t_5, Has w m t_6, Has w m t_7) => Has w m (t_0, t_1, t_2, t_3, t_4, t_5, t_6, t_7)ExplDestroy m s => ExplDestroy m (Identity s)ExplGet m s => ExplGet m (Identity s)ExplMembers m s => ExplMembers m (Identity s)ExplSet m s => ExplSet m (Identity s)(ExplDestroy m t_0, ExplDestroy m t_1) => ExplDestroy m (t_0, t_1)(ExplGet m t_0, ExplGet m t_1) => ExplGet m (t_0, t_1)(ExplMembers m t_0, ExplGet m t_1) => ExplMembers m (t_0, t_1)(ExplSet m t_0, ExplSet m t_1) => ExplSet m (t_0, t_1)(ExplDestroy m t_0, ExplDestroy m t_1, ExplDestroy m t_2) => ExplDestroy m (t_0, t_1, t_2)(ExplGet m t_0, ExplGet m t_1, ExplGet m t_2) => ExplGet m (t_0, t_1, t_2)(ExplMembers m t_0, ExplGet m t_1, ExplGet m t_2) => ExplMembers m (t_0, t_1, t_2)(ExplSet m t_0, ExplSet m t_1, ExplSet m t_2) => ExplSet m (t_0, t_1, t_2)(ExplDestroy m t_0, ExplDestroy m t_1, ExplDestroy m t_2, ExplDestroy m t_3) => ExplDestroy m (t_0, t_1, t_2, t_3)(ExplGet m t_0, ExplGet m t_1, ExplGet m t_2, ExplGet m t_3) => ExplGet m (t_0, t_1, t_2, t_3)(ExplMembers m t_0, ExplGet m t_1, ExplGet m t_2, ExplGet m t_3) => ExplMembers m (t_0, t_1, t_2, t_3)(ExplSet m t_0, ExplSet m t_1, ExplSet m t_2, ExplSet m t_3) => ExplSet m (t_0, t_1, t_2, t_3)(ExplDestroy m t_0, ExplDestroy m t_1, ExplDestroy m t_2, ExplDestroy m t_3, ExplDestroy m t_4) => ExplDestroy m (t_0, t_1, t_2, t_3, t_4)(ExplGet m t_0, ExplGet m t_1, ExplGet m t_2, ExplGet m t_3, ExplGet m t_4) => ExplGet m (t_0, t_1, t_2, t_3, t_4)(ExplMembers m t_0, ExplGet m t_1, ExplGet m t_2, ExplGet m t_3, ExplGet m t_4) => ExplMembers m (t_0, t_1, t_2, t_3, t_4)(ExplSet m t_0, ExplSet m t_1, ExplSet m t_2, ExplSet m t_3, ExplSet m t_4) => ExplSet m (t_0, t_1, t_2, t_3, t_4)(ExplDestroy m t_0, ExplDestroy m t_1, ExplDestroy m t_2, ExplDestroy m t_3, ExplDestroy m t_4, ExplDestroy m t_5) => ExplDestroy m (t_0, t_1, t_2, t_3, t_4, t_5)(ExplGet m t_0, ExplGet m t_1, ExplGet m t_2, ExplGet m t_3, ExplGet m t_4, ExplGet m t_5) => ExplGet m (t_0, t_1, t_2, t_3, t_4, t_5)(ExplMembers m t_0, ExplGet m t_1, ExplGet m t_2, ExplGet m t_3, ExplGet m t_4, ExplGet m t_5) => ExplMembers m (t_0, t_1, t_2, t_3, t_4, t_5)(ExplSet m t_0, ExplSet m t_1, ExplSet m t_2, ExplSet m t_3, ExplSet m t_4, ExplSet m t_5) => ExplSet m (t_0, t_1, t_2, t_3, t_4, t_5)(ExplDestroy m t_0, ExplDestroy m t_1, ExplDestroy m t_2, ExplDestroy m t_3, ExplDestroy m t_4, ExplDestroy m t_5, ExplDestroy m t_6) => ExplDestroy m (t_0, t_1, t_2, t_3, t_4, t_5, t_6)(ExplGet m t_0, ExplGet m t_1, ExplGet m t_2, ExplGet m t_3, ExplGet m t_4, ExplGet m t_5, ExplGet m t_6) => ExplGet m (t_0, t_1, t_2, t_3, t_4, t_5, t_6)(ExplMembers m t_0, ExplGet m t_1, ExplGet m t_2, ExplGet m t_3, ExplGet m t_4, ExplGet m t_5, ExplGet m t_6) => ExplMembers m (t_0, t_1, t_2, t_3, t_4, t_5, t_6)(ExplSet m t_0, ExplSet m t_1, ExplSet m t_2, ExplSet m t_3, ExplSet m t_4, ExplSet m t_5, ExplSet m t_6) => ExplSet m (t_0, t_1, t_2, t_3, t_4, t_5, t_6)(ExplDestroy m t_0, ExplDestroy m t_1, ExplDestroy m t_2, ExplDestroy m t_3, ExplDestroy m t_4, ExplDestroy m t_5, ExplDestroy m t_6, ExplDestroy m t_7) => ExplDestroy m (t_0, t_1, t_2, t_3, t_4, t_5, t_6, t_7)(ExplGet m t_0, ExplGet m t_1, ExplGet m t_2, ExplGet m t_3, ExplGet m t_4, ExplGet m t_5, ExplGet m t_6, ExplGet m t_7) => ExplGet m (t_0, t_1, t_2, t_3, t_4, t_5, t_6, t_7)(ExplMembers m t_0, ExplGet m t_1, ExplGet m t_2, ExplGet m t_3, ExplGet m t_4, ExplGet m t_5, ExplGet m t_6, ExplGet m t_7) => ExplMembers m (t_0, t_1, t_2, t_3, t_4, t_5, t_6, t_7)(ExplSet m t_0, ExplSet m t_1, ExplSet m t_2, ExplSet m t_3, ExplSet m t_4, ExplSet m t_5, ExplSet m t_6, ExplSet m t_7) => ExplSet m (t_0, t_1, t_2, t_3, t_4, t_5, t_6, t_7)Component c => Component (Identity c)Identity component.
Identity cis equivalent toc, so mostly useless.Component c => Component (Maybe c)(Component ca, Component cb) => Component (Either ca cb)(Component t_0, Component t_1) => Component (t_0, t_1)(Component t_0, Component t_1, Component t_2) => Component (t_0, t_1, t_2)(Component t_0, Component t_1, Component t_2, Component t_3) => Component (t_0, t_1, t_2, t_3)(Component t_0, Component t_1, Component t_2, Component t_3, Component t_4) => Component (t_0, t_1, t_2, t_3, t_4)(Component t_0, Component t_1, Component t_2, Component t_3, Component t_4, Component t_5) => Component (t_0, t_1, t_2, t_3, t_4, t_5)(Component t_0, Component t_1, Component t_2, Component t_3, Component t_4, Component t_5, Component t_6) => Component (t_0, t_1, t_2, t_3, t_4, t_5, t_6)(Component t_0, Component t_1, Component t_2, Component t_3, Component t_4, Component t_5, Component t_6, Component t_7) => Component (t_0, t_1, t_2, t_3, t_4, t_5, t_6, t_7)