Exemple #1
0
        public void DrawProfilesTable(Profile profile)
        {
            var buffsToRemove = new List <int>();

            ImGui.Separator();
            ImGui.Columns(8, $"EditColums{profile.Name}", true);
            ImGui.Text("Toggles");
            ImGuiExtension.ToolTip("Remove / Status / Show Inactive / Draw an Image", true);
            ImGui.NextColumn();
            ImGui.Text("Colors");
            ImGuiExtension.ToolTip("Text / Text Background", true);
            ImGui.NextColumn();
            ImGui.Text("Buff Name");
            ImGui.NextColumn();
            ImGui.Text("File Name");
            ImGui.NextColumn();
            ImGui.Text("Type");
            ImGui.NextColumn();
            ImGui.Text("Size");
            ImGui.NextColumn();
            ImGui.Text("X");
            ImGui.NextColumn();
            ImGui.Text("Y");
            ImGui.NextColumn();
            if (profile.BuffSettings.BuffList.Count != 0)
            {
                ImGui.Separator();
            }

            var typeSelector = new List <string>
            {
                "Duration",
                "Charge",
                "Count",
                "Duration + Charges",
                "Duration + Count",
                "Image Only"
            };

            for (var i = 0; i < profile.BuffSettings.BuffList.Count; i++)
            {
                // Remove / Status / Show Inactive
                if (ImGui.Button($"X##Delete{profile.Name}{i}"))
                {
                    buffsToRemove.Add(i);
                }
                ImGuiExtension.ToolTip("Remove This Buff", false, true);
                ImGui.SameLine();
                profile.BuffSettings.BuffList[i].Settings.Enabled = PoeHUD.Hud.UI.ImGuiExtension.Checkbox($"##Status{profile.Name}{i}", profile.BuffSettings.BuffList[i].Settings.Enabled);
                ImGuiExtension.ToolTip("Enable This Buff", false, true);
                ImGui.SameLine();
                profile.BuffSettings.BuffList[i].Settings.ShowInactive = PoeHUD.Hud.UI.ImGuiExtension.Checkbox($"##ShowInactive{profile.Name}{i}", profile.BuffSettings.BuffList[i].Settings.ShowInactive);
                ImGuiExtension.ToolTip("Show a dimmed verison if the buff is inactive", false, true);
                ImGui.SameLine();
                profile.BuffSettings.BuffList[i].Settings.ShowImage = PoeHUD.Hud.UI.ImGuiExtension.Checkbox($"##ShowImage{profile.Name}{i}", profile.BuffSettings.BuffList[i].Settings.ShowImage);
                ImGuiExtension.ToolTip("Draw an Image", false, true);
                ImGui.NextColumn();
                // Colors - Text / Text Background
                profile.BuffSettings.BuffList[i].Settings.Colors.Text = PoeHUD.Hud.UI.ImGuiExtension.ColorPicker($"##TextColor{profile.Name}{i}", profile.BuffSettings.BuffList[i].Settings.Colors.Text);
                ImGuiExtension.ToolTip("Text Color", false, true);
                ImGui.SameLine();
                profile.BuffSettings.BuffList[i].Settings.Colors.TextBackground = PoeHUD.Hud.UI.ImGuiExtension.ColorPicker($"##TextBackgroundColor{profile.Name}{i}", profile.BuffSettings.BuffList[i].Settings.Colors.TextBackground);
                ImGuiExtension.ToolTip("Text Background Color", false, true);
                ImGui.NextColumn();
                // Buff Name
                ImGui.PushItemWidth(ImGui.GetContentRegionAvailableWidth());
                profile.BuffSettings.BuffList[i].Settings.BuffName = PoeHUD.Hud.UI.ImGuiExtension.InputText($"##BuffName{profile.Name}{i}", profile.BuffSettings.BuffList[i].Settings.BuffName, 1000, InputTextFlags.EnterReturnsTrue);
                ImGui.PopItemWidth();
                ImGui.NextColumn();
                // Image File
                ImGui.PushItemWidth(ImGui.GetContentRegionAvailableWidth());
                profile.BuffSettings.BuffList[i].Settings.Image = PoeHUD.Hud.UI.ImGuiExtension.InputText($"##Image{profile.Name}{i}", profile.BuffSettings.BuffList[i].Settings.Image, 1000, InputTextFlags.EnterReturnsTrue);
                ImGui.PopItemWidth();
                ImGui.NextColumn();
                // Buff Type
                ImGui.PushItemWidth(ImGui.GetContentRegionAvailableWidth());
                profile.BuffSettings.BuffList[i].Settings.Type = (Buff.BuffType)ImGuiExtension.ComboBox($"##Type{profile.Name}{i}", (int)profile.BuffSettings.BuffList[i].Settings.Type, typeSelector);
                ImGui.PopItemWidth();
                ImGui.NextColumn();
                // Buff Size
                ImGui.PushItemWidth(ImGui.GetContentRegionAvailableWidth());
                profile.BuffSettings.BuffList[i].Settings.Size = ImGuiExtension.IntDrag($"##Size{profile.Name}{i}", profile.BuffSettings.BuffList[i].Settings.Size, 1, 300);
                ImGui.PopItemWidth();
                ImGui.NextColumn();
                // X Axis
                ImGui.PushItemWidth(ImGui.GetContentRegionAvailableWidth());
                profile.BuffSettings.BuffList[i].Settings.Location.X = ImGuiExtension.IntDrag($"##X{profile.Name}{i}", profile.BuffSettings.BuffList[i].Settings.Location.X, 0, (int)GameController.Window.GetWindowRectangle().Width);
                ImGui.PopItemWidth();
                ImGui.NextColumn();
                // Y Axis
                ImGui.PushItemWidth(ImGui.GetContentRegionAvailableWidth());
                profile.BuffSettings.BuffList[i].Settings.Location.Y = ImGuiExtension.IntDrag($"##Y{profile.Name}{i}", profile.BuffSettings.BuffList[i].Settings.Location.Y, 0, (int)GameController.Window.GetWindowRectangle().Height);
                ImGui.PopItemWidth();
                ImGui.NextColumn();
            }

            // Remove items in deleteion queue
            foreach (var i in buffsToRemove)
            {
                profile.BuffSettings.BuffList.Remove(profile.BuffSettings.BuffList[i]);
            }

            ImGui.Separator();
            ImGui.Columns(1, "", false);

            // Make add new button
            if (ImGui.Button($"+##Add{profile.Name}"))
            {
                var newItem = new Buff.Base
                {
                    Settings = new Buff.Settings
                    {
                        Location = new Buff.Location {
                            X = 200, Y = 200
                        },
                        Size         = 64,
                        ShowInactive = false,
                        Image        = "Image",
                        BuffName     = "BuffName",
                        Type         = Buff.BuffType.Duration,
                        Enabled      = false,
                        Colors       = new Colors {
                            Text = Color.White, TextBackground = new Color(0, 0, 0, 220)
                        }
                    },
                    DisposableData = new Buff.DisposableData()
                };
                profile.BuffSettings.BuffList.Add(newItem);
            }
            ImGui.SameLine();
            if (ImGui.Button($"Save##{profile.Name}"))
            {
                SaveBuffSettings(profile);
            }
            ImGui.SameLine();
            if (ImGui.Button($"Reload##{profile.Name}"))
            {
                profile.BuffSettings = LoadBuffSettings(profile);
            }
            ImGui.Separator();
        }