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

Description

 
Synopsis

Documentation

newtype Access (m :: Type -> Type) a Source #

Access into a World.

Constructors

Access 

Fields

Instances

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

Defined in Aztecs.ECS.Access.Internal

Methods

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

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

Defined in Aztecs.ECS.Access.Internal

Methods

liftIO :: IO a -> Access m a #

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

Defined in Aztecs.ECS.Access.Internal

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 m => Functor (Access m) Source # 
Instance details

Defined in Aztecs.ECS.Access.Internal

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 Aztecs.ECS.Access.Internal

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 #

runAccess :: Functor m => Access m a -> World m -> m (a, World m) Source #

Run an Access on a World, returning the output and updated World.

runAccess_ :: Monad m => Access m a -> m a Source #

Run an Access on an empty World.

spawn :: forall (m :: Type -> Type). Monad m => BundleT m -> Access m EntityID Source #

spawn_ :: forall (m :: Type -> Type). Monad m => BundleT m -> Access m () Source #

insert :: forall (m :: Type -> Type). Monad m => EntityID -> BundleT m -> Access m () Source #

insertUntracked :: forall (m :: Type -> Type). Monad m => EntityID -> BundleT m -> Access m () Source #

Insert a component into an entity without running lifecycle hooks.

lookup :: forall (m :: Type -> Type) a. (Monad m, Component m a) => EntityID -> Access m (Maybe a) Source #

remove :: forall (m :: Type -> Type) a. (Monad m, Component m a) => EntityID -> Access m (Maybe a) Source #

despawn :: forall (m :: Type -> Type). Monad m => EntityID -> Access m () Source #

system :: forall (m :: Type -> Type) a. Monad m => System m a -> Access m a Source #

Run a System on the World.

triggerEvent :: forall (m :: Type -> Type) e. (Monad m, Event e) => e -> Access m () Source #

Trigger an event.

triggerEntityEvent :: forall (m :: Type -> Type) e. (Monad m, Event e) => EntityID -> e -> Access m () Source #

Trigger an event for a specific entity.