Class GpIdChecker

java.lang.Object
VASSAL.build.GpIdChecker

public class GpIdChecker extends Object
Build a cross-reference of all GpId-able elements in a module or ModuleExtension, Check for missing, duplicate or illegal GamePieceId's Update if necessary
  • Field Details

    • gpIdSupport

      protected GpIdSupport gpIdSupport
    • maxId

      protected int maxId
    • noGpIdMatch

      protected int noGpIdMatch
    • extensionsLoaded

      protected boolean extensionsLoaded
  • Constructor Details

    • GpIdChecker

      public GpIdChecker()
    • GpIdChecker

      public GpIdChecker(GpIdSupport gpIdSupport)
    • GpIdChecker

      public GpIdChecker(Set<String> options)
  • Method Details

    • getNoGpIdMatch

      public int getNoGpIdMatch()
    • useLabelerName

      public boolean useLabelerName()
    • useLayerName

      public boolean useLayerName()
    • useRotateName

      public boolean useRotateName()
    • useName

      public boolean useName()
    • fixGPID

      public boolean fixGPID()
    • add

      public void add(PieceSlot pieceSlot)
      Add a PieceSlot to our cross-reference and any PlaceMarker traits it contains.
      Parameters:
      pieceSlot - PieceSlot to add to cross-reference
    • add

      public void add(PrototypeDefinition prototype)
      Add any PieceSlots contained in traits in a Prototype Definition
      Parameters:
      prototype - Prototype Definition to check
    • checkTrait

      protected void checkTrait(GamePiece gp)
      Check for PlaceMarker traits in a GamePiece and add them to the cross-reference
      Parameters:
      gp - GamePiece to check
    • checkTrait

      protected void checkTrait(GamePiece gp, PrototypeDefinition prototype, GamePiece definition)
    • testGpId

      protected void testGpId(String id, VASSAL.build.GpIdChecker.SlotElement element)
      Validate a GamePieceId. - non-null - Integer - Not a duplicate of any other GpId Keep a list of the good Slots and the slots with errors. Also track the maximum GpId
      Parameters:
      id - GpId to test
      element - Containing SlotElement
    • hasErrors

      public boolean hasErrors()
      Where any errors found?
      Returns:
      Error count
    • fixErrors

      public void fixErrors()
      Repair any errors - Update the next GpId in the module if necessary - Generate new GpId's for slots with errors.
    • createUpdatedPiece

      public GamePiece createUpdatedPiece(GamePiece oldPiece)
      Locate the SlotElement that matches oldPiece and return a new GamePiece created from that Slot. Match by ID, if it does not work, match by name if option is ON
      Parameters:
      oldPiece - Old GamePiece
      Returns:
      Newly created GamePiece
    • copyState

      protected void copyState(GamePiece oldPiece, GamePiece newPiece)
      Copy as much state information as possible from the old piece to the new piece
      Parameters:
      oldPiece - Piece to copy state from
      newPiece - Piece to copy state to
    • findState

      protected String findState(GamePiece oldPiece, GamePiece pNew, Decorator decoratorNewPc, Class<? extends GamePiece> classToFind)
      Locate a Decorator in the old piece that has the exact same type as the new Decorator and return it's state
      Parameters:
      oldPiece - Old piece to search
      classToFind - Class to match
      Returns:
      state of located matching Decorator