jfreerails.server
Class TrainUpdater

java.lang.Object
  extended by jfreerails.server.TrainUpdater
All Implemented Interfaces:
java.io.Serializable, ServerAutomaton

public class TrainUpdater
extends java.lang.Object
implements ServerAutomaton

This class is used by the server to generate moves that add trains, move trains, and handle stops at stations. Note, the client should not use this class to build trains, instead it should request that a train gets built by setting production at an engine shop.

Author:
Luke Lindsay 13-Oct-2002
See Also:
Serialized Form

Field Summary
private  MoveReceiver moveReceiver
           
private static long serialVersionUID
           
 
Constructor Summary
TrainUpdater(MoveReceiver mr)
           
 
Method Summary
 void buildTrain(int engineTypeId, ImInts wagons, ImPoint p, FreerailsPrincipal principal, ReadOnlyWorld world)
           
(package private)  void buildTrains(ReadOnlyWorld world)
          Iterator over the stations and build trains at any that have their production field set.
private  ImmutableSchedule generateInitialSchedule(FreerailsPrincipal principal, ReadOnlyWorld world, boolean autoSchedule)
           
 void initAutomaton(MoveReceiver mr)
          Initializes the automaton with a connection to the MoveExecuter.
static Move initTarget(TrainModel train, int trainID, ImmutableSchedule currentSchedule, FreerailsPrincipal principal)
           
(package private)  void moveTrains(ReadOnlyWorld world)
           
(package private) static TrainPositionOnMap setInitialTrainPosition(TrainModel train, FreerailsPathIterator from)
           
static ImPoint[] trainPos2Tiles(TrainPositionOnMap pos)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

moveReceiver

private transient MoveReceiver moveReceiver
Constructor Detail

TrainUpdater

public TrainUpdater(MoveReceiver mr)
Method Detail

initTarget

public static Move initTarget(TrainModel train,
                              int trainID,
                              ImmutableSchedule currentSchedule,
                              FreerailsPrincipal principal)
Returns:
a move that initialises the trains schedule.

setInitialTrainPosition

static TrainPositionOnMap setInitialTrainPosition(TrainModel train,
                                                  FreerailsPathIterator from)

trainPos2Tiles

public static ImPoint[] trainPos2Tiles(TrainPositionOnMap pos)

buildTrain

public void buildTrain(int engineTypeId,
                       ImInts wagons,
                       ImPoint p,
                       FreerailsPrincipal principal,
                       ReadOnlyWorld world)

buildTrains

void buildTrains(ReadOnlyWorld world)
Iterator over the stations and build trains at any that have their production field set.


generateInitialSchedule

private ImmutableSchedule generateInitialSchedule(FreerailsPrincipal principal,
                                                  ReadOnlyWorld world,
                                                  boolean autoSchedule)

initAutomaton

public void initAutomaton(MoveReceiver mr)
Description copied from interface: ServerAutomaton
Initializes the automaton with a connection to the MoveExecuter.

Specified by:
initAutomaton in interface ServerAutomaton

moveTrains

void moveTrains(ReadOnlyWorld world)