fireblade-ecs/Sources/FirebladeECS/FamilyRequirementsManaging....

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
}