//private Color defaultEmissiveColor;
        //private bool clicked = false;

        /// <summary>
        /// triggered by FSswitchButtonHandler
        /// </summary>
        /// <param name="buttonNumber">If there are several buttons tied to this module, this would tell them apart</param>
        public void buttonClick() //(int buttonNumber)
        {
            //set emissive color if used when clicked, start countdown to reset emissive if that applies
            if (useEmissiveToggle == 1)
            {
                switchObjectTransform.GetComponent<Renderer>().material.SetColor("_EmissiveColor", new Color(onEmissiveColor.x, onEmissiveColor.y, onEmissiveColor.z));
                //switchObjectTransform.GetComponent<Renderer>().material.SetColor("_EmissiveColor", Color.yellow);            
                emissiveCountdown = resetEmissiveTime;
            }


            //Log.dbg("FS switch {0} clicked", buttonNumber);
            if (!customAction)
            {
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(actionGroup);
            }
            else
            {
                switch (groupName)
                {
                    case "engine":
                        foreach (Part part in vessel.Parts)
                        {
                            engine.FSengineWrapper engine = new engine.FSengineWrapper(part);
                            engine.EngineIgnited = !engine.EngineIgnited;
                        }
                        break;
                    case "hover":
                        foreach (Part part in vessel.Parts)
                        {
                            engine.FScopterThrottle copterEngine = part.Modules.OfType<engine.FScopterThrottle>().FirstOrDefault();
                            if (copterEngine != null)
                            {
                                copterEngine.toggleHover();
                                if (postMessagesToScreen == 1)
                                    ScreenMessages.PostScreenMessage(new ScreenMessage("hover height set to " + Math.Round(copterEngine.hoverHeight, 1), 2f, ScreenMessageStyle.UPPER_CENTER));
                                Log.info("FS: hover height set to {0}", copterEngine.hoverHeight);
                            }

                            IEnumerable<engine.FSengineBladed> bladedEngines = part.Modules.OfType<engine.FSengineBladed>();
                            using (var bladedEngineEnum = bladedEngines.GetEnumerator())
                            {
                                while (bladedEngineEnum.MoveNext())
                                {
                                    bladedEngineEnum.Current.toggleHover();
                                }
                            }
                        }
                        break;
                    case "Stage":
                        //FlightGlobals.ActiveVessel.ResumeStaging();
                        //StageManager.ActivateNextStage();                   
                        break;
                    case "resetTrim":
                        FlightInputHandler.state.yawTrim = 0f;
                        break;
                }
            }
        }
        //(int buttonNumber)
        //private Color defaultEmissiveColor;
        //private bool clicked = false;
        /// <summary>
        /// triggered by FSswitchButtonHandler
        /// </summary>
        /// <param name="buttonNumber">If there are several buttons tied to this module, this would tell them apart</param>
        public void buttonClick()
        {
            //set emissive color if used when clicked, start countdown to reset emissive if that applies
            if (useEmissiveToggle == 1)
            {
                switchObjectTransform.GetComponent<Renderer>().material.SetColor("_EmissiveColor", new Color(onEmissiveColor.x, onEmissiveColor.y, onEmissiveColor.z));
                //switchObjectTransform.GetComponent<Renderer>().material.SetColor("_EmissiveColor", Color.yellow);
                emissiveCountdown = resetEmissiveTime;
            }

            //Debug.Log("FS switch " + buttonNumber + " clicked");
            if (!customAction)
            {
                FlightGlobals.ActiveVessel.ActionGroups.ToggleGroup(actionGroup);
            }
            else
            {
                switch (groupName)
                {
                    case "engine":
                        foreach (Part part in vessel.Parts)
                        {
                            engine.FSengineWrapper engine = new engine.FSengineWrapper(part);
                            engine.EngineIgnited = !engine.EngineIgnited;
                        }
                        break;
                    case "hover":
                        foreach (Part part in vessel.Parts)
                        {
                            engine.FScopterThrottle copterEngine = part.Modules.OfType<engine.FScopterThrottle>().FirstOrDefault();
                            if (copterEngine != null)
                            {
                                copterEngine.toggleHover();
                                if (postMessagesToScreen == 1)
                                    ScreenMessages.PostScreenMessage(new ScreenMessage("hover height set to " + Math.Round(copterEngine.hoverHeight, 1), 2f, ScreenMessageStyle.UPPER_CENTER));
                                Debug.Log("FS: hover height set to " + copterEngine.hoverHeight);
                            }

                            IEnumerable<engine.FSengineBladed> bladedEngines = part.Modules.OfType<engine.FSengineBladed>();
                            using (var bladedEngineEnum = bladedEngines.GetEnumerator())
                            {
                                while (bladedEngineEnum.MoveNext())
                                {
                                    bladedEngineEnum.Current.toggleHover();
                                }
                            }
                        }
                        break;
                    case "Stage":
                        //FlightGlobals.ActiveVessel.ResumeStaging();
                        //StageManager.ActivateNextStage();
                        break;
                    case "resetTrim":
                        FlightInputHandler.state.yawTrim = 0f;
                        break;
                }
            }
        }