jfreerails.move
Class ChangeTrackPieceCompositeMove

java.lang.Object
  extended by jfreerails.move.CompositeMove
      extended by jfreerails.move.ChangeTrackPieceCompositeMove
All Implemented Interfaces:
java.io.Serializable, MapUpdateMove, Move, TrackMove, FreerailsSerializable

public final class ChangeTrackPieceCompositeMove
extends CompositeMove
implements TrackMove, MapUpdateMove

This Move changes adds, removes, or upgrades the track between two tiles.

Author:
lindsal
See Also:
Serialized Form

Field Summary
private  FreerailsPrincipal builder
           
private  int h
           
private static long serialVersionUID
           
private  int w
           
private  int x
           
private  int y
           
 
Constructor Summary
private ChangeTrackPieceCompositeMove(TrackMove a, TrackMove b, FreerailsPrincipal fp)
           
 
Method Summary
protected  MoveStatus compositeTest(World world, FreerailsPrincipal p)
          Subclasses may override this method to perform tests which pass or fail depending on the combination of moves making up this composite move.
static int findRuleID(TrackRule r, ReadOnlyWorld w)
           
static ChangeTrackPieceCompositeMove generateBuildTrackMove(ImPoint from, Step direction, TrackRule ruleA, TrackRule ruleB, ReadOnlyWorld w, FreerailsPrincipal principal)
           
static ChangeTrackPieceCompositeMove generateRemoveTrackMove(ImPoint from, Step direction, ReadOnlyWorld w, FreerailsPrincipal principal)
           
private static ChangeTrackPieceMove getBuildTrackChangeTrackPieceMove(ImPoint p, Step direction, TrackRule trackRule, ReadOnlyWorld w, FreerailsPrincipal principle)
           
static int getOwner(FreerailsPrincipal p, ReadOnlyWorld w)
           
private static TrackMove getRemoveTrackChangeTrackPieceMove(ImPoint p, Step direction, ReadOnlyWorld w, FreerailsPrincipal principal)
           
private static TrackPiece getTrackPieceWhenOldTrackPieceIsNull(Step direction, TrackRule trackRule, int owner, int ruleNumber)
           
 java.awt.Rectangle getUpdatedTiles()
           
(package private) static boolean hasAnyTrackBeenBuilt(ReadOnlyWorld world, FreerailsPrincipal principal)
          Returns true if some track has been built.
private static boolean mustConnectToExistingTrack(ReadOnlyWorld world)
           
 
Methods inherited from class jfreerails.move.CompositeMove
doMove, equals, getMove, getMoves, hashCode, size, toString, tryDoMove, tryUndoMove, undoMove
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface jfreerails.move.Move
doMove, tryDoMove, tryUndoMove, undoMove
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

x

private final int x

y

private final int y

w

private final int w

h

private final int h

builder

private final FreerailsPrincipal builder
Constructor Detail

ChangeTrackPieceCompositeMove

private ChangeTrackPieceCompositeMove(TrackMove a,
                                      TrackMove b,
                                      FreerailsPrincipal fp)
Method Detail

generateBuildTrackMove

public static ChangeTrackPieceCompositeMove generateBuildTrackMove(ImPoint from,
                                                                   Step direction,
                                                                   TrackRule ruleA,
                                                                   TrackRule ruleB,
                                                                   ReadOnlyWorld w,
                                                                   FreerailsPrincipal principal)

generateRemoveTrackMove

public static ChangeTrackPieceCompositeMove generateRemoveTrackMove(ImPoint from,
                                                                    Step direction,
                                                                    ReadOnlyWorld w,
                                                                    FreerailsPrincipal principal)
                                                             throws java.lang.Exception
Throws:
java.lang.Exception

getBuildTrackChangeTrackPieceMove

private static ChangeTrackPieceMove getBuildTrackChangeTrackPieceMove(ImPoint p,
                                                                      Step direction,
                                                                      TrackRule trackRule,
                                                                      ReadOnlyWorld w,
                                                                      FreerailsPrincipal principle)

getRemoveTrackChangeTrackPieceMove

private static TrackMove getRemoveTrackChangeTrackPieceMove(ImPoint p,
                                                            Step direction,
                                                            ReadOnlyWorld w,
                                                            FreerailsPrincipal principal)
                                                     throws java.lang.Exception
Throws:
java.lang.Exception

getTrackPieceWhenOldTrackPieceIsNull

private static TrackPiece getTrackPieceWhenOldTrackPieceIsNull(Step direction,
                                                               TrackRule trackRule,
                                                               int owner,
                                                               int ruleNumber)

getUpdatedTiles

public java.awt.Rectangle getUpdatedTiles()
Specified by:
getUpdatedTiles in interface MapUpdateMove

getOwner

public static int getOwner(FreerailsPrincipal p,
                           ReadOnlyWorld w)

hasAnyTrackBeenBuilt

static boolean hasAnyTrackBeenBuilt(ReadOnlyWorld world,
                                    FreerailsPrincipal principal)
Returns true if some track has been built.


mustConnectToExistingTrack

private static boolean mustConnectToExistingTrack(ReadOnlyWorld world)

compositeTest

protected MoveStatus compositeTest(World world,
                                   FreerailsPrincipal p)
Description copied from class: CompositeMove
Subclasses may override this method to perform tests which pass or fail depending on the combination of moves making up this composite move.

Overrides:
compositeTest in class CompositeMove

findRuleID

public static int findRuleID(TrackRule r,
                             ReadOnlyWorld w)