Add config option for TA settings

This commit is contained in:
Liza 2024-10-05 14:32:29 +02:00
parent b22081cafe
commit 708e260eee
Signed by: liza
GPG Key ID: 7199F8D727D55F67
4 changed files with 19 additions and 5 deletions

View File

@ -1,5 +1,5 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<Version>3.8</Version> <Version>3.9</Version>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@ -20,6 +20,7 @@ internal sealed class Configuration : IPluginConfiguration
public bool UseEscToCancelQuesting { get; set; } = true; public bool UseEscToCancelQuesting { get; set; } = true;
public bool ShowIncompleteSeasonalEvents { get; set; } = true; public bool ShowIncompleteSeasonalEvents { get; set; } = true;
public bool AutomaticallyCompleteSnipeTasks { get; set; } public bool AutomaticallyCompleteSnipeTasks { get; set; }
public bool ConfigureTextAdvance { get; set; } = true;
} }
internal sealed class AdvancedConfiguration internal sealed class AdvancedConfiguration

View File

@ -6,6 +6,7 @@ using Questionable.Controller;
using Questionable.Data; using Questionable.Data;
using Questionable.Model.Common; using Questionable.Model.Common;
using System; using System;
using System.Diagnostics.CodeAnalysis;
namespace Questionable.External; namespace Questionable.External;
@ -13,6 +14,7 @@ internal sealed class TextAdvanceIpc : IDisposable
{ {
private bool _isExternalControlActivated; private bool _isExternalControlActivated;
private readonly QuestController _questController; private readonly QuestController _questController;
private readonly Configuration _configuration;
private readonly IFramework _framework; private readonly IFramework _framework;
private readonly ICallGateSubscriber<bool> _isInExternalControl; private readonly ICallGateSubscriber<bool> _isInExternalControl;
private readonly ICallGateSubscriber<string, ExternalTerritoryConfig, bool> _enableExternalControl; private readonly ICallGateSubscriber<string, ExternalTerritoryConfig, bool> _enableExternalControl;
@ -20,10 +22,11 @@ internal sealed class TextAdvanceIpc : IDisposable
private readonly string _pluginName; private readonly string _pluginName;
private readonly ExternalTerritoryConfig _externalTerritoryConfig = new(); private readonly ExternalTerritoryConfig _externalTerritoryConfig = new();
public TextAdvanceIpc(IDalamudPluginInterface pluginInterface, IFramework framework, QuestController questController) public TextAdvanceIpc(IDalamudPluginInterface pluginInterface, IFramework framework, QuestController questController, Configuration configuration)
{ {
_framework = framework; _framework = framework;
_questController = questController; _questController = questController;
_configuration = configuration;
_isInExternalControl = pluginInterface.GetIpcSubscriber<bool>("TextAdvance.IsInExternalControl"); _isInExternalControl = pluginInterface.GetIpcSubscriber<bool>("TextAdvance.IsInExternalControl");
_enableExternalControl = pluginInterface.GetIpcSubscriber<string, ExternalTerritoryConfig, bool>("TextAdvance.EnableExternalControl"); _enableExternalControl = pluginInterface.GetIpcSubscriber<string, ExternalTerritoryConfig, bool>("TextAdvance.EnableExternalControl");
_disableExternalControl = pluginInterface.GetIpcSubscriber<string, bool>("TextAdvance.DisableExternalControl"); _disableExternalControl = pluginInterface.GetIpcSubscriber<string, bool>("TextAdvance.DisableExternalControl");
@ -40,9 +43,9 @@ internal sealed class TextAdvanceIpc : IDisposable
} }
} }
public void OnUpdate(IFramework framework) private void OnUpdate(IFramework framework)
{ {
if(_questController.IsRunning) if(_configuration.General.ConfigureTextAdvance && _questController.IsRunning)
{ {
if(!_isInExternalControl.InvokeFunc()) if(!_isInExternalControl.InvokeFunc())
{ {
@ -64,8 +67,10 @@ internal sealed class TextAdvanceIpc : IDisposable
} }
} }
public class ExternalTerritoryConfig [SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
public sealed class ExternalTerritoryConfig
{ {
#pragma warning disable CS0414 // Field is assigned but its value is never used
public bool? EnableQuestAccept = true; public bool? EnableQuestAccept = true;
public bool? EnableQuestComplete = true; public bool? EnableQuestComplete = true;
public bool? EnableRewardPick = true; public bool? EnableRewardPick = true;
@ -75,5 +80,6 @@ internal sealed class TextAdvanceIpc : IDisposable
public bool? EnableTalkSkip = true; public bool? EnableTalkSkip = true;
public bool? EnableRequestFill = true; public bool? EnableRequestFill = true;
public bool? EnableAutoInteract = false; public bool? EnableAutoInteract = false;
#pragma warning restore CS0414 // Field is assigned but its value is never used
} }
} }

View File

@ -90,6 +90,13 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig
Save(); Save();
} }
bool configureTextAdvance = _configuration.General.ConfigureTextAdvance;
if (ImGui.Checkbox("Automatically configure TextAdvance with the recommended settings", ref configureTextAdvance))
{
_configuration.General.ConfigureTextAdvance = configureTextAdvance;
Save();
}
if (ImGui.CollapsingHeader("Cheats")) if (ImGui.CollapsingHeader("Cheats"))
{ {
ImGui.TextColored(ImGuiColors.DalamudRed, "This setting will be removed in a future version, and will be\navailable through TextAdvance instead."); ImGui.TextColored(ImGuiColors.DalamudRed, "This setting will be removed in a future version, and will be\navailable through TextAdvance instead.");