/*
* $Id$
*
* Copyright (c) 2000-2003 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.counters;
/**
* Defines the properties expected to be defined in each GamePiece
*/
public interface Properties {
/**
* Return Boolean.TRUE if the piece cannot be seen by the user
*/
public static final String INVISIBLE_TO_ME = "Invisible";
public static final String INVISIBLE_TO_OTHERS = "InvisibleToOthers";
/**
* Return Boolean.TRUE if the piece's identity is not known to other players
*/
public static final String OBSCURED_TO_OTHERS = "ObscuredToOthers";
/**
* Return Boolean.TRUE if the piece's identity is not known to the user
*/
public static final String OBSCURED_TO_ME = "Obscured";
/**
* If a piece is obscured to other players, return a String identifying the player who obscured it
*
* @see VASSAL.build.GameModule#getUserId
*/
public static final String OBSCURED_BY = Obscurable.ID;
/**
* If non-null, then return an instance of {@link EventFilter}. The piece will not respond to selection events if the
* filter rejects them
*/
public static final String SELECT_EVENT_FILTER = "selectEventFilter";
/**
* If non-null, then return an instance of {@link EventFilter}. The piece will not respond to move events if the
* filter rejects them
*/
public static final String MOVE_EVENT_FILTER = "moveEventFilter";
/**
* If a piece is hidden to other players, return a STring identifying the player who hit it
*
* @see VASSAL.build.GameModule#getUserId
*/
public static final String HIDDEN_BY = Hideable.HIDDEN_BY;
/**
* Return Boolean.TRUE if the piece behaves more like a terrain feature than a playing piece
*/
public static final String TERRAIN = "Immobile";
/**
* Return Boolean.TRUE if the piece should ignore map grids when being moved
*/
public static final String IGNORE_GRID = "IgnoreGrid";
/** Return Boolean.TRUE if the piece does not form stacks */
public static final String NO_STACK = "NoStack";
/**
* Return Boolean.TRUE if the piece has been marked as selected
*/
public static final String SELECTED = "Selected";
/**
* Return a KeyCommand[] object representing the popup menu equivalencies for the key commands recognized by this
* piece
*/
public static final String KEY_COMMANDS = "KeyCommands";
/**
* If this piece is a Decorator, return the decorated piece
*/
public static final String INNER = "Inner";
/**
* If this piece decorated by a Decorator, return the Decorator
*/
public static final String OUTER = "Outer";
/**
* Return Boolean.TRUE if this piece has Restricted Access
*/
public static final String RESTRICTED = "Restricted";
/**
* Return Boolean.TRUE if this piece has movement restricted by a Restricted Access trait */
public static final String RESTRICTED_MOVEMENT = "RestrictedMovement";
/** Return Boolean.TRUE if this piece has been moved */
public static final String MOVED = "Moved";
/** Used to store a duplicate of the target piece at some point in time */
public static final String SNAPSHOT = "snapshot";
/**
* If Boolean.TRUE, then treat the piece as if it were not rotated. This effects the value returned by
* {@link GamePiece#getShape} and the way the piece is drawn.
*
* @see FreeRotator
*/
public static final String USE_UNROTATED_SHAPE = "useUnrotatedShape";
/**
* Return a String representing the visible features of the piece. If this String changes value, then the piece should
* be refreshed
*/
public static final String VISIBLE_STATE = "visibleState";
/** Return Boolean.TRUE if the piece can never be moved */
public static final String NON_MOVABLE = "cannotMove";
/** Global Piece Id */
public static final String PIECE_ID = "PieceId";
}