21 lines
606 B
Swift
21 lines
606 B
Swift
//
|
|
// FamilyRequirementsManaging.swift
|
|
// FirebladeECS
|
|
//
|
|
// Created by Christian Treffs on 21.08.19.
|
|
//
|
|
|
|
public protocol FamilyRequirementsManaging {
|
|
associatedtype Components
|
|
associatedtype ComponentTypes
|
|
associatedtype EntityAndComponents
|
|
|
|
init(_ types: ComponentTypes)
|
|
|
|
var componentTypes: [Component.Type] { get }
|
|
|
|
static func components(nexus: Nexus, entityId: EntityIdentifier) -> Components
|
|
static func entityAndComponents(nexus: Nexus, entityId: EntityIdentifier) -> EntityAndComponents
|
|
static func createMember(nexus: Nexus, components: Components) -> Entity
|
|
}
|