VASSAL.counters
Interface GamePiece

All Known Subinterfaces:
EditablePiece
All Known Implementing Classes:
Decorator, Stack

public interface GamePiece

Basic class for representing a physical component of the game


Method Summary
 java.awt.Rectangle boundingBox()
          The area which this GamePiece occupies when drawn at the point (0,0)
 void draw(java.awt.Graphics g, int x, int y, java.awt.Component obs, double zoom)
          Draw this GamePiece
 java.lang.String getId()
          Each GamePiece must have a unique String identifier
 Map getMap()
           
 java.lang.String getName()
          The plain English name for this piece
 Stack getParent()
           
 java.awt.Point getPosition()
           
 java.lang.Object getProperty(java.lang.Object key)
           
 java.awt.Shape getShape()
          The shape of the piece from the user's viewpoint.
 java.lang.String getState()
          The state information is information that can change during the course of a game.
 java.lang.String getType()
          The type information is information that does not change during the course of a game.
 Command keyEvent(javax.swing.KeyStroke stroke)
          Keyboard events are forward to this method when a piece is selected The GamePiece can respond in any way it likes
 void setId(java.lang.String id)
           
 void setMap(Map map)
          Each GamePiece belongs to a single Map
 void setParent(Stack s)
           
 void setPosition(java.awt.Point p)
           
 void setProperty(java.lang.Object key, java.lang.Object val)
          Other properties, possibly game-specific, can be associated with a piece.
 void setState(java.lang.String newState)
           
 

Method Detail

setMap

public void setMap(Map map)
Each GamePiece belongs to a single Map

getMap

public Map getMap()

draw

public void draw(java.awt.Graphics g,
                 int x,
                 int y,
                 java.awt.Component obs,
                 double zoom)
Draw this GamePiece
Parameters:
g -  
x - x-location of the center of the piece
y - y-location of the center of the piece
obs - the Component on which this piece is being drawn
zoom - the scaling factor.

getPosition

public java.awt.Point getPosition()
Returns:
the location of this piece on its owning Map

setPosition

public void setPosition(java.awt.Point p)

boundingBox

public java.awt.Rectangle boundingBox()
The area which this GamePiece occupies when drawn at the point (0,0)

getShape

public java.awt.Shape getShape()
The shape of the piece from the user's viewpoint. This defines the area in which the user must click to select or move the piece, for example. Like boundingBox(), it assumes the position is (0,0) and must be translated to the actual location where the piece is being drawn.

getParent

public Stack getParent()
Returns:
the Stack to which this piece belongs, or null if it doesn't belong to a stack.

setParent

public void setParent(Stack s)

keyEvent

public Command keyEvent(javax.swing.KeyStroke stroke)
Keyboard events are forward to this method when a piece is selected The GamePiece can respond in any way it likes
Returns:
a Command that, when executed, will invoke the same response. Usually a ChangePiece command.
See Also:
ForwardToKeyBuffer

getName

public java.lang.String getName()
The plain English name for this piece

getId

public java.lang.String getId()
Each GamePiece must have a unique String identifier
See Also:
GameState.getNewPieceId()

setId

public void setId(java.lang.String id)

getType

public java.lang.String getType()
The type information is information that does not change during the course of a game. Image file names, popup menu command names, etc., all should be reflected in the type.
See Also:
BasicCommandEncoder

getState

public java.lang.String getState()
The state information is information that can change during the course of a game. State information is saved when the game is saved and is transferred between players on the server. For example, the relative order of pieces in a stack is state information, but whether the stack is expanded is not

setState

public void setState(java.lang.String newState)

setProperty

public void setProperty(java.lang.Object key,
                        java.lang.Object val)
Other properties, possibly game-specific, can be associated with a piece. The properties may or may not need to be encoded in the piece's getState() method.

getProperty

public java.lang.Object getProperty(java.lang.Object key)