package forge.gui.input; import forge.AllZone; import forge.Card; import forge.Player; import forge.PlayerZone; /** * <p>Abstract Input class.</p> * * @author Forge * @version $Id: $ */ public abstract class Input implements java.io.Serializable { /** Constant <code>serialVersionUID=-6539552513871194081L</code> */ private static final long serialVersionUID = -6539552513871194081L; private boolean isFree = false; //showMessage() is always the first method called /** * <p>showMessage.</p> */ public void showMessage() { AllZone.getDisplay().showMessage("Blank Input"); } /** * <p>selectCard.</p> * * @param c a {@link forge.Card} object. * @param zone a {@link forge.PlayerZone} object. */ public void selectCard(Card c, PlayerZone zone) { } /** * <p>selectPlayer.</p> * * @param player a {@link forge.Player} object. */ public void selectPlayer(final Player player) { } /** * <p>selectButtonOK.</p> */ public void selectButtonOK() { } /** * <p>selectButtonCancel.</p> */ public void selectButtonCancel() { } //helper methods, since they are used alot //to be used by anything in CardFactory like SetTargetInput //NOT TO BE USED by Input_Main or any of the "regular" Inputs objects that are not set using AllZone.getInputControl().setInput(Input) /** * <p>stop.</p> */ final public void stop() { //clears a "temp" Input like Input_PayManaCost if there is one AllZone.getInputControl().resetInput(); if (AllZone.getPhase().isNeedToNextPhase()) { // mulligan needs this to move onto next phase AllZone.getPhase().setNeedToNextPhase(false); AllZone.getPhase().nextPhase(); } } //exits the "current" Input and sets the next Input /** * <p>stopSetNext.</p> * * @param in a {@link forge.gui.input.Input} object. */ final public void stopSetNext(Input in) { stop(); AllZone.getInputControl().setInput(in); } /** {@inheritDoc} */ @Override public String toString() { return "blank"; }//returns the Input name like "EmptyStack" /** * <p>setFree.</p> * * @param isFree a boolean. */ public void setFree(boolean isFree) { this.isFree = isFree; } /** * <p>isFree.</p> * * @return a boolean. */ public boolean isFree() { return isFree; } }