package rescuecore2.registry;
import rescuecore2.worldmodel.Entity;
import rescuecore2.worldmodel.EntityID;
/**
A factory for vending Entities.
*/
public interface EntityFactory {
/**
Create a new Entity.
@param urn The urn of the entity to create.
@param id The id of the new entity.
@return A new Entity of the correct type.
@throws IllegalArgumentException If the urn is not recognised.
*/
Entity makeEntity(String urn, EntityID id);
/**
Get all entity urns understood by this factory.
@return All entity urns.
*/
String[] getKnownEntityURNs();
}