package jadex.bdi.examples.hunterprey_classic;
/**
* Interface for the hunter-prey environment.
* Defines all operations that a hunter or prey may perform.
*/
public interface IEnvironment
{
//-------- movement ----------
/**
* Move one field upwards.
* The method will block until the current
* simulation step has finished.
* @return True, when the operation succeeded.
*/
public boolean moveUp(Creature me);
/**
* Move one field downwards.
* The method will block until the current
* simulation step has finished.
* @return True, when the operation succeeded.
*/
public boolean moveDown(Creature me);
/**
* Move one field to the left.
* The method will block until the current
* simulation step has finished.
* @return True, when the operation succeeded.
*/
public boolean moveLeft(Creature me);
/**
* Move one field to the right.
* The method will block until the current
* simulation step has finished.
* @return True, when the operation succeeded.
*/
public boolean moveRight(Creature me);
//-------- eating --------
/**
* Eat some object.
* The object has to be at the same location.
* This method does not block, and can be called multiple
* times during each simulation step.
* @param food The object.
* @return True, when the operation succeeded.
*/
public boolean eat(Creature me, WorldObject food);
//-------- vision --------
/**
* Get the current vision.
* This method does not block, and can be called multiple
* times during each simulation step.
*/
public Vision getVision(Creature me);
}