mischief-ecs
Safe HaskellNone
LanguageGHC2024

Mischief.ECS.Tables

Synopsis

Documentation

newtype Tables Source #

Constructors

Tables 

Fields

newtype Column Source #

Constructors

Column (IOVec ComponentData) 

tapMap :: (Monad m, Ord k) => Map k a -> k -> (a -> m ()) -> m () Source #

runs the specified monadic action with the value of the given map key as input, if the key exists. if it doesn't, do nothing

replaceComponentsIntoMap Source #

Arguments

:: ProcessedBundleData 
-> Maybe Tick

The current tick that will be as the components' change tick.

-> EntityPointer 
-> Map ComponentId Column 
-> IO () 

replaceComponentsIntoTable Source #

Arguments

:: ProcessedBundleData 
-> Maybe Tick

The current tick that will be as the components' change tick.

-> EntityPointer 
-> Table 
-> IO () 

newtype Result c Source #

Constructors

Result (c, Entity) 

Instances

Instances details
HasField a b c => HasField (a :: k) (Result b :: Type) (c :: Type) Source # 
Instance details

Defined in Mischief.ECS.Tables

Methods

getField :: Result b -> c #

TryMapId 'False MapQueryVal (Result a) a Source # 
Instance details

Defined in Mischief.ECS.Mappable

Methods

tryMapId :: Result a -> a Source #

TryMapId 'False MapQueryValidity (Result a) (Result a) Source # 
Instance details

Defined in Mischief.ECS.Mappable

Methods

tryMapId :: Result a -> Result a Source #

Component c => Updateable' 'False (Result (Rel c)) Source # 
Instance details

Defined in Mischief.ECS.World.Insert

Methods

updateInner' :: Result (Rel c) -> System (Maybe (Result (Rel c))) Source #

(Component c, IsComponentC c ~ HTrue) => Updateable' 'True (Result c) Source # 
Instance details

Defined in Mischief.ECS.World.Insert

Component c => GetResultComponentId' 'False (Result (Rel c)) Source # 
Instance details

Defined in Mischief.ECS.World.Query

Component c => GetResultComponentId' 'True (Result c) Source # 
Instance details

Defined in Mischief.ECS.World.Query

DeepValue' 'False (Result (Rel c)) c Source # 
Instance details

Defined in Mischief.ECS.Tables

Methods

deepValue' :: Result (Rel c) -> c Source #

DeepValue' 'True (Result c) c Source # 
Instance details

Defined in Mischief.ECS.Tables

Methods

deepValue' :: Result c -> c Source #

Component c => Settable' 'False (Result (Rel c)) c Source # 
Instance details

Defined in Mischief.ECS.World.Insert

Methods

setInner' :: Result (Rel c) -> c -> System () Source #

setIfNeqInner' :: Result (Rel c) -> c -> System () Source #

(Component c, IsComponentC c ~ HTrue) => Settable' 'True (Result c) c Source # 
Instance details

Defined in Mischief.ECS.World.Insert

Methods

setInner' :: Result c -> c -> System () Source #

setIfNeqInner' :: Result c -> c -> System () Source #

Component c => RelQuery 'Exclusive (MR c Any) (Maybe (Result (Rel c))) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Component c => RelQuery 'Exclusive (R c Any) (Result (Rel c)) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Component c => RelQuery 'Inclusive (MR c Any) (Maybe [Result (Rel c)]) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Component c => RelQuery 'Inclusive (R c Any) [Result (Rel c)] Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Show c => Show (Result c) Source # 
Instance details

Defined in Mischief.ECS.Tables

Methods

showsPrec :: Int -> Result c -> ShowS #

show :: Result c -> String #

showList :: [Result c] -> ShowS #

Eq c => Eq (Result c) Source # 
Instance details

Defined in Mischief.ECS.Tables

Methods

(==) :: Result c -> Result c -> Bool #

(/=) :: Result c -> Result c -> Bool #

Ord c => Ord (Result c) Source # 
Instance details

Defined in Mischief.ECS.Tables

Methods

compare :: Result c -> Result c -> Ordering #

(<) :: Result c -> Result c -> Bool #

(<=) :: Result c -> Result c -> Bool #

(>) :: Result c -> Result c -> Bool #

(>=) :: Result c -> Result c -> Bool #

max :: Result c -> Result c -> Result c #

min :: Result c -> Result c -> Result c #

Updateable' (IsComp c) (Result c) => Updateable (Result c) Source # 
Instance details

Defined in Mischief.ECS.World.Insert

GetResultComponentId' (IsComp c) (Result c) => GetResultComponentId (Result c) Source # 
Instance details

Defined in Mischief.ECS.World.Query

DeepValue' (IsComp c) (Result c) i => DeepValue (Result c) i Source # 
Instance details

Defined in Mischief.ECS.Tables

Methods

deepValue :: Result c -> i Source #

Settable' (IsComp c) (Result c) i => Settable (Result c) i Source # 
Instance details

Defined in Mischief.ECS.World.Insert

Methods

setInner :: Result c -> i -> System () Source #

setIfNeqInner :: Result c -> i -> System () Source #

Component c => Queryable (C c) (Result c) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Component c => Queryable (M c) (Maybe (Result c)) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Component c => Queryable (MR c Entity) (Maybe (Result (Rel c))) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

Component c => Queryable (R c Entity) (Result (Rel c)) Source # 
Instance details

Defined in Mischief.ECS.World.Query.Queryable

data ErasedResult where Source #

Constructors

ErasedResult :: forall c. Result c -> ErasedResult 

value :: Result c -> c Source #

type family IsComp a :: Bool where ... Source #

Equations

IsComp (Rel a) = 'False 
IsComp a = 'True 

class DeepValue' (flag :: k) c i | flag c -> i where Source #

Methods

deepValue' :: c -> i Source #

Instances

Instances details
DeepValue' 'False (Result (Rel c)) c Source # 
Instance details

Defined in Mischief.ECS.Tables

Methods

deepValue' :: Result (Rel c) -> c Source #

DeepValue' 'True (Result c) c Source # 
Instance details

Defined in Mischief.ECS.Tables

Methods

deepValue' :: Result c -> c Source #

class DeepValue c i | c -> i where Source #

Methods

deepValue :: c -> i Source #

Instances

Instances details
DeepValue' (IsComp c) (Result c) i => DeepValue (Result c) i Source # 
Instance details

Defined in Mischief.ECS.Tables

Methods

deepValue :: Result c -> i Source #