Beispiel #1
0
 public Train(float x, float y, Rotation rotation, float speed = 0.05f)
     : base(x, y)
 {
     Direction        = rotation;
     From             = RailUtils.OppositeRotation(rotation);
     Rotate           = RailUtils.RotationToAngle(Direction);
     this.speed       = speed;
     this.radialSpeed = 90 * speed;
 }
        /// <summary>
        /// Gets the directions for the trains current location in the grid
        /// </summary>
        /// <param name="train">The train that you would like to check its directions for</param>
        /// <returns>An array with Rotation values that indicate where the train can go. Empty array if not successfull</returns>
        public static Rotation[] GetDirections(Train train)
        {
            Point      location = train.Location;
            GridObject go       = _grid[location];

            if (go == null)
            {
                return(new Rotation[0]);
            }
            IRail rail = go as IRail;

            if (rail == null)
            {
                return(new Rotation[0]);
            }
            return(RailUtils.RailDirectionToRotation(rail.RailDirection, RailUtils.OppositeRotation(train.Direction)));
        }