Esempio n. 1
0
 void HighlightPartsOff(HighlightParts hp)
 {
     if (hp.highlightedParts > 0)
     {
         for (int i = hp.highlightParts.Count - 1; i >= 0; i--)
         {
             try
             {
                 hp.highlightedParts--;
                 hp.highlightParts[i].SetHighlightDefault();
                 hp.highlightParts[i].SetHighlight(false, false);
                 Highlighter highlighter = hp.highlightParts[i].highlighter;
                 hp.highlightParts[i].highlighter.ConstantOff();
                 hp.highlightParts[i].highlighter.SeeThroughOff();
             }
             catch (Exception ex)
             {
                 Log.Error("HighlightPartsOff: " + ex.Message + " on part, removing part from highlight list");
                 hp.highlightParts.Remove(hp.highlightParts[i]);
             }
         }
         if (hp.highlightedParts < 0)
         {
             Log.Error("Too many parts unhighlighted");
             hp.highlightedParts = 0;
         }
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Create a new HighlightList with the interval specified
        /// </summary>
        /// <param name="interval"></param>
        /// <returns>HighlightList id</returns>
        public int CreateHighlightList(float interval = 1f)
        {
            if (!CheckInit())
            {
                return(-1);
            }
            // surround the creation with a try, just in case of any problems
            try
            {
                HighlightParts hp = new HighlightParts();

                hp.highlightParts = new List <Part>();
                hp.id             = highlightCnt++;
                hp.interval       = interval;
                hp.alwaysOn       = (interval <= 0);
                hp.loadedScene    = HighLogic.LoadedScene;
                hPartsLists.Add(hp.id, hp);
                return(hp.id);
            }
            catch (Exception ex)
            {
                Log.Error("CreateHighlightList: " + ex.Message);
                return(-1);
            }
        }
Esempio n. 3
0
        void HighlightPartsOn(HighlightParts hp)
        {
            if (hp.highlightActive)
            {
                for (int i = hp.highlightParts.Count - 1; i >= 0; i--)
                {
                    Part part = hp.highlightParts[i];

                    try
                    {
                        hp.highlightedParts++;
                        part.SetHighlightColor(hp.highlightC);
                        part.highlighter.ConstantOn(hp.edgeHighlightColor);
                        part.highlighter.SeeThroughOn();
                    }
                    catch (Exception ex)
                    {
                        Log.Error("HighlightPartsOn: " + ex.Message + " on part, removing part from highlight list");
                        hp.highlightParts.Remove(part);
                    }
                }
            }
        }