package rescuecore2.standard.entities; import rescuecore2.worldmodel.AbstractEntity; import rescuecore2.worldmodel.EntityID; import rescuecore2.worldmodel.WorldModel; import rescuecore2.misc.Pair; /** Abstract base class for all standard entities. */ public abstract class StandardEntity extends AbstractEntity { /** Construct a StandardEntity with entirely undefined property values. @param id The ID of this entity. */ protected StandardEntity(EntityID id) { super(id); } /** StandardEntity copy constructor. @param other The StandardEntity to copy. */ protected StandardEntity(StandardEntity other) { super(other); } /** Get the location of this entity. @param world The world model to look up for entity references. @return The coordinates of this entity, or null if the location cannot be determined. */ public Pair<Integer, Integer> getLocation(WorldModel<? extends StandardEntity> world) { return null; } /** Get the URN of this entity type as an instanceof StandardEntityURN. @return A StandardEntityURN. */ public abstract StandardEntityURN getStandardURN(); @Override public final String getURN() { return getStandardURN().toString(); } }