Compare commits

...

No commits in common. "main" and "2fd865333f84f1cc6315dac6e82afb1607a45496" have entirely different histories.

14 changed files with 57 additions and 89 deletions

View File

@ -1,6 +1,6 @@

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuestMap", "QuestMap\QuestMap.csproj", "{63ACA302-ADBE-4353-A722-D38531C8A34D}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Quest Map", "Quest Map\Quest Map.csproj", "{63ACA302-ADBE-4353-A722-D38531C8A34D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

View File

@ -151,10 +151,16 @@ namespace QuestMap {
}
internal static IEnumerable<Quest> PreviousQuests(this Quest quest) {
foreach (var previous in quest.PreviousQuest) {
if (previous != null && previous.Row != 0) {
yield return previous.Value!;
}
if (quest.PreviousQuest0.Row != 0) {
yield return quest.PreviousQuest0.Value!;
}
if (quest.PreviousQuest1.Row != 0) {
yield return quest.PreviousQuest1.Value!;
}
if (quest.PreviousQuest2.Row != 0) {
yield return quest.PreviousQuest2.Value!;
}
}
}

View File

@ -1,31 +1,31 @@
using System.Threading.Channels;
using Dalamud.Data;
using Dalamud.Game.ClientState;
using Dalamud.Game.Command;
using Dalamud.Game.Gui;
using Dalamud.IoC;
using Dalamud.Plugin;
using Dalamud.Plugin.Services;
using XivCommon;
namespace QuestMap {
// ReSharper disable once ClassNeverInstantiated.Global
internal class Plugin : IDalamudPlugin {
internal static string Name => "Quest Map";
public string Name => "Quest Map";
[PluginService]
internal DalamudPluginInterface Interface { get; init; } = null!;
[PluginService]
internal IClientState ClientState { get; init; } = null!;
internal ClientState ClientState { get; init; } = null!;
[PluginService]
internal ICommandManager CommandManager { get; init; } = null!;
internal CommandManager CommandManager { get; init; } = null!;
[PluginService]
internal IDataManager DataManager { get; init; } = null!;
internal DataManager DataManager { get; init; } = null!;
[PluginService]
internal IGameGui GameGui { get; init; } = null!;
[PluginService]
internal ITextureProvider TextureProvider { get; init; } = null!;
internal GameGui GameGui { get; init; } = null!;
internal XivCommonBase Common { get; }
internal Configuration Config { get; }
@ -34,7 +34,7 @@ namespace QuestMap {
private Commands Commands { get; }
public Plugin() {
this.Common = new XivCommonBase(this.Interface);
this.Common = new XivCommonBase();
this.Config = this.Interface.GetPluginConfig() as Configuration ?? new Configuration();
var graphChannel = Channel.CreateUnbounded<GraphInfo>();

View File

@ -9,8 +9,8 @@ using Dalamud;
using Dalamud.Game.Text.SeStringHandling;
using Dalamud.Game.Text.SeStringHandling.Payloads;
using Dalamud.Interface;
using Dalamud.Interface.Internal;
using ImGuiNET;
using ImGuiScene;
using Lumina.Data;
using Lumina.Excel;
using Lumina.Excel.GeneratedSheets;
@ -41,7 +41,7 @@ namespace QuestMap {
private ChannelReader<GraphInfo> GraphChannel { get; }
private CancellationTokenSource? CancellationTokenSource { get; set; }
private HashSet<uint> InfoWindows { get; } = new();
private Dictionary<uint, IDalamudTextureWrap> Icons { get; } = new();
private Dictionary<uint, TextureWrap> Icons { get; } = new();
private List<(Quest, bool, string)> FilteredQuests { get; } = new();
internal bool Show;
@ -198,7 +198,7 @@ namespace QuestMap {
ImGui.SetNextWindowSize(new Vector2(675, 600), ImGuiCond.FirstUseEver);
if (!ImGui.Begin(Plugin.Name, ref this.Show, ImGuiWindowFlags.MenuBar)) {
if (!ImGui.Begin(this.Plugin.Name, ref this.Show, ImGuiWindowFlags.MenuBar)) {
ImGui.End();
return;
}
@ -398,12 +398,12 @@ namespace QuestMap {
ImGui.PopFont();
}
IDalamudTextureWrap? GetIcon(uint id) {
TextureWrap? GetIcon(uint id) {
if (this.Icons.TryGetValue(id, out var wrap)) {
return wrap;
}
wrap = this.Plugin.TextureProvider.GetIcon(id);
wrap = this.Plugin.DataManager.GetImGuiTextureIcon(this.Plugin.ClientState.ClientLanguage, id);
if (wrap != null) {
this.Icons[id] = wrap;
}
@ -535,8 +535,8 @@ namespace QuestMap {
if (quest.ItemRewardType is 0 or 1 or 3 or 5) {
DrawItemRewards(
"Rewards",
quest.ItemReward
.Zip(quest.ItemCountReward, (id, qty) => (id, qty))
quest.ItemReward0
.Zip(quest.ItemCountReward0, (id, qty) => (id, qty))
.Where(entry => entry.id != 0)
.Select(entry => (item: this.Plugin.DataManager.GetExcelSheet<Item>()!.GetRow(entry.id), entry.qty))
.Where(entry => entry.item != null)
@ -546,8 +546,8 @@ namespace QuestMap {
DrawItemRewards(
"Optional rewards",
quest.OptionalItemReward
.Zip(quest.OptionalItemCountReward, (row, qty) => (row, qty))
quest.ItemReward1
.Zip(quest.ItemCountReward1, (row, qty) => (row, qty))
.Where(entry => entry.row.Row != 0)
.Select(entry => (item: entry.row.Value, entry.qty))
.Where(entry => entry.item != null)

View File

@ -1,53 +1,52 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7-windows</TargetFramework>
<TargetFramework>net5-windows</TargetFramework>
<RootNamespace>QuestMap</RootNamespace>
<Version>1.4.7</Version>
<Version>1.4.0</Version>
<Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
<ProduceReferenceAssembly>false</ProduceReferenceAssembly>
</PropertyGroup>
<PropertyGroup>
<DalamudLibPath>$(AppData)\XIVLauncher\addon\Hooks\dev</DalamudLibPath>
</PropertyGroup>
<PropertyGroup Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))'">
<DalamudLibPath>$(DALAMUD_HOME)</DalamudLibPath>
</PropertyGroup>
<PropertyGroup Condition="'$(IsCI)' == 'true'">
<DalamudLibPath>$(HOME)/dalamud</DalamudLibPath>
<IgnoredLints>
D0008
</IgnoredLints>
</PropertyGroup>
<ItemGroup>
<Reference Include="Dalamud">
<HintPath>$(DalamudLibPath)\Dalamud.dll</HintPath>
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\Dalamud.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ImGui.NET">
<HintPath>$(DalamudLibPath)\ImGui.NET.dll</HintPath>
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\ImGui.NET.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ImGuiScene">
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\ImGuiScene.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Lumina">
<HintPath>$(DalamudLibPath)\Lumina.dll</HintPath>
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\Lumina.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Lumina.Excel">
<HintPath>$(DalamudLibPath)\Lumina.Excel.dll</HintPath>
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\Lumina.Excel.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="AutomaticGraphLayout" Version="1.1.12"/>
<PackageReference Include="DalamudPackager" Version="2.1.12"/>
<PackageReference Include="System.Threading.Channels" Version="7.0.0"/>
<PackageReference Include="XivCommon" Version="9.0.0"/>
<PackageReference Include="DalamudLinter" Version="1.0.3"/>
<PackageReference Include="DalamudPackager" Version="2.1.2"/>
<PackageReference Include="System.Threading.Channels" Version="5.0.0"/>
<PackageReference Include="XivCommon" Version="3.0.2"/>
</ItemGroup>
<ItemGroup>
<Content Include="..\icon.png" Link="images/icon.png" CopyToOutputDirectory="PreserveNewest" Visible="false"/>
</ItemGroup>
</Project>

View File

@ -1,5 +1,5 @@
name: Quest Map
author: Anna
author: ascclemens
punchline: Explore quests and their rewards.
description: |-
Explore quests and their rewards.
@ -11,4 +11,4 @@ description: |-
Icons: treasure map by Anthony Ledoux from the Noun Project and
locked book by Anthony Ledoux from the Noun Project
repo_url: https://git.anna.lgbt/anna/QuestMap
repo_url: https://git.sr.ht/~jkcclemens/QuestMap

View File

@ -52,7 +52,7 @@ namespace QuestMap {
emoteRewards[quest.RowId] = quest.EmoteReward.Value!;
}
foreach (var row in quest.ItemReward.Where(item => item != 0)) {
foreach (var row in quest.ItemReward0.Where(item => item != 0)) {
var item = this.Plugin.DataManager.GetExcelSheet<Item>()!.GetRow(row);
if (item == null) {
continue;
@ -69,7 +69,7 @@ namespace QuestMap {
rewards.Add(item);
}
foreach (var row in quest.OptionalItemReward.Where(item => item.Row != 0)) {
foreach (var row in quest.ItemReward1.Where(item => item.Row != 0)) {
var item = row.Value;
List<Item> rewards;
@ -220,8 +220,8 @@ namespace QuestMap {
}
var name = quest.RowId switch {
70058 => "A Realm Reborn (2.0)",
66729 => "A Realm Awoken (2.1)",
66060 => "A Realm Reborn (2.0)",
69414 => "A Realm Awoken (2.1)",
66899 => "Through the Maelstrom (2.2)",
66996 => "Defenders of Eorzea (2.3)",
65625 => "Dreams of Ice (2.4)",
@ -248,12 +248,6 @@ namespace QuestMap {
69552 => "Futures Rewritten (5.4)",
69599 => "Death Unto Dawn - Part 1 (5.5)",
69602 => "Death Unto Dawn - Part 2 (5.55)",
70000 => "Endwalker (6.0)",
70062 => "Newfound Adventure (6.1)",
70136 => "Buried Memory (6.2)",
70214 => "Gods Revel, Lands Tremble (6.3)",
70279 => "The Dark Throne (6.4)",
70286 => "Growing Light (6.5)",
_ => null,
};

View File

@ -1,31 +0,0 @@
{
"version": 1,
"dependencies": {
"net7.0-windows7.0": {
"AutomaticGraphLayout": {
"type": "Direct",
"requested": "[1.1.12, )",
"resolved": "1.1.12",
"contentHash": "Txc1uVLwnKemnPWmGSAVSZaBR95VTxU7/LfarvSOuJC6KuwPW4xrLpIGTOUbCXYZiSnkxN2jiC3FwX/2051+9g=="
},
"DalamudPackager": {
"type": "Direct",
"requested": "[2.1.12, )",
"resolved": "2.1.12",
"contentHash": "Sc0PVxvgg4NQjcI8n10/VfUQBAS4O+Fw2pZrAqBdRMbthYGeogzu5+xmIGCGmsEZ/ukMOBuAqiNiB5qA3MRalg=="
},
"System.Threading.Channels": {
"type": "Direct",
"requested": "[7.0.0, )",
"resolved": "7.0.0",
"contentHash": "qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA=="
},
"XivCommon": {
"type": "Direct",
"requested": "[9.0.0, )",
"resolved": "9.0.0",
"contentHash": "avaBp3FmSCi/PiQhntCeBDYOHejdyTWmFtz4pRBVQQ8vHkmRx+YTk1la9dkYBMlXxRXKckEdH1iI1Fu61JlE7w=="
}
}
}
}