aztecs-0.1.0.1: A type-safe and friendly ECS for Haskell
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Aztecs

Synopsis

Documentation

data Entity Source #

Instances

Instances details
Show Entity Source # 
Instance details

Defined in Data.Aztecs.Core

Eq Entity Source # 
Instance details

Defined in Data.Aztecs.Core

Methods

(==) :: Entity -> Entity -> Bool #

(/=) :: Entity -> Entity -> Bool #

Ord Entity Source # 
Instance details

Defined in Data.Aztecs.Core

data EntityComponent a Source #

Constructors

EntityComponent Entity a 

Instances

Instances details
Show a => Show (EntityComponent a) Source # 
Instance details

Defined in Data.Aztecs.Core

class Typeable a => Component a where Source #

Minimal complete definition

Nothing

Methods

storage :: Storage a Source #

data World Source #

Instances

Instances details
Show World Source # 
Instance details

Defined in Data.Aztecs.World

Methods

showsPrec :: Int -> World -> ShowS #

show :: World -> String #

showList :: [World] -> ShowS #

data Query m a Source #

Builder for a Query.

Instances

Instances details
Applicative (Query m) Source # 
Instance details

Defined in Data.Aztecs.Query

Methods

pure :: a -> Query m a #

(<*>) :: Query m (a -> b) -> Query m a -> Query m b #

liftA2 :: (a -> b -> c) -> Query m a -> Query m b -> Query m c #

(*>) :: Query m a -> Query m b -> Query m b #

(<*) :: Query m a -> Query m b -> Query m a #

Functor (Query m) Source # 
Instance details

Defined in Data.Aztecs.Query

Methods

fmap :: (a -> b) -> Query m a -> Query m b #

(<$) :: a -> Query m b -> Query m a #

Monad (Query m) Source # 
Instance details

Defined in Data.Aztecs.Query

Methods

(>>=) :: Query m a -> (a -> Query m b) -> Query m b #

(>>) :: Query m a -> Query m b -> Query m b #

return :: a -> Query m a #

data Access (m :: Type -> Type) a where Source #

Constructors

PureA :: a -> Access m a 
MapA :: (a -> b) -> Access m a -> Access m b 
AppA :: Access m (a -> b) -> Access m a -> Access m b 
BindA :: Access m a -> (a -> Access m b) -> Access m b 
AllA :: Archetype -> Query m a -> Access m [a] 
GetA :: Archetype -> Query m a -> Entity -> Access m (Maybe a) 
CommandA :: Command m () -> Access m () 
LiftA :: m a -> Access m a 

Instances

Instances details
MonadIO m => MonadIO (Access m) Source # 
Instance details

Defined in Data.Aztecs.System

Methods

liftIO :: IO a -> Access m a #

Monad m => Applicative (Access m) Source # 
Instance details

Defined in Data.Aztecs.System

Methods

pure :: a -> Access m a #

(<*>) :: Access m (a -> b) -> Access m a -> Access m b #

liftA2 :: (a -> b -> c) -> Access m a -> Access m b -> Access m c #

(*>) :: Access m a -> Access m b -> Access m b #

(<*) :: Access m a -> Access m b -> Access m a #

Functor (Access m) Source # 
Instance details

Defined in Data.Aztecs.System

Methods

fmap :: (a -> b) -> Access m a -> Access m b #

(<$) :: a -> Access m b -> Access m a #

Monad m => Monad (Access m) Source # 
Instance details

Defined in Data.Aztecs.System

Methods

(>>=) :: Access m a -> (a -> Access m b) -> Access m b #

(>>) :: Access m a -> Access m b -> Access m b #

return :: a -> Access m a #

data Task m s a Source #

System task.

Instances

Instances details
MonadIO m => MonadIO (Task m s) Source # 
Instance details

Defined in Data.Aztecs.Task

Methods

liftIO :: IO a -> Task m s a #

Monad m => Applicative (Task m s) Source # 
Instance details

Defined in Data.Aztecs.Task

Methods

pure :: a -> Task m s a #

(<*>) :: Task m s (a -> b) -> Task m s a -> Task m s b #

liftA2 :: (a -> b -> c) -> Task m s a -> Task m s b -> Task m s c #

(*>) :: Task m s a -> Task m s b -> Task m s b #

(<*) :: Task m s a -> Task m s b -> Task m s a #

Functor m => Functor (Task m s) Source # 
Instance details

Defined in Data.Aztecs.Task

Methods

fmap :: (a -> b) -> Task m s a -> Task m s b #

(<$) :: a -> Task m s b -> Task m s a #

Monad m => Monad (Task m s) Source # 
Instance details

Defined in Data.Aztecs.Task

Methods

(>>=) :: Task m s a -> (a -> Task m s b) -> Task m s b #

(>>) :: Task m s a -> Task m s b -> Task m s b #

return :: a -> Task m s a #

class Typeable a => System m a where Source #

Methods

access :: Access m () Source #

before :: forall m a. System m a => Constraint Source #

after :: forall m a. System m a => Constraint Source #

data Schedule m Source #

Constructors

Schedule (Map TypeRep (ScheduleNode m)) 

Instances

Instances details
Monoid (Schedule m) Source # 
Instance details

Defined in Data.Aztecs.Schedule

Methods

mempty :: Schedule m #

mappend :: Schedule m -> Schedule m -> Schedule m #

mconcat :: [Schedule m] -> Schedule m #

Semigroup (Schedule m) Source # 
Instance details

Defined in Data.Aztecs.Schedule

Methods

(<>) :: Schedule m -> Schedule m -> Schedule m #

sconcat :: NonEmpty (Schedule m) -> Schedule m #

stimes :: Integral b => b -> Schedule m -> Schedule m #

newtype Scheduler m Source #

Constructors

Scheduler (Map TypeRep (Schedule m)) 

Instances

Instances details
Monoid (Scheduler m) Source # 
Instance details

Defined in Data.Aztecs.Schedule

Semigroup (Scheduler m) Source # 
Instance details

Defined in Data.Aztecs.Schedule

Methods

(<>) :: Scheduler m -> Scheduler m -> Scheduler m #

sconcat :: NonEmpty (Scheduler m) -> Scheduler m #

stimes :: Integral b => b -> Scheduler m -> Scheduler m #

schedule :: forall l m s. (Typeable l, System m s) => [Constraint] -> Scheduler m Source #