fireblade-ecs/Sources/FirebladeECS/Component.swift

21 lines
571 B
Swift

//
// Component.swift
// FirebladeECS
//
// Created by Christian Treffs on 08.10.17.
//
/// **Component**
///
/// A component represents the raw data for one aspect of the object,
/// and how it interacts with the world.
public protocol Component: class {
static var identifier: ComponentIdentifier { get }
var identifier: ComponentIdentifier { get }
}
extension Component {
public static var identifier: ComponentIdentifier { return ComponentIdentifier(Self.self) }
@inlinable public var identifier: ComponentIdentifier { return Self.identifier }
}