apecs-0.7.1: Fast ECS framework for game programming

Stabilityexperimtal
Safe HaskellNone
LanguageHaskell2010

Apecs.Stores.Extra

Description

Containment module for stores that are experimental/too weird for Apecs.Stores.

Synopsis

Documentation

newtype Pushdown s c Source #

Overrides a store to have history/pushdown semantics. Setting this store adds a new value on top of the stack. Destroying pops the stack. You can view the entire stack using the Stack c component.

Constructors

Pushdown (s (Stack c)) 
Instances
(Monad m, ExplMembers m (s (Stack c)), Elem (s (Stack c)) ~ Stack c) => ExplMembers m (Pushdown s c) Source # 
Instance details

Defined in Apecs.Stores.Extra

Methods

explMembers :: Pushdown s c -> m (Vector Int) Source #

(Monad m, ExplGet m (s (Stack c)), ExplSet m (s (Stack c)), ExplDestroy m (s (Stack c)), Elem (s (Stack c)) ~ Stack c) => ExplDestroy m (Pushdown s c) Source # 
Instance details

Defined in Apecs.Stores.Extra

Methods

explDestroy :: Pushdown s c -> Int -> m () Source #

(Monad m, ExplGet m (s (Stack c)), ExplSet m (s (Stack c)), Elem (s (Stack c)) ~ Stack c) => ExplSet m (Pushdown s c) Source # 
Instance details

Defined in Apecs.Stores.Extra

Methods

explSet :: Pushdown s c -> Int -> Elem (Pushdown s c) -> m () Source #

(Monad m, ExplGet m (s (Stack c)), Elem (s (Stack c)) ~ Stack c) => ExplGet m (Pushdown s c) Source # 
Instance details

Defined in Apecs.Stores.Extra

Methods

explGet :: Pushdown s c -> Int -> m (Elem (Pushdown s c)) Source #

explExists :: Pushdown s c -> Int -> m Bool Source #

(Functor m, ExplInit m (s (Stack c))) => ExplInit m (Pushdown s c) Source # 
Instance details

Defined in Apecs.Stores.Extra

Methods

explInit :: m (Pushdown s c) Source #

type Elem (Pushdown s c) Source # 
Instance details

Defined in Apecs.Stores.Extra

type Elem (Pushdown s c) = c

newtype Stack c Source #

Constructors

Stack 

Fields

Instances
(Storage c ~ Pushdown s c, Has w m c) => Has w m (Stack c) Source # 
Instance details

Defined in Apecs.Stores.Extra

Methods

getStore :: SystemT w m (Storage (Stack c)) Source #

(Storage c ~ Pushdown s c, Component c) => Component (Stack c) Source # 
Instance details

Defined in Apecs.Stores.Extra

Associated Types

type Storage (Stack c) :: Type Source #

type Storage (Stack c) Source # 
Instance details

Defined in Apecs.Stores.Extra

type Storage (Stack c)

newtype ReadOnly s Source #

Wrapper that makes a store read-only. Use setReadOnly and destroyReadOnly to override.

Constructors

ReadOnly s 
Instances
ExplMembers m s => ExplMembers m (ReadOnly s) Source # 
Instance details

Defined in Apecs.Stores.Extra

Methods

explMembers :: ReadOnly s -> m (Vector Int) Source #

ExplGet m s => ExplGet m (ReadOnly s) Source # 
Instance details

Defined in Apecs.Stores.Extra

Methods

explGet :: ReadOnly s -> Int -> m (Elem (ReadOnly s)) Source #

explExists :: ReadOnly s -> Int -> m Bool Source #

(Functor m, ExplInit m s) => ExplInit m (ReadOnly s) Source # 
Instance details

Defined in Apecs.Stores.Extra

Methods

explInit :: m (ReadOnly s) Source #

type Elem (ReadOnly s) Source # 
Instance details

Defined in Apecs.Stores.Extra

type Elem (ReadOnly s) = Elem s

setReadOnly :: forall w m s c. (Has w m c, Storage c ~ ReadOnly s, Elem s ~ c, ExplSet m s) => Entity -> c -> SystemT w m () Source #

destroyReadOnly :: forall w m s c. (Has w m c, Storage c ~ ReadOnly s, Elem s ~ c, ExplDestroy m s) => Entity -> Proxy c -> SystemT w m () Source #