コード例 #1
0
        /// <summary>
        /// Add information from Trainpaths
        /// </summary>
        /// <param name="trackViewer"></param>
        private void AddTrainpathStatus(TrackViewer trackViewer)
        {
            if (Properties.Settings.Default.statusShowTrainpath && (trackViewer.PathEditor != null))
            {
                if (trackViewer.PathEditor.HasValidPath)
                {
                    //gather some info on path status
                    List <string> statusItems = new List <string>();

                    if (trackViewer.PathEditor.HasEndingPath)
                    {
                        statusItems.Add("good end");
                    }
                    if (trackViewer.PathEditor.HasBrokenPath)
                    {
                        statusItems.Add("broken");
                    }
                    if (trackViewer.PathEditor.HasModifiedPath)
                    {
                        statusItems.Add("modified");
                    }
                    if (trackViewer.PathEditor.HasStoredTail)
                    {
                        statusItems.Add("stored tail");
                    }

                    string pathStatus = String.Join(", ", statusItems.ToArray());

                    ORTS.TrackViewer.Editing.TrainpathNode curNode = trackViewer.PathEditor.CurrentNode;

                    statusAdditional.Text += string.Format(System.Globalization.CultureInfo.CurrentCulture,
                                                           " {0} ({4}): TVNs=[{1} {2}] (type={3})",
                                                           trackViewer.PathEditor.FileName, curNode.NextMainTvnIndex, curNode.NextSidingTvnIndex,
                                                           curNode.NodeType, pathStatus);

                    if (curNode.IsBroken)
                    {
                        statusAdditional.Text += string.Format(System.Globalization.CultureInfo.CurrentCulture,
                                                               " Broken: {0} ", curNode.BrokenStatusString());
                    }
                    TrainpathVectorNode curVectorNode = curNode as TrainpathVectorNode;
                    if (curVectorNode != null && curNode.NodeType == TrainpathNodeType.Stop)
                    {
                        statusAdditional.Text += string.Format(System.Globalization.CultureInfo.CurrentCulture,
                                                               " (wait-time={0}s)",
                                                               curVectorNode.WaitTimeS);
                    }
                }
                else
                {
                    statusAdditional.Text += "Invalid path";
                }
            }
        }