| Copyright | (c) Matt Hunzinger 2025 |
|---|---|
| License | BSD-style (see the LICENSE file in the distribution) |
| Maintainer | matt@hunzinger.me |
| Stability | provisional |
| Portability | non-portable (GHC extensions) |
| Safe Haskell | None |
| Language | Haskell2010 |
Aztecs.ECS.World.Archetypes
Description
Synopsis
- newtype ArchetypeID = ArchetypeID {
- unArchetypeId :: Int
- data Node (m :: Type -> Type) = Node {
- nodeComponentIds :: !(Set ComponentID)
- nodeArchetype :: !(Archetype m)
- data Archetypes (m :: Type -> Type) = Archetypes {
- nodes :: !(Map ArchetypeID (Node m))
- archetypeIds :: !(Map (Set ComponentID) ArchetypeID)
- nextArchetypeId :: !ArchetypeID
- componentIds :: !(Map ComponentID (Set ArchetypeID))
- empty :: forall (m :: Type -> Type). Archetypes m
- insertArchetype :: forall (m :: Type -> Type). Set ComponentID -> Node m -> Archetypes m -> (ArchetypeID, Archetypes m)
- lookupArchetypeId :: forall (m :: Type -> Type). Set ComponentID -> Archetypes m -> Maybe ArchetypeID
- findArchetypeIds :: forall (m :: Type -> Type). Set ComponentID -> Archetypes m -> Set ArchetypeID
- lookup :: forall (m :: Type -> Type). ArchetypeID -> Archetypes m -> Maybe (Node m)
- find :: forall (m :: Type -> Type). Set ComponentID -> Archetypes m -> Map ArchetypeID (Node m)
- map :: forall (m :: Type -> Type) a. Set ComponentID -> (Archetype m -> (a, Archetype m)) -> Archetypes m -> ([a], Archetypes m)
- adjustArchetype :: forall (m :: Type -> Type). ArchetypeID -> (Archetype m -> Archetype m) -> Archetypes m -> Archetypes m
- insert :: forall (m :: Type -> Type). Monad m => EntityID -> ArchetypeID -> Set ComponentID -> DynamicBundle m -> Archetypes m -> (Maybe ArchetypeID, Archetypes m, Access m ())
- remove :: forall (m :: Type -> Type) a. Component m a => EntityID -> ArchetypeID -> ComponentID -> Archetypes m -> (Maybe (a, ArchetypeID), Archetypes m, Access m ())
Documentation
newtype ArchetypeID Source #
Archetype ID.
Constructors
| ArchetypeID | |
Fields
| |
Instances
| Show ArchetypeID Source # | |
Defined in Aztecs.ECS.World.Archetypes.Internal Methods showsPrec :: Int -> ArchetypeID -> ShowS # show :: ArchetypeID -> String # showList :: [ArchetypeID] -> ShowS # | |
| Eq ArchetypeID Source # | |
Defined in Aztecs.ECS.World.Archetypes.Internal | |
| Ord ArchetypeID Source # | |
Defined in Aztecs.ECS.World.Archetypes.Internal Methods compare :: ArchetypeID -> ArchetypeID -> Ordering # (<) :: ArchetypeID -> ArchetypeID -> Bool # (<=) :: ArchetypeID -> ArchetypeID -> Bool # (>) :: ArchetypeID -> ArchetypeID -> Bool # (>=) :: ArchetypeID -> ArchetypeID -> Bool # max :: ArchetypeID -> ArchetypeID -> ArchetypeID # min :: ArchetypeID -> ArchetypeID -> ArchetypeID # | |
data Node (m :: Type -> Type) Source #
Node in Archetypes.
Constructors
| Node | |
Fields
| |
Instances
data Archetypes (m :: Type -> Type) Source #
Archetype map.
Constructors
| Archetypes | |
Fields
| |
Instances
| Generic (Archetypes m) Source # | |||||
Defined in Aztecs.ECS.World.Archetypes.Internal Associated Types
| |||||
| Show (Archetypes m) Source # | |||||
Defined in Aztecs.ECS.World.Archetypes.Internal Methods showsPrec :: Int -> Archetypes m -> ShowS # show :: Archetypes m -> String # showList :: [Archetypes m] -> ShowS # | |||||
| type Rep (Archetypes m) Source # | |||||
Defined in Aztecs.ECS.World.Archetypes.Internal type Rep (Archetypes m) = D1 ('MetaData "Archetypes" "Aztecs.ECS.World.Archetypes.Internal" "aztecs-0.16.0-1t3LRuVnzUqKpg58E4sSVq" 'False) (C1 ('MetaCons "Archetypes" 'PrefixI 'True) ((S1 ('MetaSel ('Just "nodes") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map ArchetypeID (Node m))) :*: S1 ('MetaSel ('Just "archetypeIds") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map (Set ComponentID) ArchetypeID))) :*: (S1 ('MetaSel ('Just "nextArchetypeId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ArchetypeID) :*: S1 ('MetaSel ('Just "componentIds") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map ComponentID (Set ArchetypeID)))))) | |||||
empty :: forall (m :: Type -> Type). Archetypes m Source #
Empty Archetypes.
insertArchetype :: forall (m :: Type -> Type). Set ComponentID -> Node m -> Archetypes m -> (ArchetypeID, Archetypes m) Source #
Insert an archetype by its set of ComponentIDs.
lookupArchetypeId :: forall (m :: Type -> Type). Set ComponentID -> Archetypes m -> Maybe ArchetypeID Source #
Lookup an ArchetypeID by its set of ComponentIDs.
findArchetypeIds :: forall (m :: Type -> Type). Set ComponentID -> Archetypes m -> Set ArchetypeID Source #
Find ArchetypeIDs containing a set of ComponentIDs.
lookup :: forall (m :: Type -> Type). ArchetypeID -> Archetypes m -> Maybe (Node m) Source #
Lookup an Archetype by its ArchetypeID.
find :: forall (m :: Type -> Type). Set ComponentID -> Archetypes m -> Map ArchetypeID (Node m) Source #
Lookup Archetypes containing a set of ComponentIDs.
map :: forall (m :: Type -> Type) a. Set ComponentID -> (Archetype m -> (a, Archetype m)) -> Archetypes m -> ([a], Archetypes m) Source #
Map over Archetypes containing a set of ComponentIDs.
adjustArchetype :: forall (m :: Type -> Type). ArchetypeID -> (Archetype m -> Archetype m) -> Archetypes m -> Archetypes m Source #
Adjust an Archetype by its ArchetypeID.
insert :: forall (m :: Type -> Type). Monad m => EntityID -> ArchetypeID -> Set ComponentID -> DynamicBundle m -> Archetypes m -> (Maybe ArchetypeID, Archetypes m, Access m ()) Source #
Insert a component into an entity with its ComponentID.
remove :: forall (m :: Type -> Type) a. Component m a => EntityID -> ArchetypeID -> ComponentID -> Archetypes m -> (Maybe (a, ArchetypeID), Archetypes m, Access m ()) Source #
Remove a component from an entity with its ComponentID.