/******************************************************************************* * Copyright (c) 2001, 2010 Mathew A. Nelson and Robocode contributors * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://robocode.sourceforge.net/license/epl-v10.html * * Contributors: * Pavel Savara * - Initial implementation * Flemming N. Larsen * - Javadocs *******************************************************************************/ package robocode.robotinterfaces; import robocode.robotinterfaces.peer.IBasicRobotPeer; /** * A robot interface for creating a basic type of robot like {@link robocode.Robot} * that is able to receive common robot events, but not interactive events as * with the {@link robocode.Robot} class. * A basic robot allows blocking calls only and cannot handle custom events nor * writes to the file system like an advanced robot. * * @author Pavel Savara (original) * @author Flemming N. Larsen (javadoc) * @see robocode.Robot * @see IJuniorRobot * @see IInteractiveRobot * @see IAdvancedRobot * @see ITeamRobot * @since 1.6 */ public interface IBasicRobot { /** * This method is called by the game to invoke the * {@link java.lang.Runnable#run() run()} method of your robot, where the program * of your robot is implemented. * * @return a runnable implementation * @see java.lang.Runnable#run() * @since 1.6 */ Runnable getRobotRunnable(); /** * This method is called by the game to notify this robot about basic * robot event. Hence, this method must be implemented so it returns your * {@link IBasicEvents} listener. * * @return listener to basic events or {@code null} if this robot should * not receive the notifications. * @since 1.6 */ IBasicEvents getBasicEventListener(); /** * Do not call this method! Your robot will simply stop interacting with * the game. * <p/> * This method is called by the game. A robot peer is the object that deals * with game mechanics and rules, and makes sure your robot abides by them. * * @param peer the robot peer supplied by the game */ void setPeer(IBasicRobotPeer peer); /** * Do not call this method! * <p/> * This method is called by the game when setting the output stream for your * robot. * * @param out the new output print stream for this robot * @since 1.6 */ void setOut(java.io.PrintStream out); }