1
0
Fork 0
forked from aly/qstbak

muffin v6.30

This commit is contained in:
alydev 2025-10-22 13:06:52 +10:00
parent 5885c72e0f
commit 9003b9c19d
4 changed files with 107 additions and 6 deletions

View file

@ -463217,7 +463217,8 @@ public static class AssemblyQuestLoader
ref QuestStep reference221 = ref span3[num2];
QuestStep obj199 = new QuestStep(EInteractionType.Interact, 1054640u, new Vector3(496.11658f, 142.24991f, 801.6022f), 1187)
{
TargetTerritoryId = (ushort)1297
TargetTerritoryId = (ushort)1297,
Fly = true
};
SkipConditions skipConditions21 = new SkipConditions();
SkipStepConditions skipStepConditions20 = new SkipStepConditions();

View file

@ -1131,9 +1131,38 @@ internal sealed class QuestController : MiniTaskController<QuestController>
if (_questRegistry.TryGetQuest(elementId, out Quest quest) && !ManualPriorityQuests.Contains(quest))
{
ManualPriorityQuests.Add(quest);
}
return true;
}
return false;
}
public int AddAllAvailableQuests()
{
List<ElementId> list = (from q in _questRegistry.AllQuests.Where(delegate(Quest quest)
{
if (!quest.Root.Disabled && !_questFunctions.IsQuestRemoved(quest.Id) && _questFunctions.IsReadyToAcceptQuest(quest.Id) && !_questFunctions.IsQuestComplete(quest.Id) && !_questFunctions.IsQuestAccepted(quest.Id))
{
QuestSequence? questSequence = quest.FindSequence(0);
if (questSequence == null)
{
return false;
}
return questSequence.Steps.FirstOrDefault()?.IsTeleportableForPriorityQuests() == true;
}
return false;
})
select q.Id).ToList();
_logger.LogInformation("Adding {Count} available quests to priority queue", list.Count);
int num = 0;
foreach (ElementId item in list)
{
if (AddQuestPriority(item))
{
num++;
}
}
return num;
}
public bool InsertQuestPriority(int index, ElementId elementId)
{

View file

@ -145,6 +145,8 @@ internal sealed class QuestJournalComponent
}
QuestJournalUtils.ShowFilterContextMenu(this);
ImGui.SameLine();
_questJournalUtils.AddAllAvailableQuests();
ImGui.SameLine();
if (ImGuiComponents.IconButton(FontAwesomeIcon.GlobeEurope))
{
Util.OpenLink("https://wigglymuffin.github.io/FFXIV-Tools/");

View file

@ -234,14 +234,83 @@ internal sealed class QuestJournalUtils
internal static void ShowFilterContextMenu(QuestJournalComponent journalUi)
{
if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Filter, "Filter"))
if (ImGuiComponents.IconButton(FontAwesomeIcon.Filter))
{
ImGui.OpenPopup("##QuestFilters");
ImGui.OpenPopup("QuestFilters");
}
using ImRaii.IEndObject endObject = ImRaii.Popup("##QuestFilters");
if (!(!endObject) && (ImGui.Checkbox("Show only Available Quests", ref journalUi.Filter.AvailableOnly) || ImGui.Checkbox("Hide Quests Without Path", ref journalUi.Filter.HideNoPaths) || ImGui.Checkbox("Hide Unobtainable Quests", ref journalUi.Filter.HideUnobtainable)))
if (ImGui.IsItemHovered())
{
ImGui.SetTooltip("Filter Options");
}
using ImRaii.IEndObject endObject = ImRaii.Popup("QuestFilters");
if (!ImRaii.IEndObject.op_True(endObject))
{
return;
}
if ((0u | (ImGui.Checkbox("Available Only", ref journalUi.Filter.AvailableOnly) ? 1u : 0u) | (ImGui.Checkbox("Hide Without Quest Paths", ref journalUi.Filter.HideNoPaths) ? 1u : 0u) | (ImGui.Checkbox("Hide Unobtainable", ref journalUi.Filter.HideUnobtainable) ? 1u : 0u)) != 0)
{
journalUi.UpdateFilter();
}
if (journalUi.Filter.AdvancedFiltersActive)
{
ImGui.Separator();
if (ImGui.Button("Clear Filters"))
{
journalUi.Filter.AvailableOnly = false;
journalUi.Filter.HideNoPaths = false;
journalUi.Filter.HideUnobtainable = false;
journalUi.UpdateFilter();
}
}
}
public void AddAllAvailableQuests()
{
int num = _questRegistry.AllQuests.Count(delegate(Quest quest)
{
if (!quest.Root.Disabled && !_questFunctions.IsQuestRemoved(quest.Id) && _questFunctions.IsReadyToAcceptQuest(quest.Id) && !_questFunctions.IsQuestComplete(quest.Id) && !_questFunctions.IsQuestAccepted(quest.Id) && !_questController.ManualPriorityQuests.Any((Quest q) => q.Id.Equals(quest.Id)))
{
QuestSequence? questSequence = quest.FindSequence(0);
if (questSequence == null)
{
return false;
}
return questSequence.Steps.FirstOrDefault()?.IsTeleportableForPriorityQuests() == true;
}
return false;
});
using (ImRaii.Disabled(num == 0))
{
if (ImGuiComponents.IconButton(FontAwesomeIcon.ListOl))
{
int num2 = _questController.AddAllAvailableQuests();
string value = ((num2 == 1) ? "quest" : "quests");
_chatGui.Print($"Added {num2} {value} to priority queue.", "Questionable", 576);
}
}
if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled))
{
object obj;
switch (num)
{
case 0:
ImGui.SetTooltip("No available quests to add");
return;
default:
obj = "quests";
break;
case 1:
obj = "quest";
break;
}
string value2 = (string)obj;
ImU8String tooltip = new ImU8String(27, 2);
tooltip.AppendLiteral("Add ");
tooltip.AppendFormatted(num);
tooltip.AppendLiteral(" available ");
tooltip.AppendFormatted(value2);
tooltip.AppendLiteral(" to priority");
ImGui.SetTooltip(tooltip);
}
}
}