Example #1
0
        public void SetupToolbarButton(DisplayModule module, bool active)
        {
            if (!ToolbarManager.ToolbarAvailable)
            {
                return;
            }

            if (!module.hidden)
            {
                IButton button;
                String  name = CleanName(module.GetName());
                if (!toolbarButtons.ContainsKey(name))
                {
                    print("Adding button for " + name);
                    button = ToolbarManager.Instance.add("MechJeb2", name);
                    toolbarButtons[name] = button;
                    button.ToolTip       = "MechJeb " + module.GetName();
                    //button.Visibility = new MJButtonVisibility(this);
                    button.OnClick += (b) =>
                    {
                        DisplayModule mod = FlightGlobals.ActiveVessel.GetMasterMechJeb().GetComputerModules <DisplayModule>().FirstOrDefault(m => m.GetName() == module.GetName());
                        if (mod != null)
                        {
                            mod.enabled = !mod.enabled;
                            //print("Change " + module.GetName() + " to " + module.enabled);
                        }
                    };
                }
                else
                {
                    button = toolbarButtons[name];
                    //if (button.Visible != module.showInCurrentScene)
                }
                button.Visible = module.showInCurrentScene;
                String TexturePath       = "MechJeb2/Icons/" + name;
                String TexturePathActive = TexturePath + "_active";
                if (GameDatabase.Instance.GetTexture(TexturePath, false) == null)
                {
                    TexturePath = "MechJeb2/Icons/QMark";
                    if (!missingIcons.Contains(name))
                    {
                        missingIcons.Add(name);
                        print("No icon for " + name);
                    }
                }
                if (active & GameDatabase.Instance.GetTexture(TexturePathActive, false) == null)
                {
                    TexturePathActive = TexturePath;
                    if (!missingIcons.Contains(name + "_active"))
                    {
                        missingIcons.Add(name + "_active");
                        print("No icon for " + name + "_active");
                    }
                }
                button.TexturePath = active ? TexturePathActive : TexturePath;
            }
        }
Example #2
0
        public void SetupToolbarButton(DisplayModule module, bool active)
        {
            if (!ToolbarManager.ToolbarAvailable)
            {
                return;
            }

            IButton button;
            String  name = CleanName(module.GetName());

            if (!toolbarButtons.ContainsKey(name))
            {
                if (module.hidden)
                {
                    return;
                }
                print("Adding button for " + name);
                button = ToolbarManager.Instance.add("MechJeb2", name);
                toolbarButtons[name] = button;
                button.ToolTip       = "MechJeb " + module.GetName();
                button.OnClick      += (b) =>
                {
                    DisplayModule mod = FlightGlobals.ActiveVessel.GetMasterMechJeb().GetComputerModules <DisplayModule>().FirstOrDefault(m => m.GetName() == module.GetName());
                    if (mod != null)
                    {
                        mod.enabled = !mod.enabled;
                    }
                };
            }
            else
            {
                button = toolbarButtons[name];
            }
            button.Visible = module.showInCurrentScene && !module.hidden;
            String TexturePath       = "MechJeb2/Icons/" + name;
            String TexturePathActive = TexturePath + "_active";

            if (!actualIcons.ContainsKey(TexturePath))
            {
                if (GameDatabase.Instance.GetTexture(TexturePath, false) == null)
                {
                    actualIcons[TexturePath] = Qmark;
                    print("No icon for " + name);
                }
                else
                {
                    actualIcons[TexturePath] = TexturePath;
                }
            }

            if (active && !actualIcons.ContainsKey(TexturePathActive))
            {
                if (GameDatabase.Instance.GetTexture(TexturePathActive, false) == null)
                {
                    actualIcons[TexturePathActive] = TexturePath;
                    print("No icon for " + name + "_active");
                }
                else
                {
                    actualIcons[TexturePathActive] = TexturePathActive;
                }
            }

            button.TexturePath = active ? actualIcons[TexturePathActive] : actualIcons[TexturePath];
        }