1
0
Fork 0
forked from aly/qstbak

muffin v7.5.0

This commit is contained in:
alydev 2026-05-01 05:17:35 +10:00
parent afafd5e377
commit a6481e7b9a
67 changed files with 4281 additions and 2372 deletions

View file

@ -74,22 +74,32 @@ internal sealed class PluginConfigComponent : ConfigComponent
public override void DrawTab()
{
using ImRaii.IEndObject endObject = ImRaii.TabItem("Dependencies###Plugins");
if (!(!endObject))
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
TabItemDisposable val = ImRaii.TabItem((ImU8String)"Dependencies###Plugins");
try
{
Draw(out var allRequiredInstalled);
ImGui.Spacing();
ImGui.Separator();
ImGui.Spacing();
if (allRequiredInstalled)
if (!(!val))
{
ImGui.TextColored(ImGuiColors.ParsedGreen, "All required plugins are installed.");
}
else
{
ImGui.TextColored(ImGuiColors.DalamudRed, "Required plugins are missing, Questionable will not work properly.");
Draw(out var allRequiredInstalled);
ImGui.Spacing();
ImGui.Separator();
ImGui.Spacing();
if (allRequiredInstalled)
{
ImGui.TextColored(ImGuiColors.ParsedGreen, "All required plugins are installed.");
}
else
{
ImGui.TextColored(ImGuiColors.DalamudRed, "Required plugins are missing, Questionable will not work properly.");
}
}
}
finally
{
((TabItemDisposable)(ref val)).Dispose();
}
}
public void Draw(out bool allRequiredInstalled)
@ -101,20 +111,27 @@ internal sealed class PluginConfigComponent : ConfigComponent
}
ImGui.Text("Questionable requires the following plugins to work:");
allRequiredInstalled = true;
using (ImRaii.PushIndent())
IndentDisposable val = ImRaii.PushIndent(1, true);
try
{
foreach (PluginInfo requiredPlugin in RequiredPlugins)
{
allRequiredInstalled &= DrawPlugin(requiredPlugin, checklistPadding);
}
}
finally
{
((IDisposable)val)?.Dispose();
}
ImGui.Spacing();
ImGui.Separator();
ImGui.Spacing();
ImGui.Text("Questionable supports multiple rotation/combat plugins, please pick the one\nyou want to use:");
using (ImRaii.PushIndent())
val = ImRaii.PushIndent(1, true);
try
{
using (ImRaii.Disabled(_combatController.IsRunning))
DisabledDisposable val2 = ImRaii.Disabled(_combatController.IsRunning);
try
{
if (ImGui.RadioButton("No rotation/combat plugin (combat must be done manually)", _configuration.General.CombatModule == Questionable.Configuration.ECombatModule.None))
{
@ -125,23 +142,37 @@ internal sealed class PluginConfigComponent : ConfigComponent
allRequiredInstalled &= DrawCombatPlugin(Questionable.Configuration.ECombatModule.RotationSolverReborn, checklistPadding);
allRequiredInstalled &= DrawCombatPlugin(Questionable.Configuration.ECombatModule.WrathCombo, checklistPadding);
}
finally
{
((IDisposable)val2)?.Dispose();
}
}
finally
{
((IDisposable)val)?.Dispose();
}
ImGui.Spacing();
ImGui.Separator();
ImGui.Spacing();
ImGui.Text("The following plugins are recommended, but not required:");
using (ImRaii.PushIndent())
val = ImRaii.PushIndent(1, true);
try
{
foreach (PluginInfo recommendedPlugin in _recommendedPlugins)
{
DrawPlugin(recommendedPlugin, checklistPadding);
}
}
finally
{
((IDisposable)val)?.Dispose();
}
}
private bool DrawPlugin(PluginInfo plugin, float checklistPadding)
{
using (ImRaii.PushId("plugin_" + plugin.DisplayName))
IdDisposable val = ImRaii.PushId((ImU8String)("plugin_" + plugin.DisplayName), true);
try
{
IExposedPlugin exposedPlugin = FindInstalledPlugin(plugin);
bool flag = exposedPlugin != null;
@ -154,13 +185,18 @@ internal sealed class PluginConfigComponent : ConfigComponent
DrawPluginDetails(plugin, checklistPadding, flag);
return flag;
}
finally
{
((IDisposable)val)?.Dispose();
}
}
private bool DrawCombatPlugin(Configuration.ECombatModule combatModule, float checklistPadding)
{
ImGui.Spacing();
PluginInfo pluginInfo = CombatPlugins[combatModule];
using (ImRaii.PushId("plugin_" + pluginInfo.DisplayName))
IdDisposable val = ImRaii.PushId((ImU8String)("plugin_" + pluginInfo.DisplayName), true);
try
{
IExposedPlugin exposedPlugin = FindInstalledPlugin(pluginInfo);
bool flag = exposedPlugin != null;
@ -185,11 +221,16 @@ internal sealed class PluginConfigComponent : ConfigComponent
DrawPluginDetails(pluginInfo, checklistPadding, flag);
return flag || _configuration.General.CombatModule != combatModule;
}
finally
{
((IDisposable)val)?.Dispose();
}
}
private void DrawPluginDetails(PluginInfo plugin, float checklistPadding, bool isInstalled)
{
using (ImRaii.PushIndent(checklistPadding))
IndentDisposable val = ImRaii.PushIndent(checklistPadding, true, true);
try
{
if (!string.IsNullOrEmpty(plugin.Details))
{
@ -205,10 +246,15 @@ internal sealed class PluginConfigComponent : ConfigComponent
_uiUtils.ChecklistItem(item.DisplayName, isInstalled && flag2);
if (!string.IsNullOrEmpty(item.Details))
{
using (ImRaii.PushIndent(checklistPadding))
IndentDisposable val2 = ImRaii.PushIndent(checklistPadding, true, true);
try
{
ImGui.TextUnformatted(item.Details);
}
finally
{
((IDisposable)val2)?.Dispose();
}
}
}
}
@ -239,6 +285,10 @@ internal sealed class PluginConfigComponent : ConfigComponent
ImGuiComponents.HelpMarker("Available on official Dalamud Repository");
}
}
finally
{
((IDisposable)val)?.Dispose();
}
}
private IExposedPlugin? FindInstalledPlugin(PluginInfo pluginInfo)