punish v6.8.18.0
This commit is contained in:
commit
cfb4dea47e
316 changed files with 554088 additions and 0 deletions
|
@ -0,0 +1,76 @@
|
|||
using Dalamud.Bindings.ImGui;
|
||||
using Dalamud.Interface;
|
||||
using Dalamud.Interface.Components;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using Dalamud.Plugin.Services;
|
||||
using Questionable.Controller;
|
||||
using Questionable.Functions;
|
||||
using Questionable.Model;
|
||||
using Questionable.Model.Questing;
|
||||
|
||||
namespace Questionable.Windows.JournalComponents;
|
||||
|
||||
internal sealed class QuestJournalUtils
|
||||
{
|
||||
private readonly QuestController _questController;
|
||||
|
||||
private readonly QuestFunctions _questFunctions;
|
||||
|
||||
private readonly ICommandManager _commandManager;
|
||||
|
||||
public QuestJournalUtils(QuestController questController, QuestFunctions questFunctions, ICommandManager commandManager)
|
||||
{
|
||||
_questController = questController;
|
||||
_questFunctions = questFunctions;
|
||||
_commandManager = commandManager;
|
||||
}
|
||||
|
||||
public void ShowContextMenu(IQuestInfo questInfo, Quest? quest, string label)
|
||||
{
|
||||
ImU8String strId;
|
||||
if (ImGui.IsItemClicked(ImGuiMouseButton.Right))
|
||||
{
|
||||
strId = new ImU8String(12, 1);
|
||||
strId.AppendLiteral("##QuestPopup");
|
||||
strId.AppendFormatted(questInfo.QuestId);
|
||||
ImGui.OpenPopup(strId);
|
||||
}
|
||||
strId = new ImU8String(12, 1);
|
||||
strId.AppendLiteral("##QuestPopup");
|
||||
strId.AppendFormatted(questInfo.QuestId);
|
||||
using ImRaii.IEndObject endObject = ImRaii.Popup(strId);
|
||||
if (!endObject)
|
||||
{
|
||||
return;
|
||||
}
|
||||
using (ImRaii.Disabled(!_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId)))
|
||||
{
|
||||
if (ImGui.MenuItem("Start as next quest"))
|
||||
{
|
||||
_questController.SetNextQuest(quest);
|
||||
_questController.Start(label);
|
||||
}
|
||||
}
|
||||
bool flag = _commandManager.Commands.ContainsKey("/questinfo");
|
||||
using (ImRaii.Disabled(!(questInfo.QuestId is QuestId) || !flag))
|
||||
{
|
||||
if (ImGui.MenuItem("View in Quest Map"))
|
||||
{
|
||||
_commandManager.ProcessCommand($"/questinfo {questInfo.QuestId}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal static void ShowFilterContextMenu(QuestJournalComponent journalUi)
|
||||
{
|
||||
if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Filter, "Filter"))
|
||||
{
|
||||
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)))
|
||||
{
|
||||
journalUi.UpdateFilter();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue