using EcsRx.Entities;
namespace EcsRx.Blueprints
{
///
/// Blueprints are a pre-defined setup routine for an entity, this is meant to setup required
/// components and default values. Such as if you wanted to setup an NPC who needed both Moveable, Talkable
/// components and default values around movement speed etc.
///
///
/// You *can* apply multiple blueprints after an entity has been created, but this is meant for you to be able to
/// have a mixin style approach to setting up entity config data, it is not meant to replace an
/// ISetupSystem which will do more than just setup entity config but also run logic on the component
///
public interface IBlueprint
{
///
/// Applies the given blueprint to the entity
///
/// The entity to be configured
void Apply(IEntity entity);
}
}