From 985fb7f4c1c1f68b6299d8a45764479b7476e63f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Tue, 16 Jul 2024 10:52:54 +0200 Subject: [PATCH] Always show validation issues (for quests you can edit) --- Questionable/Controller/QuestRegistry.cs | 16 +++++----------- Questionable/Model/Quest.cs | 1 + Questionable/Validation/QuestValidator.cs | 2 +- Questionable/Windows/QuestWindow.cs | 2 -- 4 files changed, 7 insertions(+), 14 deletions(-) diff --git a/Questionable/Controller/QuestRegistry.cs b/Questionable/Controller/QuestRegistry.cs index e0e03630..b179b858 100644 --- a/Questionable/Controller/QuestRegistry.cs +++ b/Questionable/Controller/QuestRegistry.cs @@ -3,15 +3,11 @@ using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; -using System.Linq; using System.IO; -using System.Numerics; +using System.Linq; using System.Text.Json; -using System.Threading.Tasks; using Dalamud.Plugin; -using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; -using Questionable.Controller.Utils; using Questionable.Data; using Questionable.Model; using Questionable.Model.V1; @@ -23,18 +19,16 @@ internal sealed class QuestRegistry { private readonly IDalamudPluginInterface _pluginInterface; private readonly QuestData _questData; - private readonly IChatGui _chatGui; private readonly QuestValidator _questValidator; private readonly ILogger _logger; private readonly Dictionary _quests = new(); - public QuestRegistry(IDalamudPluginInterface pluginInterface, QuestData questData, IChatGui chatGui, + public QuestRegistry(IDalamudPluginInterface pluginInterface, QuestData questData, QuestValidator questValidator, ILogger logger) { _pluginInterface = pluginInterface; _questData = questData; - _chatGui = chatGui; _questValidator = questValidator; _logger = logger; } @@ -76,6 +70,7 @@ internal sealed class QuestRegistry QuestId = questId, Root = questRoot, Info = _questData.GetQuestInfo(questId), + ReadOnly = true, }; _quests[questId] = quest; } @@ -111,14 +106,12 @@ internal sealed class QuestRegistry } } - [Conditional("DEBUG")] private void ValidateQuests() { _questValidator.ClearIssues(); - _questValidator.Validate(_quests.Values); + _questValidator.Validate(_quests.Values.Where(x => !x.ReadOnly)); } - private void LoadQuestFromStream(string fileName, Stream stream) { _logger.LogTrace("Loading quest from '{FileName}'", fileName); @@ -131,6 +124,7 @@ internal sealed class QuestRegistry QuestId = questId.Value, Root = JsonSerializer.Deserialize(stream)!, Info = _questData.GetQuestInfo(questId.Value), + ReadOnly = false, }; _quests[questId.Value] = quest; } diff --git a/Questionable/Model/Quest.cs b/Questionable/Model/Quest.cs index e70911ae..9bdf6cb5 100644 --- a/Questionable/Model/Quest.cs +++ b/Questionable/Model/Quest.cs @@ -8,6 +8,7 @@ internal sealed class Quest public required ushort QuestId { get; init; } public required QuestRoot Root { get; init; } public required QuestInfo Info { get; init; } + public required bool ReadOnly { get; init; } public QuestSequence? FindSequence(byte currentSequence) => Root.QuestSequence.SingleOrDefault(seq => seq.Sequence == currentSequence); diff --git a/Questionable/Validation/QuestValidator.cs b/Questionable/Validation/QuestValidator.cs index 83bb9d42..931d8786 100644 --- a/Questionable/Validation/QuestValidator.cs +++ b/Questionable/Validation/QuestValidator.cs @@ -27,7 +27,7 @@ internal sealed class QuestValidator public void ClearIssues() => _validationIssues.Clear(); - public void Validate(IReadOnlyCollection quests) + public void Validate(IEnumerable quests) { Task.Run(() => { diff --git a/Questionable/Windows/QuestWindow.cs b/Questionable/Windows/QuestWindow.cs index 2709ab0b..92d87681 100644 --- a/Questionable/Windows/QuestWindow.cs +++ b/Questionable/Windows/QuestWindow.cs @@ -577,7 +577,6 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig TimeSpan.FromMilliseconds(200)); } -#if DEBUG if (_questRegistry.ValidationIssueCount > 0) { ImGui.SameLine(); @@ -587,7 +586,6 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig $"{_questRegistry.ValidationIssueCount}")) _questValidationWindow.IsOpen = true; } -#endif } private void DrawRemainingTasks()