From e8989045224562b6e49d44320b9f61e1788efb01 Mon Sep 17 00:00:00 2001 From: chirp Date: Wed, 14 Jun 2023 16:35:49 +0100 Subject: [PATCH] add option to toggle bone list ordering --- Ktisis/Configuration.cs | 2 ++ Ktisis/Interface/Windows/ConfigGui.cs | 8 ++++++++ Ktisis/Overlay/Selection.cs | 3 ++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Ktisis/Configuration.cs b/Ktisis/Configuration.cs index 13d02bd11..7008af2ca 100644 --- a/Ktisis/Configuration.cs +++ b/Ktisis/Configuration.cs @@ -54,6 +54,8 @@ public class Configuration : IPluginConfiguration { // Overlay + public bool OrderBoneListByDistance { get; set; } = true; + public bool DrawLinesOnSkeleton { get; set; } = true; public bool DrawLinesWithGizmo { get; set; } = true; public bool DrawDotsWithGizmo { get; set; } = true; diff --git a/Ktisis/Interface/Windows/ConfigGui.cs b/Ktisis/Interface/Windows/ConfigGui.cs index 64d883a23..1ee68ea59 100644 --- a/Ktisis/Interface/Windows/ConfigGui.cs +++ b/Ktisis/Interface/Windows/ConfigGui.cs @@ -173,6 +173,14 @@ public static void DrawInterfaceTab(Configuration cfg) { // Overlay public static void DrawOverlayTab(Configuration cfg) { + ImGui.Spacing(); + + var order = cfg.OrderBoneListByDistance; + if (ImGui.Checkbox("Order bone list by distance from camera", ref order)) + cfg.OrderBoneListByDistance = order; + + ImGui.Spacing(); + if (ImGui.CollapsingHeader(Locale.GetString("Skeleton_lines_and_dots"), ImGuiTreeNodeFlags.DefaultOpen)) { ImGui.Separator(); var drawLines = cfg.DrawLinesOnSkeleton; diff --git a/Ktisis/Overlay/Selection.cs b/Ktisis/Overlay/Selection.cs index 9ada19c1f..ddb65bd1a 100644 --- a/Ktisis/Overlay/Selection.cs +++ b/Ktisis/Overlay/Selection.cs @@ -82,7 +82,8 @@ public static void DrawList(List items) { else if (ScrollIndex < 0) ScrollIndex = items.Count - 1; - items.Sort((x, y) => x.Depth < y.Depth ? -1 : 1); + if (Ktisis.Configuration.OrderBoneListByDistance) + items.Sort((x, y) => x.Depth < y.Depth ? -1 : 1); for (var i = 0; i < items.Count; i++) { var item = items[i];