package rabbitescape.engine.behaviours; import static rabbitescape.engine.ChangeDescription.State.*; import rabbitescape.engine.Behaviour; import rabbitescape.engine.BehaviourTools; import rabbitescape.engine.ChangeDescription.State; import rabbitescape.engine.Rabbit; import rabbitescape.engine.World; public class OutOfBounds extends Behaviour { @Override public void cancel() { } @Override public boolean checkTriggered( Rabbit rabbit, World world ) { return ( rabbit.x < 0 || rabbit.x >= world.size.width || rabbit.y < 0 || rabbit.y >= world.size.height ); } @Override public State newState( BehaviourTools t, boolean triggered ) { if ( triggered ) { return RABBIT_OUT_OF_BOUNDS; } return null; } @Override public boolean behave( World world, Rabbit rabbit, State state ) { switch( state ) { case RABBIT_OUT_OF_BOUNDS: { world.changes.killRabbit( rabbit ); return true; } default: { return false; } } } }