/*
*
* Copyright (c) 2000-2007 by Rodney Kinney
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License (LGPL) as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, copies are available
* at http://www.opensource.org.
*/
package VASSAL.build.module;
import java.awt.Component;
/**
* Represents a step during the initialization of a game in which the player must specify some information See
* {@link GameState#addGameSetupStep(SetupStep)}
*
* @author rkinney
*/
public interface GameSetupStep {
/** @return true if this step needs no further information, false if the player should be prompted for more information */
boolean isFinished();
/** A human-understandable description of this step */
String getStepTitle();
/** A GUI component that prompts the player for the needed information. If null, then no further information is needed */
Component getControls();
/** Apply the information gathered via the component to the game in progress */
void finish();
}