Class Replace
java.lang.Object
VASSAL.search.AbstractImageFinder
VASSAL.counters.Decorator
VASSAL.counters.PlaceMarker
VASSAL.counters.Replace
- All Implemented Interfaces:
PropertyNameSource, PropertySource, EditablePiece, GamePiece, PropertyExporter, StateMergeable, TranslatablePiece, PersistentPropertyContainer, Auditable, ImageSearchTarget, SearchTarget, RecursionLimiter.Loopable
GamePiece trait that replaces a GamePiece with another one
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsFields inherited from class PlaceMarker
above, ABOVE, afterBurnerKey, BELOW, command, commands, copyDPsByName, description, descString, gpId, gpidSupport, key, markerSpec, markerText, matchRotation, newGpId, parameterList, PARENT_ID, PLACEMARKER_VERSION, placement, STACK_BOTTOM, STACK_TOP, version, xOffset, xOffsetExpression, yOffset, yOffsetExpressionModifier and TypeFieldDescriptionprotected booleanprotected static final intprotected NamedKeyStrokeprotected static final intprotected KeyCommandprotected KeyCommand[]protected booleanprotected Stringprotected Stringprotected Stringprotected GpIdSupportprotected NamedKeyStrokeprotected Stringprotected Stringprotected booleanprotected Stringstatic final Stringstatic final intprotected intprotected static final intprotected static final intprotected intprotected intprotected FormattedStringExpressionprotected intprotected FormattedStringExpressionFields inherited from interface PropertyExporter
LOCALIZED_NAMEFields inherited from interface TranslatablePiece
PREFIX -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionThe marker, with prototypes fully expandedSupport for a basic-name-only description introduced later, so this default retrofits it from the full description if an explicit one is not defined.A plain-English description of this type of trait/piece - includes data from fields where appropriateIf Decorator contains a description *field*, returns the current contents of it.Return Internationalization (I18n) data for this pieceprotected voidmatchTraits(GamePiece base, GamePiece marker) Match trait states from the supplied base Decorator to the marker - Markers are never matched - Dynamic Properties are matched on Name only - All other traits matched on full TypeThe "type information" of a piece or trait is information that does not change during the course of a game.myKeyEvent(KeyStroke stroke) The response of this trait alone to the given KeyStroke or the virtual keystroke of aNamedKeyStroke.protected Commandprotected voidselectMarker(GamePiece marker) Methods inherited from class PlaceMarker
addImageNamesRecursively, boundingBox, createBaseMarker, draw, getExpressionList, getGpId, getMenuTextList, getName, getNamedKeyStrokeList, getPropertyList, getShape, isMarkerStandalone, myGetKeyCommands, myGetState, mySetState, mySetType, placeMarker, placeMarker, setGpId, testEquals, updateDescString, updateGpId, updateGpIdModifier and TypeMethodDescriptionvoidImageSearchTargetAdds all images used by this component AND any children to the collectionThe marker, with prototypes unexpandedvoidDraw this GamePiecegetGpId()getName()The plain English name for this piecegetShape()booleanprotected KeyCommand[]The "state information" is "game state" information that can change during the course of a game.voidmySetState(String newState) Sets the state of this-trait-only (inverse ofDecorator.myGetState()).voidSets the information for this piece.protected Commandprotected CommandplaceMarker(boolean clearParentId) voidbooleantestEquals(Object o) Test if this Decorator's Class, Type and State are equal to another trait.voidvoidvoidMethods inherited from class Decorator
addMenuCommand, buildDescription, buildDescription, buildDescription, getCommandDesc, getCommandDescription, getComponentName, getComponentTypeName, getDecorator, getDecorators, getFormattedStringList, getI18nData, getI18nData, getId, getInner, getInnermost, getKeyCommands, getLocalizedName, getLocalizedProperty, getMap, getOuter, getOutermost, getParent, getPersistentProperty, getPosition, getProperties, getProperty, getState, getTranslation, getType, isMenuCommand, isSelected, keyEvent, mergeState, putOldProperties, repack, repack, reportDataError, reportDataError, reportDataError, setDynamicProperties, setDynamicProperties, setDynamicProperty, setId, setInner, setMap, setParent, setPersistentProperty, setPosition, setProperty, setSelected, setState, toStringModifier and TypeMethodDescriptionprotected voidaddMenuCommand(List<KeyCommand> list, String menuText, NamedKeyStroke keyStroke) If text/keystroke pair is valid, add it to the provided listprotected StringbuildDescription(String i18nKey) protected StringbuildDescription(String i18nKey, String description) Build a description of a trait of the form Type - Description Where Type is the translated trait type description and Description is a supplied additional descriptionprotected StringbuildDescription(String i18nKey, String value, String description) Build a description of a trait of the form Type - value - DescriptiongetCommandDesc(String command, NamedKeyStroke key) protected StringgetCommandDescription(String description, String command) Return the name of the GamePiece this Decorator is a part of.Return a description of the Type of trait or Component an Auditable isstatic GamePiecegetDecorator(GamePiece p, Class<?> type) getDecorators(GamePiece p, Class<?> type) protected PieceI18nDatagetI18nData(String[] commands, String[] descriptions) protected PieceI18nDatagetI18nData(String command, String description) getId()Each GamePiece must have a unique String identifiergetInner()static GamePieceprotected KeyCommand[]And the translated name for this pieceReturns a localized translation of the specified property value, if available.getMap()getOuter()static GamePiecegetProperties(Map<String, Object> result) Implement PropertyExporter.getProperties at the Decorator level.getProperty(Object key) Properties can be associated with a piece -- many may be game-specific, but others are standard, such as the LocationName property exposed by BasicPiece -- and can be read through this interface.getState()protected StringgetTranslation(String key) getType()The type of a Decorator/Trait is a composition ofDecorator.myGetType()and the type information of its inner piece member(s).protected booleanisMenuCommand(String menuText, NamedKeyStroke keystroke) protected booleanSupport caching Selection status locallyThe primary way for the piece or trait to receive events.voidmergeState(String newState, String oldState) Compute the difference betweennewStateandoldStateand apply that difference to the current state.static Command* Set the Oldxxxx properties related to movement (e.g.static voidUtility methods to allow Decorator Editors to repack themselves.static voidrepack(Configurer c) Utility methods to allow Decorator Editors to repack themselves.protected static voidreportDataError(EditablePiece piece, String message) Report a Data Error detected by a traitprotected static voidreportDataError(EditablePiece piece, String message, String data) Report a Data Error detected by a traitprotected static voidreportDataError(EditablePiece piece, String message, String data, Throwable e) Report a Data Error detected by a traitstatic CommandsetDynamicProperties(List<Parameter> parameters, GamePiece piece, PropertySource source, Auditable owner) Find and set a series of Dynamic Properties in the supplied GamePiece named propertyName and generate a Command to set it to the specified values in other clientsstatic CommandsetDynamicProperties(List<Parameter> parameters, GamePiece piece, PropertySource source, Auditable owner, AuditTrail auditSoFar) static CommandsetDynamicProperty(String propertyName, String value, GamePiece piece, PropertySource source, Auditable owner, AuditTrail audit) Find a Dynamic Property in the supplied GamePiece named propertyName and generate a Command to set it to the specified valuevoidEach GamePiece must have a unique String identifiervoidvoidvoidsetPersistentProperty(Object key, Object val) Default behavior for a Trait/Decorator is to pass requests to set persistent properties inward to the next member of the piece.voidsetPosition(Point p) voidsetProperty(Object key, Object val) Within a Trait/Decorator, the default behavior when setting a property is to handle changing our own inner/outer links directly, to cache the selection state (while also passing it inward), and to simply pass every other property change request inward.protected voidsetSelected(boolean b) Support caching Selection status locallyvoidExtract the string describing this trait's state and forward the remaining string to the inner piece.toString()Methods inherited from class AbstractImageFinder
addLocalImageNames, getAllImageNames, getLocalImageNamesModifier and TypeMethodDescriptionvoidClasses extending AbstractImageFinder should override this method in order to add the names of any image files they use to the collection.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface EditablePiece
checkTrueMoved, finishMove, finishMove, prepareMoveModifier and TypeMethodDescriptiondefault CommandCentralized method used when finishing up after a piece moves.default CommandfinishMove(Command c, boolean afterburner, boolean findmat) default CommandfinishMove(Command c, boolean afterburner, boolean findmat, boolean mark_moved) Centralized method for finishing up after a piece moves.default CommandprepareMove(Command c, boolean mark_moved) Centralized method for preparing a piece to move.Methods inherited from interface PropertyExporter
getPropertiesModifier and TypeMethodDescriptionReturn a Map of properties
-
Field Details
-
ID
- See Also:
-
-
Constructor Details
-
Replace
public Replace() -
Replace
-
-
Method Details
-
myKeyEvent
Description copied from class:DecoratorThe response of this trait alone to the given KeyStroke or the virtual keystroke of aNamedKeyStroke. NamedKeyStrokes are allocated a unique internal KeyStroke when they are first used in a module, and that KeyStroke is passed up and down the decorator stack to represent them (seeNamedKeyStroke.getKeyStroke()).- Overrides:
myKeyEventin classPlaceMarker- Parameters:
stroke- KeyStroke to apply (to apply a Named Keystroke sendNamedKeyStroke.getKeyStroke()- Returns:
- Generated Command to reproduce any changes just made to to the game state, or null if no effect
- See Also:
-
replacePiece
-
selectMarker
- Overrides:
selectMarkerin classPlaceMarker
-
getDescription
Description copied from interface:EditablePieceA plain-English description of this type of trait/piece - includes data from fields where appropriate- Specified by:
getDescriptionin interfaceEditablePiece- Overrides:
getDescriptionin classPlaceMarker
-
getBaseDescription
Description copied from interface:EditablePieceSupport for a basic-name-only description introduced later, so this default retrofits it from the full description if an explicit one is not defined.- Specified by:
getBaseDescriptionin interfaceEditablePiece- Overrides:
getBaseDescriptionin classPlaceMarker- Returns:
- name of trait/piece type, w/o additional data
-
getDescriptionField
Description copied from class:DecoratorIf Decorator contains a description *field*, returns the current contents of it.- Overrides:
getDescriptionFieldin classPlaceMarker- Returns:
- contents of "description" field, if it exists.
-
getHelpFile
- Specified by:
getHelpFilein interfaceEditablePiece- Overrides:
getHelpFilein classPlaceMarker- Returns:
- the help file for this trait
-
myGetType
Description copied from class:DecoratorThe "type information" of a piece or trait is information that does not change during the course of a game. Image file names, context menu strings, etc., all should be reflected in the type. The type information is returned serialized string form, ready to be decoded by a SequenceEncoder#decode.- Overrides:
myGetTypein classPlaceMarker- Returns:
- the type information of this trait alone
- See Also:
-
getEditor
- Specified by:
getEditorin interfaceEditablePiece- Overrides:
getEditorin classPlaceMarker- Returns:
- the configurer for this trait - the dialog which allows the editing the piece's type information. Default
configurer is a
SimplePieceEditor, but many traits will want to provide custom versions.
-
createMarker
Description copied from class:PlaceMarkerThe marker, with prototypes fully expanded- Overrides:
createMarkerin classPlaceMarker- Returns:
- new Marker
-
matchTraits
Match trait states from the supplied base Decorator to the marker - Markers are never matched - Dynamic Properties are matched on Name only - All other traits matched on full Type- Parameters:
base- Decorator in Base marker to start matchingmarker- Marker to set matched values into
-
getPropertyNames
- Specified by:
getPropertyNamesin interfacePropertyNameSource- Overrides:
getPropertyNamesin classPlaceMarker- Returns:
- List of property names "exposed" by this piece -- that are available to other Traits and components to read.
Default behavior for a Trait is not to expose any properties, but Traits which should expose some (e.g.
DynamicPropertyorMarker) would provide an array of the property names here.
-
getI18nData
Description copied from class:DecoratorReturn Internationalization (I18n) data for this piece- Specified by:
getI18nDatain interfaceTranslatablePiece- Overrides:
getI18nDatain classPlaceMarker- Returns:
- I18n data, used to hold translations of strings
-