Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Aztecs.ECS.World.Archetypes
Synopsis
- newtype ArchetypeID = ArchetypeID {
- unArchetypeId :: Int
- data Node = Node {
- nodeComponentIds :: !(Set ComponentID)
- nodeArchetype :: !Archetype
- nodeAdd :: !(Map ComponentID ArchetypeID)
- nodeRemove :: !(Map ComponentID ArchetypeID)
- data Archetypes = Archetypes {
- nodes :: !(Map ArchetypeID Node)
- archetypeIds :: !(Map (Set ComponentID) ArchetypeID)
- nextArchetypeId :: !ArchetypeID
- componentIds :: !(Map ComponentID (Set ArchetypeID))
- empty :: Archetypes
- insertArchetype :: Set ComponentID -> Node -> Archetypes -> (ArchetypeID, Archetypes)
- lookupArchetypeId :: Set ComponentID -> Archetypes -> Maybe ArchetypeID
- findArchetypeIds :: Set ComponentID -> Archetypes -> Set ArchetypeID
- lookup :: ArchetypeID -> Archetypes -> Maybe Node
- find :: Set ComponentID -> Archetypes -> Map ArchetypeID Node
- map :: Set ComponentID -> (Archetype -> (a, Archetype)) -> Archetypes -> ([a], Archetypes)
- adjustArchetype :: ArchetypeID -> (Archetype -> Archetype) -> Archetypes -> Archetypes
- insert :: Component a => EntityID -> ArchetypeID -> ComponentID -> a -> Archetypes -> (Maybe ArchetypeID, Archetypes)
- remove :: Component a => EntityID -> ArchetypeID -> ComponentID -> Archetypes -> (Maybe (a, ArchetypeID), Archetypes)
Documentation
newtype ArchetypeID Source #
Archetype
ID.
Constructors
ArchetypeID | |
Fields
|
Instances
Show ArchetypeID Source # | |
Defined in Aztecs.ECS.World.Archetypes Methods showsPrec :: Int -> ArchetypeID -> ShowS # show :: ArchetypeID -> String # showList :: [ArchetypeID] -> ShowS # | |
NFData ArchetypeID Source # | |
Defined in Aztecs.ECS.World.Archetypes Methods rnf :: ArchetypeID -> () # | |
Eq ArchetypeID Source # | |
Defined in Aztecs.ECS.World.Archetypes | |
Ord ArchetypeID Source # | |
Defined in Aztecs.ECS.World.Archetypes 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 # |
Node in Archetypes
.
Constructors
Node | |
Fields
|
Instances
Generic Node Source # | |
Show Node Source # | |
NFData Node Source # | |
Defined in Aztecs.ECS.World.Archetypes | |
type Rep Node Source # | |
Defined in Aztecs.ECS.World.Archetypes type Rep Node = D1 ('MetaData "Node" "Aztecs.ECS.World.Archetypes" "aztecs-0.8.0-5YWGoxTs0Vw9iciqZAe9GO" 'False) (C1 ('MetaCons "Node" 'PrefixI 'True) ((S1 ('MetaSel ('Just "nodeComponentIds") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Set ComponentID)) :*: S1 ('MetaSel ('Just "nodeArchetype") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Archetype)) :*: (S1 ('MetaSel ('Just "nodeAdd") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map ComponentID ArchetypeID)) :*: S1 ('MetaSel ('Just "nodeRemove") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map ComponentID ArchetypeID))))) |
data Archetypes Source #
Archetype
graph.
Constructors
Archetypes | |
Fields
|
Instances
empty :: Archetypes Source #
Empty Archetypes
.
insertArchetype :: Set ComponentID -> Node -> Archetypes -> (ArchetypeID, Archetypes) Source #
Insert an archetype by its set of ComponentID
s.
lookupArchetypeId :: Set ComponentID -> Archetypes -> Maybe ArchetypeID Source #
findArchetypeIds :: Set ComponentID -> Archetypes -> Set ArchetypeID Source #
Find ArchetypeID
s containing a set of ComponentID
s.
lookup :: ArchetypeID -> Archetypes -> Maybe Node Source #
find :: Set ComponentID -> Archetypes -> Map ArchetypeID Node Source #
Lookup Archetype
s containing a set of ComponentID
s.
map :: Set ComponentID -> (Archetype -> (a, Archetype)) -> Archetypes -> ([a], Archetypes) Source #
Map over Archetype
s containing a set of ComponentID
s.
adjustArchetype :: ArchetypeID -> (Archetype -> Archetype) -> Archetypes -> Archetypes Source #
insert :: Component a => EntityID -> ArchetypeID -> ComponentID -> a -> Archetypes -> (Maybe ArchetypeID, Archetypes) Source #
Insert a component into an entity with its ComponentID
.
remove :: Component a => EntityID -> ArchetypeID -> ComponentID -> Archetypes -> (Maybe (a, ArchetypeID), Archetypes) Source #