mirror of
https://github.com/Ottermandias/Glamourer.git
synced 2025-12-12 10:17:23 +01:00
Show and update BNPCs.
This commit is contained in:
parent
0e943b5d1d
commit
8b8b14f2b6
2 changed files with 37 additions and 2 deletions
|
|
@ -730,7 +730,7 @@ public unsafe class DebugTab : ITab
|
||||||
|
|
||||||
disabled.Dispose();
|
disabled.Dispose();
|
||||||
|
|
||||||
DrawNameTable("BNPCs", ref _bnpcFilter, _actors.AwaitedService.Data.BNpcs.Select(kvp => (kvp.Key, kvp.Value)));
|
DrawBnpcTable();
|
||||||
DrawNameTable("ENPCs", ref _enpcFilter, _actors.AwaitedService.Data.ENpcs.Select(kvp => (kvp.Key, kvp.Value)));
|
DrawNameTable("ENPCs", ref _enpcFilter, _actors.AwaitedService.Data.ENpcs.Select(kvp => (kvp.Key, kvp.Value)));
|
||||||
DrawNameTable("Companions", ref _companionFilter, _actors.AwaitedService.Data.Companions.Select(kvp => (kvp.Key, kvp.Value)));
|
DrawNameTable("Companions", ref _companionFilter, _actors.AwaitedService.Data.Companions.Select(kvp => (kvp.Key, kvp.Value)));
|
||||||
DrawNameTable("Mounts", ref _mountFilter, _actors.AwaitedService.Data.Mounts.Select(kvp => (kvp.Key, kvp.Value)));
|
DrawNameTable("Mounts", ref _mountFilter, _actors.AwaitedService.Data.Mounts.Select(kvp => (kvp.Key, kvp.Value)));
|
||||||
|
|
@ -738,6 +738,41 @@ public unsafe class DebugTab : ITab
|
||||||
DrawNameTable("Worlds", ref _worldFilter, _actors.AwaitedService.Data.Worlds.Select(kvp => ((uint)kvp.Key, kvp.Value)));
|
DrawNameTable("Worlds", ref _worldFilter, _actors.AwaitedService.Data.Worlds.Select(kvp => ((uint)kvp.Key, kvp.Value)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void DrawBnpcTable()
|
||||||
|
{
|
||||||
|
using var _ = ImRaii.PushId(1);
|
||||||
|
using var tree = ImRaii.TreeNode("BNPCs");
|
||||||
|
if (!tree)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var resetScroll = ImGui.InputTextWithHint("##filter", "Filter...", ref _bnpcFilter, 256);
|
||||||
|
var height = ImGui.GetTextLineHeightWithSpacing() + 2 * ImGui.GetStyle().CellPadding.Y;
|
||||||
|
using var table = ImRaii.Table("##table", 3, ImGuiTableFlags.RowBg | ImGuiTableFlags.ScrollY | ImGuiTableFlags.BordersOuter,
|
||||||
|
new Vector2(-1, 10 * height));
|
||||||
|
if (!table)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (resetScroll)
|
||||||
|
ImGui.SetScrollY(0);
|
||||||
|
ImGui.TableSetupColumn("1", ImGuiTableColumnFlags.WidthFixed, 50 * ImGuiHelpers.GlobalScale);
|
||||||
|
ImGui.TableSetupColumn("2", ImGuiTableColumnFlags.WidthStretch);
|
||||||
|
ImGui.TableSetupColumn("3", ImGuiTableColumnFlags.WidthStretch);
|
||||||
|
ImGui.TableNextColumn();
|
||||||
|
var skips = ImGuiClip.GetNecessarySkips(height);
|
||||||
|
ImGui.TableNextRow();
|
||||||
|
var data = _actors.AwaitedService.Data.BNpcs.Select(kvp => (kvp.Key, kvp.Key.ToString("D5"), kvp.Value));
|
||||||
|
var remainder = ImGuiClip.FilteredClippedDraw(data, skips,
|
||||||
|
p => p.Item2.Contains(_bnpcFilter) || p.Item3.Contains(_bnpcFilter, StringComparison.OrdinalIgnoreCase),
|
||||||
|
p =>
|
||||||
|
{
|
||||||
|
ImGuiUtil.DrawTableColumn(p.Item2);
|
||||||
|
ImGuiUtil.DrawTableColumn(p.Item3);
|
||||||
|
var bnpcs = _items.IdentifierService.AwaitedService.GetBnpcsFromName(p.Item1);
|
||||||
|
ImGuiUtil.DrawTableColumn(string.Join(", ", bnpcs.Select(b => b.Id.ToString())));
|
||||||
|
});
|
||||||
|
ImGuiClip.DrawEndDummy(remainder, height);
|
||||||
|
}
|
||||||
|
|
||||||
private static void DrawNameTable(string label, ref string filter, IEnumerable<(uint, string)> names)
|
private static void DrawNameTable(string label, ref string filter, IEnumerable<(uint, string)> names)
|
||||||
{
|
{
|
||||||
using var _ = ImRaii.PushId(label);
|
using var _ = ImRaii.PushId(label);
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 6a0daf2f309c27c5a260825bce31094987fce3d1
|
Subproject commit 4dd261fe837bbe4b799b3ca3c0c8c178197bc48f
|
||||||
Loading…
Add table
Add a link
Reference in a new issue