mirror of
https://github.com/Ottermandias/Glamourer.git
synced 2025-12-14 20:54:17 +01:00
Improve job filter in unlocks tab.
This commit is contained in:
parent
6446309bd7
commit
9d569266b5
4 changed files with 44 additions and 12 deletions
|
|
@ -1 +1 @@
|
||||||
Subproject commit ca003395306791b9e595683c47824b4718385311
|
Subproject commit 663702b57303368b3a897e9c6eae4b34b4339534
|
||||||
|
|
@ -9,6 +9,7 @@ using ImGuiNET;
|
||||||
using OtterGui;
|
using OtterGui;
|
||||||
using OtterGui.Raii;
|
using OtterGui.Raii;
|
||||||
using OtterGui.Table;
|
using OtterGui.Table;
|
||||||
|
using OtterGui.Text;
|
||||||
using Penumbra.GameData.Enums;
|
using Penumbra.GameData.Enums;
|
||||||
using Penumbra.GameData.Structs;
|
using Penumbra.GameData.Structs;
|
||||||
|
|
||||||
|
|
@ -23,16 +24,16 @@ public class UnlockTable : Table<EquipItem>, IDisposable
|
||||||
: base("ItemUnlockTable", new ItemList(items),
|
: base("ItemUnlockTable", new ItemList(items),
|
||||||
new FavoriteColumn(favorites, @event) { Label = "F" },
|
new FavoriteColumn(favorites, @event) { Label = "F" },
|
||||||
new NameColumn(textures, tooltip) { Label = "Item Name..." },
|
new NameColumn(textures, tooltip) { Label = "Item Name..." },
|
||||||
new SlotColumn() { Label = "Equip Slot" },
|
new SlotColumn { Label = "Equip Slot" },
|
||||||
new TypeColumn() { Label = "Item Type..." },
|
new TypeColumn { Label = "Item Type..." },
|
||||||
new UnlockDateColumn(itemUnlocks) { Label = "Unlocked" },
|
new UnlockDateColumn(itemUnlocks) { Label = "Unlocked" },
|
||||||
new ItemIdColumn() { Label = "Item Id..." },
|
new ItemIdColumn { Label = "Item Id..." },
|
||||||
new ModelDataColumn(items) { Label = "Model Data..." },
|
new ModelDataColumn(items) { Label = "Model Data..." },
|
||||||
new JobColumn(jobs) { Label = "Jobs" },
|
new JobColumn(jobs) { Label = "Jobs" },
|
||||||
new RequiredLevelColumn() { Label = "Level..." },
|
new RequiredLevelColumn { Label = "Level..." },
|
||||||
new DyableColumn() { Label = "Dye" },
|
new DyableColumn { Label = "Dye" },
|
||||||
new CrestColumn() { Label = "Crest" },
|
new CrestColumn { Label = "Crest" },
|
||||||
new TradableColumn() { Label = "Trade" }
|
new TradableColumn { Label = "Trade" }
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
_event = @event;
|
_event = @event;
|
||||||
|
|
@ -334,11 +335,42 @@ public class UnlockTable : Table<EquipItem>, IDisposable
|
||||||
public JobColumn(JobService jobs)
|
public JobColumn(JobService jobs)
|
||||||
{
|
{
|
||||||
_jobs = jobs;
|
_jobs = jobs;
|
||||||
_values = _jobs.Jobs.Values.Skip(1).Select(j => j.Flag).ToArray();
|
_values = _jobs.Jobs.Ordered.Select(j => j.Flag).ToArray();
|
||||||
_names = _jobs.Jobs.Values.Skip(1).Select(j => j.Abbreviation).ToArray();
|
_names = _jobs.Jobs.Ordered.Select(j => j.Abbreviation).ToArray();
|
||||||
AllFlags = _values.Aggregate((l, r) => l | r);
|
AllFlags = _values.Aggregate((l, r) => l | r);
|
||||||
_filterValue = AllFlags;
|
_filterValue = AllFlags;
|
||||||
Flags &= ~ImGuiTableColumnFlags.NoResize;
|
Flags &= ~ImGuiTableColumnFlags.NoResize;
|
||||||
|
ComboFlags |= ImGuiComboFlags.HeightLargest;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override bool DrawCheckbox(int idx, out bool ret)
|
||||||
|
{
|
||||||
|
var job = _jobs.Jobs.Ordered[idx];
|
||||||
|
var color = job.Role switch
|
||||||
|
{
|
||||||
|
Job.JobRole.Tank => 0xFFFFD0D0,
|
||||||
|
Job.JobRole.Melee => 0xFFD0D0FF,
|
||||||
|
Job.JobRole.RangedPhysical => 0xFFD0FFFF,
|
||||||
|
Job.JobRole.RangedMagical => 0xFFFFD0FF,
|
||||||
|
Job.JobRole.Healer => 0xFFD0FFD0,
|
||||||
|
Job.JobRole.Crafter => 0xFF808080,
|
||||||
|
Job.JobRole.Gatherer => 0xFFD0D0D0,
|
||||||
|
_ => ImGui.GetColorU32(ImGuiCol.Text),
|
||||||
|
};
|
||||||
|
using var c = ImRaii.PushColor(ImGuiCol.Text, color);
|
||||||
|
var r = base.DrawCheckbox(idx, out ret);
|
||||||
|
if (ImGui.IsItemClicked(ImGuiMouseButton.Right))
|
||||||
|
{
|
||||||
|
_filterValue = job.Flag & _filterValue;
|
||||||
|
ret = true;
|
||||||
|
r = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
ImUtf8.HoverTooltip("Right-Click to disable all other jobs."u8);
|
||||||
|
|
||||||
|
if (idx < _names.Length - 1 && idx % 2 == 0)
|
||||||
|
ImGui.SameLine(ImGui.GetFrameHeight() * 4);
|
||||||
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void SetValue(JobFlag value, bool enable)
|
protected override void SetValue(JobFlag value, bool enable)
|
||||||
|
|
|
||||||
2
OtterGui
2
OtterGui
|
|
@ -1 +1 @@
|
||||||
Subproject commit c2738e1d42974cddbe5a31238c6ed236a831d17d
|
Subproject commit 3a14692e38708ca9f18652898e6f5c8cc87b517b
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit da99d9b2b3c51b2bbeb40226c692dff2cbcd5cbc
|
Subproject commit cd40d497f4791e946c0fd4bd5663da578f7680ed
|
||||||
Loading…
Add table
Add a link
Reference in a new issue