1
0
Fork 0
forked from aly/qstbak

muffin v7.5.1

This commit is contained in:
alydev 2026-05-01 08:59:48 +10:00
parent a6481e7b9a
commit 965a736f84
59 changed files with 4112 additions and 5059 deletions

View file

@ -1,4 +1,3 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
@ -60,7 +59,6 @@ internal sealed class QuestSelectionWindow : LWindow
public QuestSelectionWindow(QuestData questData, IGameGui gameGui, IChatGui chatGui, QuestFunctions questFunctions, QuestController questController, QuestRegistry questRegistry, IDalamudPluginInterface pluginInterface, TerritoryData territoryData, IClientState clientState, UiUtils uiUtils, QuestTooltipComponent questTooltipComponent)
: base("Quest Selection###QuestionableQuestSelection")
{
//IL_00be: Unknown result type (might be due to invalid IL or missing references)
_questData = questData;
_gameGui = gameGui;
_chatGui = chatGui;
@ -74,10 +72,10 @@ internal sealed class QuestSelectionWindow : LWindow
_questTooltipComponent = questTooltipComponent;
base.Size = new Vector2(500f, 200f);
base.SizeCondition = ImGuiCond.Once;
WindowSizeConstraints value = default(WindowSizeConstraints);
((WindowSizeConstraints)(ref value))._002Ector();
((WindowSizeConstraints)(ref value)).MinimumSize = new Vector2(500f, 200f);
((Window)this).SizeConstraints = value;
base.SizeConstraints = new WindowSizeConstraints
{
MinimumSize = new Vector2(500f, 200f)
};
}
public unsafe void OpenForTarget(IGameObject? gameObject)
@ -135,145 +133,130 @@ internal sealed class QuestSelectionWindow : LWindow
public override void DrawContent()
{
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_0039: Unknown result type (might be due to invalid IL or missing references)
if (_offeredQuests.Count != 0)
{
ImGui.Checkbox("Only show quests currently offered", ref _onlyAvailableQuests);
}
TableDisposable val = ImRaii.Table((ImU8String)"QuestSelection", 4, ImGuiTableFlags.Borders | ImGuiTableFlags.ScrollY);
try
using ImRaii.TableDisposable tableDisposable = ImRaii.Table("QuestSelection", 4, ImGuiTableFlags.Borders | ImGuiTableFlags.ScrollY);
if (!tableDisposable)
{
if (!val)
ImGui.Text("Not table");
return;
}
float x;
using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push())
{
x = ImGui.CalcTextSize(FontAwesomeIcon.Copy.ToIconString()).X;
}
ImGui.PushFont(UiBuilder.IconFont);
float initWidthOrWeight = ImGui.CalcTextSize(FontAwesomeIcon.Copy.ToIconString()).X + ImGui.CalcTextSize(FontAwesomeIcon.Copy.ToIconString()).X + ImGui.CalcTextSize(FontAwesomeIcon.Copy.ToIconString()).X + 6f * ImGui.GetStyle().FramePadding.X + 2f * ImGui.GetStyle().ItemSpacing.X;
ImGui.PopFont();
ImGui.TableSetupColumn("Id", ImGuiTableColumnFlags.WidthFixed, 50f * ImGui.GetIO().FontGlobalScale);
ImGui.TableSetupColumn("", ImGuiTableColumnFlags.WidthFixed, x);
ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.None, 200f);
ImGui.TableSetupColumn("Actions", ImGuiTableColumnFlags.WidthFixed, initWidthOrWeight);
ImGui.TableHeadersRow();
foreach (IQuestInfo item in (_offeredQuests.Count != 0 && _onlyAvailableQuests) ? _offeredQuests : _quests)
{
ImGui.TableNextRow();
string text = item.QuestId.ToString();
Quest quest;
bool flag = _questRegistry.TryGetQuest(item.QuestId, out quest);
if (ImGui.TableNextColumn())
{
ImGui.Text("Not table");
return;
ImGui.AlignTextToFramePadding();
ImGui.TextUnformatted(text);
}
float x;
using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push())
if (ImGui.TableNextColumn())
{
x = ImGui.CalcTextSize(FontAwesomeIcon.Copy.ToIconString()).X;
}
ImGui.PushFont(UiBuilder.IconFont);
float initWidthOrWeight = ImGui.CalcTextSize(FontAwesomeIcon.Copy.ToIconString()).X + ImGui.CalcTextSize(FontAwesomeIcon.Copy.ToIconString()).X + ImGui.CalcTextSize(FontAwesomeIcon.Copy.ToIconString()).X + 6f * ImGui.GetStyle().FramePadding.X + 2f * ImGui.GetStyle().ItemSpacing.X;
ImGui.PopFont();
ImGui.TableSetupColumn("Id", ImGuiTableColumnFlags.WidthFixed, 50f * ImGui.GetIO().FontGlobalScale);
ImGui.TableSetupColumn("", ImGuiTableColumnFlags.WidthFixed, x);
ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.None, 200f);
ImGui.TableSetupColumn("Actions", ImGuiTableColumnFlags.WidthFixed, initWidthOrWeight);
ImGui.TableHeadersRow();
foreach (IQuestInfo item in (_offeredQuests.Count != 0 && _onlyAvailableQuests) ? _offeredQuests : _quests)
{
ImGui.TableNextRow();
string text = item.QuestId.ToString();
Quest quest;
bool flag = _questRegistry.TryGetQuest(item.QuestId, out quest);
if (ImGui.TableNextColumn())
ImGui.AlignTextToFramePadding();
var (col, icon, _) = _uiUtils.GetQuestStyle(item.QuestId);
using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push())
{
ImGui.AlignTextToFramePadding();
ImGui.TextUnformatted(text);
if (flag)
{
ImGui.TextColored(in col, icon.ToIconString());
}
else
{
ImGui.TextColored(ImGuiColors.DalamudGrey, icon.ToIconString());
}
}
if (ImGui.TableNextColumn())
if (ImGui.IsItemHovered())
{
_questTooltipComponent.Draw(item);
}
}
if (ImGui.TableNextColumn())
{
ImGui.AlignTextToFramePadding();
if (quest != null && quest.Root.Disabled)
{
ImGui.AlignTextToFramePadding();
var (col, icon, _) = _uiUtils.GetQuestStyle(item.QuestId);
using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push())
{
if (flag)
{
ImGui.TextColored(in col, icon.ToIconString());
}
else
{
ImGui.TextColored(ImGuiColors.DalamudGrey, icon.ToIconString());
}
}
if (ImGui.IsItemHovered())
{
_questTooltipComponent.Draw(item);
ImGui.TextColored(ImGuiColors.DalamudOrange, FontAwesomeIcon.Ban.ToIconString());
ImGui.SameLine();
}
}
if (ImGui.TableNextColumn())
ImGui.TextUnformatted(item.Name);
}
if (!ImGui.TableNextColumn())
{
continue;
}
using (ImRaii.PushId(text))
{
bool num = ImGuiComponents.IconButton(FontAwesomeIcon.Copy);
if (ImGui.IsItemHovered())
{
ImGui.AlignTextToFramePadding();
if (quest != null && quest.Root.Disabled)
{
using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push())
{
ImGui.TextColored(ImGuiColors.DalamudOrange, FontAwesomeIcon.Ban.ToIconString());
ImGui.SameLine();
}
}
ImGui.TextUnformatted(item.Name);
ImGui.SetTooltip("Copy as file name");
}
if (!ImGui.TableNextColumn())
if (num)
{
CopyToClipboard(item, suffix: true);
}
else if (ImGui.IsItemClicked(ImGuiMouseButton.Right))
{
CopyToClipboard(item, suffix: false);
}
ImGui.SameLine();
if (quest == null)
{
continue;
}
IdDisposable val2 = ImRaii.PushId((ImU8String)text, true);
try
EInteractionType? eInteractionType = quest.FindSequence(0)?.LastStep()?.InteractionType;
if (!eInteractionType.HasValue || eInteractionType != EInteractionType.AcceptQuest || !_questFunctions.IsReadyToAcceptQuest(item.QuestId))
{
bool num = ImGuiComponents.IconButton(FontAwesomeIcon.Copy);
if (ImGui.IsItemHovered())
{
ImGui.SetTooltip("Copy as file name");
}
if (num)
{
CopyToClipboard(item, suffix: true);
}
else if (ImGui.IsItemClicked(ImGuiMouseButton.Right))
{
CopyToClipboard(item, suffix: false);
}
ImGui.SameLine();
if (quest == null)
{
continue;
}
EInteractionType? eInteractionType = quest.FindSequence(0)?.LastStep()?.InteractionType;
if (!eInteractionType.HasValue || eInteractionType != EInteractionType.AcceptQuest || !_questFunctions.IsReadyToAcceptQuest(item.QuestId))
{
continue;
}
ImGui.BeginDisabled(_questController.NextQuest != null || _questController.SimulatedQuest != null);
bool num2 = ImGuiComponents.IconButton(FontAwesomeIcon.Play);
if (ImGui.IsItemHovered())
{
ImGui.SetTooltip("Start as next quest");
}
if (num2)
{
_questController.SetNextQuest(quest);
if (!_questController.ManualPriorityQuests.Contains(quest))
{
_questController.ManualPriorityQuests.Insert(0, quest);
}
_questController.Start("QuestSelectionWindow");
}
ImGui.SameLine();
bool num3 = ImGuiComponents.IconButton(FontAwesomeIcon.AngleDoubleRight);
if (ImGui.IsItemHovered())
{
ImGui.SetTooltip("Set as next quest");
}
if (num3)
{
_questController.SetNextQuest(quest);
}
ImGui.EndDisabled();
continue;
}
finally
ImGui.BeginDisabled(_questController.NextQuest != null || _questController.SimulatedQuest != null);
bool num2 = ImGuiComponents.IconButton(FontAwesomeIcon.Play);
if (ImGui.IsItemHovered())
{
((IDisposable)val2)?.Dispose();
ImGui.SetTooltip("Start as next quest");
}
if (num2)
{
_questController.SetNextQuest(quest);
if (!_questController.ManualPriorityQuests.Contains(quest))
{
_questController.ManualPriorityQuests.Insert(0, quest);
}
_questController.Start("QuestSelectionWindow");
}
ImGui.SameLine();
bool num3 = ImGuiComponents.IconButton(FontAwesomeIcon.AngleDoubleRight);
if (ImGui.IsItemHovered())
{
ImGui.SetTooltip("Set as next quest");
}
if (num3)
{
_questController.SetNextQuest(quest);
}
ImGui.EndDisabled();
}
}
finally
{
((TableDisposable)(ref val)).Dispose();
}
}
private void CopyToClipboard(IQuestInfo quest, bool suffix)