コード例 #1
0
        private IUIElement DebugWindow()
        {
            var padding = new PaddingPanel()
            {
                Left = 5, Right = 5
            };

            return(padding);
        }
コード例 #2
0
        private IUIElement LogWindow()
        {
            var padding = new PaddingPanel()
            {
                Left = 5, Right = 5
            };
            var scroll = new ScrollView();

            padding.Child = scroll;
            var clearbtn = new Button("Clear");

            clearbtn.OnClick += (s, e) => { ModLogger.Logs.Clear(); };
            scroll.Children.Add(clearbtn);
            var list = new ListBox <string>(GUILayout.Height(25))
            {
                ItemsSource = ModLogger.Logs
            };

            scroll.Children.Add(list);
            return(padding);
        }
コード例 #3
0
        private IUIElement ModWindow()
        {
            var padding = new PaddingPanel()
            {
                Left = 5, Right = 5
            };
            var scroll = new ScrollView();

            padding.Child = scroll;
            var refreshbtn = new Button("Refresh all mods");

            refreshbtn.OnClick += (s, e) =>
            {
                ModLoader.Instance.RefreshModFiles();
                RefreshMods();
            };
            scroll.Children.Add(refreshbtn);
            var list = new ListBox <FileInfo>(GUILayout.Height(25))
            {
                DynamicSource = () => allmods.Keys,
                ItemTemplate  = (file) =>
                {
                    GUILayout.BeginHorizontal();
                    bool loaded            = ModLoader.Instance.IsLoaded(file);
                    bool newCheckboxStatus = GUILayout.Toggle(loaded, file.Name, GUILayout.Width(150));
                    if (newCheckboxStatus && !loaded)
                    {
                        ModLoader.Instance.Load(file);
                        RefreshMods();
                    }
                    else if (!newCheckboxStatus && loaded)
                    {
                        ModLoader.Instance.Unload(file);
                        RefreshMods();
                    }

                    // Reload the respective Mod
                    if (GUILayout.Button("Reload", GUILayout.Width(100)))
                    {
                        ModLoader.Instance.Unload(file);
                        ModLoader.Instance.Load(file);
                        RefreshMods();
                    }

                    if (GUILayout.Button("Debug", GUILayout.Width(100)))
                    {
                        ModLoader.Instance.RemoveModFile(file);
                        file.Refresh();
                        if (file.Exists)
                        {
                            file.MoveTo(file.FullName.Replace(ModLoader.ModsPath, Debugger.DebugPath));
                        }
                        ModLoader.Instance.RefreshModFiles();
                        RefreshMods();
                    }
                    GUILayout.EndHorizontal();
                }
            };

            scroll.Children.Add(list);
            return(padding);
        }