Ejemplo n.º 1
0
    public void SetPosition(RailPathPosition newPos)
    {
        // Train position
        if (newPos.Segment != RailPosition.Segment)
        {
            UpdateAdjacentSegments(newPos.Segment);
        }
        RailPosition.SetPosition(newPos);

        // Wagon positions
        float tmpDistance = 0f;

        foreach (Wagon w in Wagons)
        {
            RailPathPosition wagonPosition = GetBackwardsPathPosition(RailPosition, tmpDistance);
            w.SetPosition(wagonPosition);
            tmpDistance += Wagon.Length + WagonConnectionLength;
        }


        UpdatePosition();
    }
Ejemplo n.º 2
0
 public void SetPosition(RailPathPosition position)
 {
     FrameMoveVector = position.GetWorldPosition() - RailPosition.GetWorldPosition();
     RailPosition.SetPosition(position);
     UpdatePosition(true);
 }