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.Query.Dynamic.Class

Description

 
Synopsis

Documentation

class (Monad m, Functor f) => DynamicQueryF (m :: Type -> Type) (f :: Type -> Type) | f -> m where Source #

Dynamic query functor.

Methods

entity :: f EntityID Source #

Fetch the currently matched EntityID.

queryDyn :: Component m a => ComponentID -> f a Source #

Fetch a Component by its ComponentID.

queryMaybeDyn :: Component m a => ComponentID -> f (Maybe a) Source #

Try to query a Component by its ComponentID.

queryMapDyn :: Component m a => (a -> a) -> ComponentID -> f a Source #

Map over a Component by its ComponentID.

queryMapDyn_ :: Component m a => (a -> a) -> ComponentID -> f () Source #

Map over a Component by its ComponentID, ignoring any output.

queryMapDynM :: (Monad m, Component m a) => (a -> m a) -> ComponentID -> f a Source #

Map over a Component by its ComponentID with a monadic function.

queryMapDynWith :: Component m b => (a -> b -> b) -> ComponentID -> f a -> f b Source #

Map over a Component by its ComponentID with input.

queryMapDynWith_ :: Component m b => (a -> b -> b) -> ComponentID -> f a -> f () Source #

Map over a Component by its ComponentID with input, ignoring any output.

queryMapDynWithM :: (Monad m, Component m b) => (a -> b -> m b) -> ComponentID -> f a -> f b Source #

Map over a Component by its ComponentID with input and a monadic function.

queryMapDynWithAccum :: Component m c => (b -> c -> (a, c)) -> ComponentID -> f b -> f (a, c) Source #

Map over a Component by its ComponentID with input, returning a tuple of the result and the updated component.

queryMapDynWithAccumM :: (Monad m, Component m c) => (b -> c -> m (a, c)) -> ComponentID -> f b -> f (a, c) Source #

Map over a Component by its ComponentID with input and a monadic function, returning a tuple.

queryFilterMap :: (a -> Maybe b) -> f a -> f b Source #

Filter a query and map the results, constraining the query to entities that satisfy the predicate.

queryFilter :: (a -> Bool) -> f a -> f a Source #

Filter a query, constraining it to entities that satisfy the predicate.

queryUntracked :: f a -> f a Source #

Run a query without tracking changes.

Instances

Instances details
Monad m => DynamicQueryF m (Query m) Source # 
Instance details

Defined in Aztecs.ECS.Query

Methods

entity :: Query m EntityID Source #

queryDyn :: Component m a => ComponentID -> Query m a Source #

queryMaybeDyn :: Component m a => ComponentID -> Query m (Maybe a) Source #

queryMapDyn :: Component m a => (a -> a) -> ComponentID -> Query m a Source #

queryMapDyn_ :: Component m a => (a -> a) -> ComponentID -> Query m () Source #

queryMapDynM :: (Monad m, Component m a) => (a -> m a) -> ComponentID -> Query m a Source #

queryMapDynWith :: Component m b => (a -> b -> b) -> ComponentID -> Query m a -> Query m b Source #

queryMapDynWith_ :: Component m b => (a -> b -> b) -> ComponentID -> Query m a -> Query m () Source #

queryMapDynWithM :: (Monad m, Component m b) => (a -> b -> m b) -> ComponentID -> Query m a -> Query m b Source #

queryMapDynWithAccum :: Component m c => (b -> c -> (a, c)) -> ComponentID -> Query m b -> Query m (a, c) Source #

queryMapDynWithAccumM :: (Monad m, Component m c) => (b -> c -> m (a, c)) -> ComponentID -> Query m b -> Query m (a, c) Source #

queryFilterMap :: (a -> Maybe b) -> Query m a -> Query m b Source #

queryFilter :: (a -> Bool) -> Query m a -> Query m a Source #

queryUntracked :: Query m a -> Query m a Source #

Monad m => DynamicQueryF m (DynamicQuery m) Source # 
Instance details

Defined in Aztecs.ECS.Query.Dynamic