package rescuecore2.standard.entities;
import rescuecore2.registry.AbstractEntityFactory;
import rescuecore2.worldmodel.EntityID;
/**
EntityFactory that builds standard Robocup Standard objects.
*/
public final class StandardEntityFactory extends AbstractEntityFactory<StandardEntityURN> {
/**
Singleton class. Use this instance to do stuff.
*/
public static final StandardEntityFactory INSTANCE = new StandardEntityFactory();
/**
Singleton class: private constructor.
*/
private StandardEntityFactory() {
super(StandardEntityURN.class);
}
@Override
public StandardEntity makeEntity(StandardEntityURN urn, EntityID id) {
switch (urn) {
case WORLD:
return new World(id);
case ROAD:
return new Road(id);
case BUILDING:
return new Building(id);
case BLOCKADE:
return new Blockade(id);
case REFUGE:
return new Refuge(id);
case FIRE_STATION:
return new FireStation(id);
case AMBULANCE_CENTRE:
return new AmbulanceCentre(id);
case POLICE_OFFICE:
return new PoliceOffice(id);
case CIVILIAN:
return new Civilian(id);
case FIRE_BRIGADE:
return new FireBrigade(id);
case AMBULANCE_TEAM:
return new AmbulanceTeam(id);
case POLICE_FORCE:
return new PoliceForce(id);
default:
throw new IllegalArgumentException("Unrecognised entity urn: " + urn);
}
}
}