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(); }
public void SetPosition(RailPathPosition position) { FrameMoveVector = position.GetWorldPosition() - RailPosition.GetWorldPosition(); RailPosition.SetPosition(position); UpdatePosition(true); }