This commit is contained in:
Liza 2024-08-03 21:33:52 +02:00
parent 36a0f72bd9
commit ea100613ce
Signed by: liza
GPG Key ID: 7199F8D727D55F67
19 changed files with 1970 additions and 7 deletions

View File

@ -0,0 +1,9 @@
using Dalamud.Configuration;
namespace GatheringPathRenderer;
internal sealed class Configuration : IPluginConfiguration
{
public int Version { get; set; } = 1;
public string AuthorName { get; set; } = "?";
}

View File

@ -26,9 +26,10 @@ internal sealed class EditorCommands : IDisposable
private readonly ITargetManager _targetManager; private readonly ITargetManager _targetManager;
private readonly IClientState _clientState; private readonly IClientState _clientState;
private readonly IChatGui _chatGui; private readonly IChatGui _chatGui;
private readonly Configuration _configuration;
public EditorCommands(RendererPlugin plugin, IDataManager dataManager, ICommandManager commandManager, public EditorCommands(RendererPlugin plugin, IDataManager dataManager, ICommandManager commandManager,
ITargetManager targetManager, IClientState clientState, IChatGui chatGui) ITargetManager targetManager, IClientState clientState, IChatGui chatGui, Configuration configuration)
{ {
_plugin = plugin; _plugin = plugin;
_dataManager = dataManager; _dataManager = dataManager;
@ -36,6 +37,7 @@ internal sealed class EditorCommands : IDisposable
_targetManager = targetManager; _targetManager = targetManager;
_clientState = clientState; _clientState = clientState;
_chatGui = chatGui; _chatGui = chatGui;
_configuration = configuration;
_commandManager.AddHandler("/qg", new CommandInfo(ProcessCommand)); _commandManager.AddHandler("/qg", new CommandInfo(ProcessCommand));
} }
@ -183,6 +185,7 @@ internal sealed class EditorCommands : IDisposable
$"{gatheringPoint.GatheringPointBase.Row}_{gatheringPoint.PlaceName.Value!.Name}_{(_clientState.LocalPlayer!.ClassJob.Id == 16 ? "MIN" : "BTN")}.json")); $"{gatheringPoint.GatheringPointBase.Row}_{gatheringPoint.PlaceName.Value!.Name}_{(_clientState.LocalPlayer!.ClassJob.Id == 16 ? "MIN" : "BTN")}.json"));
var root = new GatheringRoot var root = new GatheringRoot
{ {
Author = [_configuration.AuthorName],
TerritoryId = _clientState.TerritoryType, TerritoryId = _clientState.TerritoryType,
Groups = Groups =
[ [

View File

@ -2,7 +2,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Security.Cryptography;
using System.Text.Json; using System.Text.Json;
using System.Text.Json.Nodes; using System.Text.Json.Nodes;
using System.Text.Json.Serialization; using System.Text.Json.Serialization;
@ -13,7 +12,6 @@ using Dalamud.Plugin.Services;
using ECommons; using ECommons;
using ECommons.Schedulers; using ECommons.Schedulers;
using ECommons.SplatoonAPI; using ECommons.SplatoonAPI;
using FFXIVClientStructs.FFXIV.Common.Math;
using GatheringPathRenderer.Windows; using GatheringPathRenderer.Windows;
using Questionable.Model; using Questionable.Model;
using Questionable.Model.Gathering; using Questionable.Model.Gathering;
@ -44,7 +42,15 @@ public sealed class RendererPlugin : IDalamudPlugin
_clientState = clientState; _clientState = clientState;
_pluginLog = pluginLog; _pluginLog = pluginLog;
_editorCommands = new EditorCommands(this, dataManager, commandManager, targetManager, clientState, chatGui); Configuration? configuration = (Configuration?)pluginInterface.GetPluginConfig();
if (configuration == null)
{
configuration = new Configuration();
pluginInterface.SavePluginConfig(configuration);
}
_editorCommands = new EditorCommands(this, dataManager, commandManager, targetManager, clientState, chatGui,
configuration);
_editorWindow = new EditorWindow(this, _editorCommands, dataManager, targetManager, clientState, objectTable) _editorWindow = new EditorWindow(this, _editorCommands, dataManager, targetManager, clientState, objectTable)
{ IsOpen = true }; { IsOpen = true };
_windowSystem.AddWindow(_editorWindow); _windowSystem.AddWindow(_editorWindow);
@ -221,7 +227,8 @@ public sealed class RendererPlugin : IDalamudPlugin
refX = x.Position.X, refX = x.Position.X,
refY = x.Position.Z, refY = x.Position.Z,
refZ = x.Position.Y, refZ = x.Position.Y,
color = 0x00000000, color = 0xFFFFFFFF,
radius = 0.1f,
Enabled = true, Enabled = true,
overlayText = overlayText =
$"{location.Root.Groups.IndexOf(group)} // {node.DataId} / {node.Locations.IndexOf(x)}", $"{location.Root.Groups.IndexOf(group)} // {node.DataId} / {node.Locations.IndexOf(x)}",

View File

@ -103,7 +103,7 @@ internal sealed class EditorWindow : Window
ImGui.Indent(); ImGui.Indent();
ImGui.Text(context.File.Name); ImGui.Text(context.File.Name);
ImGui.Unindent(); ImGui.Unindent();
ImGui.Text($"{_target.DataId} // {location.InternalId}"); ImGui.Text($"{_target.DataId} +{node.Locations.Count-1} / {location.InternalId.ToString().Substring(0, 4)}");
ImGui.Text(string.Create(CultureInfo.InvariantCulture, $"{location.Position:G}")); ImGui.Text(string.Create(CultureInfo.InvariantCulture, $"{location.Position:G}"));
if (!_changes.TryGetValue(location.InternalId, out LocationOverride? locationOverride)) if (!_changes.TryGetValue(location.InternalId, out LocationOverride? locationOverride))

View File

@ -0,0 +1,137 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"TerritoryId": 613,
"Groups": [
{
"Nodes": [
{
"DataId": 32205,
"Locations": [
{
"Position": {
"X": 58.18178,
"Y": 2.700867,
"Z": -778.6965
},
"MinimumAngle": 45,
"MaximumAngle": 235
}
]
},
{
"DataId": 32204,
"Locations": [
{
"Position": {
"X": 72.41409,
"Y": 3.151178,
"Z": -776.8186
},
"MinimumAngle": 80,
"MaximumAngle": 255
}
]
}
]
},
{
"Nodes": [
{
"DataId": 32200,
"Locations": [
{
"Position": {
"X": -69.36879,
"Y": 3.296089,
"Z": -821.5594
},
"MinimumAngle": -120,
"MaximumAngle": 40
}
]
},
{
"DataId": 32201,
"Locations": [
{
"Position": {
"X": -69.29061,
"Y": 3.013922,
"Z": -803.5723
},
"MinimumAngle": 30,
"MaximumAngle": 185
},
{
"Position": {
"X": -58.63464,
"Y": 2.637568,
"Z": -819.6691
},
"MinimumAngle": 0,
"MaximumAngle": 195
},
{
"Position": {
"X": -58.09113,
"Y": 3.463745,
"Z": -787.4418
}
}
]
}
]
},
{
"Nodes": [
{
"DataId": 32202,
"Locations": [
{
"Position": {
"X": -73.56532,
"Y": 2.819433,
"Z": -633.0066
},
"MinimumAngle": 195,
"MaximumAngle": 335
}
]
},
{
"DataId": 32203,
"Locations": [
{
"Position": {
"X": -22.5884,
"Y": 3.535999,
"Z": -617.6862
},
"MinimumAngle": 35,
"MaximumAngle": 225
},
{
"Position": {
"X": -84.8622,
"Y": 3.222104,
"Z": -642.1901
},
"MinimumAngle": 75,
"MaximumAngle": 305
},
{
"Position": {
"X": -74.18819,
"Y": 2.731044,
"Z": -645.1037
},
"MinimumAngle": 20,
"MaximumAngle": 220
}
]
}
]
}
]
}

View File

@ -0,0 +1,113 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"TerritoryId": 961,
"AetheryteShortcut": "Elpis - Anagnorisis",
"Groups": [
{
"Nodes": [
{
"DataId": 34020,
"Locations": [
{
"Position": {
"X": 44.78436,
"Y": 7.229512,
"Z": 98.57001
}
}
]
},
{
"DataId": 34021,
"Locations": [
{
"Position": {
"X": 46.74728,
"Y": 7.877012,
"Z": 88.79111
}
},
{
"Position": {
"X": 34.40783,
"Y": 3.908499,
"Z": 67.13975
}
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34023,
"Locations": [
{
"Position": {
"X": -91.27831,
"Y": -8.489767,
"Z": 69.08894
}
},
{
"Position": {
"X": -117.3572,
"Y": -11.70367,
"Z": 38.49854
}
}
]
},
{
"DataId": 34022,
"Locations": [
{
"Position": {
"X": -124.86,
"Y": -11.29384,
"Z": 89.80068
}
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34019,
"Locations": [
{
"Position": {
"X": -13.48685,
"Y": 4.629431,
"Z": 208.5452
}
},
{
"Position": {
"X": -65.74567,
"Y": -2.738637,
"Z": 195.961
}
}
]
},
{
"DataId": 34018,
"Locations": [
{
"Position": {
"X": -41.94958,
"Y": -0.697382,
"Z": 173.7239
}
}
]
}
]
}
]
}

View File

@ -0,0 +1,131 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"TerritoryId": 958,
"AetheryteShortcut": "Garlemald - Camp Broken Glass",
"Groups": [
{
"Nodes": [
{
"DataId": 34002,
"Locations": [
{
"Position": {
"X": -278.0806,
"Y": 23.49333,
"Z": 457.1718
},
"MinimumAngle": 155,
"MaximumAngle": 360
},
{
"Position": {
"X": -247.303,
"Y": 24.73875,
"Z": 431.0542
},
"MinimumAngle": 55,
"MaximumAngle": 265
}
]
},
{
"DataId": 34001,
"Locations": [
{
"Position": {
"X": -231.6437,
"Y": 23.05049,
"Z": 438.9474
},
"MinimumAngle": 135,
"MaximumAngle": 340
}
]
}
]
},
{
"Nodes": [
{
"DataId": 33999,
"Locations": [
{
"Position": {
"X": -224.5309,
"Y": 18.15879,
"Z": 302.212
},
"MinimumAngle": -20,
"MaximumAngle": 180
}
]
},
{
"DataId": 34000,
"Locations": [
{
"Position": {
"X": -201.1902,
"Y": 17.46593,
"Z": 293.0554
},
"MinimumAngle": -20,
"MaximumAngle": 180
},
{
"Position": {
"X": -206.8405,
"Y": 21.01518,
"Z": 327.3298
},
"MinimumAngle": 0,
"MaximumAngle": 205
}
]
}
]
},
{
"Nodes": [
{
"DataId": 33998,
"Locations": [
{
"Position": {
"X": -356.6845,
"Y": 25.77399,
"Z": 371.3325
},
"MinimumAngle": -245,
"MaximumAngle": -55
},
{
"Position": {
"X": -378.934,
"Y": 21.82056,
"Z": 365.7343
},
"MinimumAngle": -160,
"MaximumAngle": 10
}
]
},
{
"DataId": 33997,
"Locations": [
{
"Position": {
"X": -365.8535,
"Y": 18.70865,
"Z": 339.1927
},
"MinimumAngle": -180,
"MaximumAngle": 5
}
]
}
]
}
]
}

View File

@ -0,0 +1,136 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"TerritoryId": 956,
"AetheryteShortcut": "Labyrinthos - Archeion",
"Groups": [
{
"Nodes": [
{
"DataId": 33980,
"Locations": [
{
"Position": {
"X": 331.2026,
"Y": 86.06693,
"Z": -318.6516
}
}
]
},
{
"DataId": 33981,
"Locations": [
{
"Position": {
"X": 334.0037,
"Y": 85.40742,
"Z": -300.7174
}
},
{
"Position": {
"X": 355.6456,
"Y": 86.62501,
"Z": -308.6764
}
},
{
"Position": {
"X": 340.9933,
"Y": 86.25529,
"Z": -324.239
}
}
]
}
]
},
{
"Nodes": [
{
"DataId": 33979,
"Locations": [
{
"Position": {
"X": 255.936,
"Y": 70.96983,
"Z": -233.1732
}
},
{
"Position": {
"X": 239.4902,
"Y": 69.74259,
"Z": -224.506
}
},
{
"Position": {
"X": 265.0269,
"Y": 70.56706,
"Z": -208.2487
}
}
]
},
{
"DataId": 33978,
"Locations": [
{
"Position": {
"X": 262.5149,
"Y": 69.96209,
"Z": -200.2567
},
"MinimumAngle": 55,
"MaximumAngle": 320
}
]
}
]
},
{
"Nodes": [
{
"DataId": 33976,
"Locations": [
{
"Position": {
"X": 375.1279,
"Y": 67.35788,
"Z": -150.6431
}
}
]
},
{
"DataId": 33977,
"Locations": [
{
"Position": {
"X": 392.5393,
"Y": 65.98527,
"Z": -141.6628
}
},
{
"Position": {
"X": 368.5759,
"Y": 67.33283,
"Z": -140.4326
}
},
{
"Position": {
"X": 383.0393,
"Y": 67.01035,
"Z": -158.8207
}
}
]
}
]
}
]
}

View File

@ -0,0 +1,104 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"TerritoryId": 959,
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow",
"Groups": [
{
"Nodes": [
{
"DataId": 34337,
"Locations": [
{
"Position": {
"X": 531.9888,
"Y": 133.5777,
"Z": 288.7549
},
"MinimumAngle": 190,
"MaximumAngle": 345
}
]
},
{
"DataId": 34338,
"Locations": [
{
"Position": {
"X": 562.9013,
"Y": 134.3907,
"Z": 254.6339
},
"MinimumAngle": -75,
"MaximumAngle": 80
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34339,
"Locations": [
{
"Position": {
"X": 685.4268,
"Y": 130.6815,
"Z": 267.9914
},
"MinimumAngle": -75,
"MaximumAngle": 110
}
]
},
{
"DataId": 34340,
"Locations": [
{
"Position": {
"X": 720.4895,
"Y": 139.9972,
"Z": 239.97
},
"MinimumAngle": -30,
"MaximumAngle": 90
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34335,
"Locations": [
{
"Position": {
"X": 629.7982,
"Y": 144.0473,
"Z": 418.6548
},
"MinimumAngle": 120,
"MaximumAngle": 260
}
]
},
{
"DataId": 34336,
"Locations": [
{
"Position": {
"X": 712.2249,
"Y": 149.0579,
"Z": 390.7473
},
"MinimumAngle": 35,
"MaximumAngle": 195
}
]
}
]
}
]
}

View File

@ -0,0 +1,136 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"TerritoryId": 957,
"AetheryteShortcut": "Thavnair - Great Work",
"Groups": [
{
"Nodes": [
{
"DataId": 33993,
"Locations": [
{
"Position": {
"X": -97.85602,
"Y": 91.39626,
"Z": -562.7067
}
}
]
},
{
"DataId": 33992,
"Locations": [
{
"Position": {
"X": -91.53894,
"Y": 91.14209,
"Z": -520.9888
}
},
{
"Position": {
"X": -82.73576,
"Y": 91.15034,
"Z": -532.2811
}
},
{
"Position": {
"X": -119.5286,
"Y": 89.67725,
"Z": -601.3649
}
}
]
}
]
},
{
"Nodes": [
{
"DataId": 33990,
"Locations": [
{
"Position": {
"X": 105.0951,
"Y": 75.30056,
"Z": -581.8511
}
}
]
},
{
"DataId": 33991,
"Locations": [
{
"Position": {
"X": 113.0813,
"Y": 72.75166,
"Z": -575.8746
}
},
{
"Position": {
"X": 133.7231,
"Y": 67.87361,
"Z": -567.9795
}
},
{
"Position": {
"X": 109.7108,
"Y": 71.64627,
"Z": -562.0082
}
}
]
}
]
},
{
"Nodes": [
{
"DataId": 33988,
"Locations": [
{
"Position": {
"X": 53.25103,
"Y": 92.24804,
"Z": -643.022
}
}
]
},
{
"DataId": 33989,
"Locations": [
{
"Position": {
"X": 59.02333,
"Y": 93.08621,
"Z": -646.8438
}
},
{
"Position": {
"X": 8.818645,
"Y": 90.40326,
"Z": -640.8149
}
},
{
"Position": {
"X": 41.15356,
"Y": 96.41193,
"Z": -676.5558
},
"MinimumAngle": -85,
"MaximumAngle": 90
}
]
}
]
}
]
}

View File

@ -0,0 +1,158 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"TerritoryId": 1188,
"AetheryteShortcut": "Kozama'uka - Ok'hanu",
"Groups": [
{
"Nodes": [
{
"DataId": 34763,
"Locations": [
{
"Position": {
"X": -628.5966,
"Y": 3.089153,
"Z": -417.3812
},
"MinimumAngle": -80,
"MaximumAngle": 70
}
]
},
{
"DataId": 34764,
"Locations": [
{
"Position": {
"X": -644.7781,
"Y": 2.261729,
"Z": -416.9234
},
"MinimumAngle": -70,
"MaximumAngle": 100
},
{
"Position": {
"X": -621.8856,
"Y": 3.151928,
"Z": -418.6934
},
"MinimumAngle": -85,
"MaximumAngle": 75
},
{
"Position": {
"X": -632.9135,
"Y": 2.716663,
"Z": -417.9657
},
"MinimumAngle": -55,
"MaximumAngle": 75
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34766,
"Locations": [
{
"Position": {
"X": -823.1537,
"Y": 7.570713,
"Z": -344.0435
},
"MinimumAngle": -150,
"MaximumAngle": -10
},
{
"Position": {
"X": -824.2916,
"Y": 8.34999,
"Z": -311.9117
},
"MinimumAngle": 215,
"MaximumAngle": 345
},
{
"Position": {
"X": -825.0306,
"Y": 9.265428,
"Z": -279.9193
},
"MinimumAngle": 205,
"MaximumAngle": 330
}
]
},
{
"DataId": 34765,
"Locations": [
{
"Position": {
"X": -824.3366,
"Y": 7.884955,
"Z": -327.8148
},
"MinimumAngle": 205,
"MaximumAngle": 340
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34761,
"Locations": [
{
"Position": {
"X": -593.9269,
"Y": 3.169262,
"Z": -223.1938
},
"MinimumAngle": 65,
"MaximumAngle": 195
}
]
},
{
"DataId": 34762,
"Locations": [
{
"Position": {
"X": -584.8643,
"Y": 3.320522,
"Z": -227.3047
},
"MinimumAngle": 110,
"MaximumAngle": 245
},
{
"Position": {
"X": -602.5651,
"Y": 3.251461,
"Z": -217.1539
},
"MinimumAngle": 70,
"MaximumAngle": 210
},
{
"Position": {
"X": -613.296,
"Y": 2.557324,
"Z": -205.7018
},
"MinimumAngle": 50,
"MaximumAngle": 195
}
]
}
]
}
]
}

View File

@ -0,0 +1,131 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"TerritoryId": 1188,
"AetheryteShortcut": "Kozama'uka - Ok'hanu",
"Groups": [
{
"Nodes": [
{
"DataId": 34821,
"Locations": [
{
"Position": {
"X": -114.9673,
"Y": 9.311809,
"Z": -638.1873
},
"MinimumAngle": -125,
"MaximumAngle": 50
}
]
},
{
"DataId": 34822,
"Locations": [
{
"Position": {
"X": -139.9428,
"Y": 17.33419,
"Z": -662.0339
},
"MinimumAngle": -175,
"MaximumAngle": 10
},
{
"Position": {
"X": -98.84892,
"Y": 8.927668,
"Z": -645.7149
},
"MinimumAngle": 165,
"MaximumAngle": 360
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34826,
"Locations": [
{
"Position": {
"X": 60.64223,
"Y": 4.514977,
"Z": -535.9874
},
"MinimumAngle": 20,
"MaximumAngle": 200
},
{
"Position": {
"X": 22.99263,
"Y": 3.71779,
"Z": -519.9791
},
"MinimumAngle": 110,
"MaximumAngle": 285
}
]
},
{
"DataId": 34825,
"Locations": [
{
"Position": {
"X": 56.54757,
"Y": 4.987343,
"Z": -486.204
},
"MinimumAngle": 40,
"MaximumAngle": 220
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34824,
"Locations": [
{
"Position": {
"X": 110.7947,
"Y": 6.466304,
"Z": -633.701
},
"MinimumAngle": 20,
"MaximumAngle": 205
},
{
"Position": {
"X": 78.47705,
"Y": 8.072021,
"Z": -627.9545
},
"MinimumAngle": 130,
"MaximumAngle": 290
}
]
},
{
"DataId": 34823,
"Locations": [
{
"Position": {
"X": 91.40367,
"Y": 7.397814,
"Z": -659.1525
},
"MinimumAngle": -40,
"MaximumAngle": 145
}
]
}
]
}
]
}

View File

@ -0,0 +1,154 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"TerritoryId": 1190,
"AetheryteShortcut": "Shaaloani - Mehwahhetsoan",
"Groups": [
{
"Nodes": [
{
"DataId": 34777,
"Locations": [
{
"Position": {
"X": 395.7766,
"Y": -15.0432,
"Z": -793.4127
},
"MinimumAngle": 265,
"MaximumAngle": 340
}
]
},
{
"DataId": 34778,
"Locations": [
{
"Position": {
"X": 372.0282,
"Y": -16.77722,
"Z": -785.652
},
"MinimumAngle": 255,
"MaximumAngle": 360
},
{
"Position": {
"X": 419.309,
"Y": -10.25133,
"Z": -784.8259
}
},
{
"Position": {
"X": 410.6989,
"Y": -10.9656,
"Z": -790.8315
}
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34774,
"Locations": [
{
"Position": {
"X": 594.6921,
"Y": -6.424452,
"Z": -826.2967
},
"MinimumAngle": -90,
"MaximumAngle": 40
},
{
"Position": {
"X": 618.4105,
"Y": -4.948164,
"Z": -824.438
},
"MinimumAngle": -60,
"MaximumAngle": 60
},
{
"Position": {
"X": 625.7259,
"Y": -4.734236,
"Z": -825.9003
},
"MinimumAngle": -55,
"MaximumAngle": 40
}
]
},
{
"DataId": 34773,
"Locations": [
{
"Position": {
"X": 606.1035,
"Y": -5.781946,
"Z": -827.3289
},
"MinimumAngle": -40,
"MaximumAngle": 55
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34776,
"Locations": [
{
"Position": {
"X": 729.9794,
"Y": -6.851574,
"Z": -746.845
},
"MinimumAngle": 0,
"MaximumAngle": 155
},
{
"Position": {
"X": 730.2341,
"Y": -6.406585,
"Z": -724.3364
},
"MinimumAngle": 0,
"MaximumAngle": 165
},
{
"Position": {
"X": 732.0835,
"Y": -6.737461,
"Z": -738.1154
},
"MinimumAngle": 35,
"MaximumAngle": 160
}
]
},
{
"DataId": 34775,
"Locations": [
{
"Position": {
"X": 730.0588,
"Y": -6.698792,
"Z": -733.2113
},
"MinimumAngle": 25,
"MaximumAngle": 170
}
]
}
]
}
]
}

View File

@ -0,0 +1,136 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"TerritoryId": 1190,
"AetheryteShortcut": "Shaaloani - Hhusatahwi",
"Groups": [
{
"Nodes": [
{
"DataId": 34901,
"Locations": [
{
"Position": {
"X": 343.0447,
"Y": 0.1167868,
"Z": 146.4354
}
}
]
},
{
"DataId": 34902,
"Locations": [
{
"Position": {
"X": 350.1042,
"Y": -2.02238,
"Z": 133.0248
}
},
{
"Position": {
"X": 349.9641,
"Y": 2.9944,
"Z": 166.7519
}
},
{
"Position": {
"X": 358.951,
"Y": 1.226612,
"Z": 152.3553
}
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34903,
"Locations": [
{
"Position": {
"X": 530.04,
"Y": 6.585761,
"Z": 243.3026
}
}
]
},
{
"DataId": 34904,
"Locations": [
{
"Position": {
"X": 534.63,
"Y": 7.40439,
"Z": 261.0851
}
},
{
"Position": {
"X": 537.3219,
"Y": 6.59951,
"Z": 234.4762
}
},
{
"Position": {
"X": 510.6736,
"Y": 5.43621,
"Z": 247.2418
},
"MinimumAngle": -135,
"MaximumAngle": 60
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34900,
"Locations": [
{
"Position": {
"X": 571.4374,
"Y": 5.934396,
"Z": 93.85439
}
},
{
"Position": {
"X": 580.9511,
"Y": 4.927295,
"Z": 64.64209
}
},
{
"Position": {
"X": 595.0986,
"Y": 9.620093,
"Z": 81.96783
}
}
]
},
{
"DataId": 34899,
"Locations": [
{
"Position": {
"X": 578.6227,
"Y": 5.976591,
"Z": 76.53668
}
}
]
}
]
}
]
}

View File

@ -0,0 +1,158 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"TerritoryId": 1187,
"AetheryteShortcut": "Urqopacha - Worlar's Echo",
"Groups": [
{
"Nodes": [
{
"DataId": 34759,
"Locations": [
{
"Position": {
"X": -120.3785,
"Y": 30.38074,
"Z": 396.7192
},
"MinimumAngle": 125,
"MaximumAngle": 280
}
]
},
{
"DataId": 34760,
"Locations": [
{
"Position": {
"X": -133.0528,
"Y": 32.64423,
"Z": 399.1742
},
"MinimumAngle": 85,
"MaximumAngle": 235
},
{
"Position": {
"X": -108.2323,
"Y": 32.42883,
"Z": 407.0955
},
"MinimumAngle": 150,
"MaximumAngle": 290
},
{
"Position": {
"X": -102.1287,
"Y": 35.23303,
"Z": 416.1898
},
"MinimumAngle": 155,
"MaximumAngle": 295
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34755,
"Locations": [
{
"Position": {
"X": -171.2521,
"Y": 46.49414,
"Z": 142.4124
},
"MinimumAngle": -80,
"MaximumAngle": 25
}
]
},
{
"DataId": 34756,
"Locations": [
{
"Position": {
"X": -150.6633,
"Y": 47.30524,
"Z": 116.4768
},
"MinimumAngle": -135,
"MaximumAngle": 0
},
{
"Position": {
"X": -164.8948,
"Y": 47.17537,
"Z": 138.1664
},
"MinimumAngle": -60,
"MaximumAngle": 20
},
{
"Position": {
"X": -157.4637,
"Y": 46.7111,
"Z": 126.0358
},
"MinimumAngle": -90,
"MaximumAngle": 10
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34757,
"Locations": [
{
"Position": {
"X": -313.222,
"Y": 62.79089,
"Z": 335.1643
},
"MinimumAngle": 195,
"MaximumAngle": 310
}
]
},
{
"DataId": 34758,
"Locations": [
{
"Position": {
"X": -309.2621,
"Y": 71.25529,
"Z": 367.5573
},
"MinimumAngle": 190,
"MaximumAngle": 300
},
{
"Position": {
"X": -323.9727,
"Y": 58.3564,
"Z": 295.3081
},
"MinimumAngle": 205,
"MaximumAngle": 325
},
{
"Position": {
"X": -305.3915,
"Y": 72.10517,
"Z": 385.1654
},
"MinimumAngle": 210,
"MaximumAngle": 295
}
]
}
]
}
]
}

View File

@ -0,0 +1,142 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"TerritoryId": 1187,
"AetheryteShortcut": "Urqopacha - Worlar's Echo",
"Groups": [
{
"Nodes": [
{
"DataId": 34869,
"Locations": [
{
"Position": {
"X": -604.6953,
"Y": 59.64062,
"Z": 5.50073
}
}
]
},
{
"DataId": 34870,
"Locations": [
{
"Position": {
"X": -618.7993,
"Y": 59.13951,
"Z": 17.80936
}
},
{
"Position": {
"X": -615.0759,
"Y": 59.08474,
"Z": -4.837158
},
"MinimumAngle": 115,
"MaximumAngle": 325
},
{
"Position": {
"X": -593.0486,
"Y": 60.01728,
"Z": 15.20686
}
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34872,
"Locations": [
{
"Position": {
"X": -812.0394,
"Y": 55.42165,
"Z": 118.3947
}
},
{
"Position": {
"X": -821.9205,
"Y": 56.51463,
"Z": 121.8448
}
},
{
"Position": {
"X": -837.9932,
"Y": 57.59847,
"Z": 104.7306
},
"MinimumAngle": -100,
"MaximumAngle": 90
}
]
},
{
"DataId": 34871,
"Locations": [
{
"Position": {
"X": -818.8149,
"Y": 55.11676,
"Z": 112.5509
}
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34874,
"Locations": [
{
"Position": {
"X": -672.2305,
"Y": 76.87632,
"Z": 257.5817
},
"MinimumAngle": 85,
"MaximumAngle": 265
},
{
"Position": {
"X": -625.6287,
"Y": 71.04436,
"Z": 234.6465
},
"MinimumAngle": -95,
"MaximumAngle": 140
},
{
"Position": {
"X": -635.3436,
"Y": 74.07207,
"Z": 244.9178
}
}
]
},
{
"DataId": 34873,
"Locations": [
{
"Position": {
"X": -654.1213,
"Y": 74.65144,
"Z": 254.1959
}
}
]
}
]
}
]
}

View File

@ -0,0 +1,140 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"TerritoryId": 1189,
"AetheryteShortcut": "Yak T'el - Iq Br'aax",
"Groups": [
{
"Nodes": [
{
"DataId": 34906,
"Locations": [
{
"Position": {
"X": 236.4964,
"Y": -5.339633,
"Z": -346.5587
}
},
{
"Position": {
"X": 252.2469,
"Y": -4.50562,
"Z": -352.3626
}
},
{
"Position": {
"X": 270.0348,
"Y": 4.734006,
"Z": -370.3
},
"MinimumAngle": -5,
"MaximumAngle": 160
}
]
},
{
"DataId": 34905,
"Locations": [
{
"Position": {
"X": 291.2657,
"Y": 16.76923,
"Z": -372.8286
}
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34909,
"Locations": [
{
"Position": {
"X": 452.2735,
"Y": 19.0634,
"Z": -350.683
},
"MinimumAngle": -55,
"MaximumAngle": 215
}
]
},
{
"DataId": 34910,
"Locations": [
{
"Position": {
"X": 451.7433,
"Y": 18.42068,
"Z": -333.2723
}
},
{
"Position": {
"X": 425.1651,
"Y": 19.24389,
"Z": -388.6381
}
},
{
"Position": {
"X": 425.4706,
"Y": 18.96692,
"Z": -371.645
},
"MinimumAngle": -190,
"MaximumAngle": 50
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34908,
"Locations": [
{
"Position": {
"X": 268.0552,
"Y": -4.003453,
"Z": -173.8766
}
},
{
"Position": {
"X": 244.3824,
"Y": -8.541841,
"Z": -212.8872
}
},
{
"Position": {
"X": 236.6972,
"Y": -13.99463,
"Z": -189.6181
}
}
]
},
{
"DataId": 34907,
"Locations": [
{
"Position": {
"X": 269.0605,
"Y": -6.302063,
"Z": -193.4243
}
}
]
}
]
}
]
}

View File

@ -0,0 +1,158 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"TerritoryId": 1189,
"AetheryteShortcut": "Yak T'el - Iq Br'aax",
"Groups": [
{
"Nodes": [
{
"DataId": 34783,
"Locations": [
{
"Position": {
"X": -273.0702,
"Y": 15.09387,
"Z": -443.001
},
"MinimumAngle": -15,
"MaximumAngle": 160
}
]
},
{
"DataId": 34784,
"Locations": [
{
"Position": {
"X": -268.5216,
"Y": 15.18526,
"Z": -438.1259
},
"MinimumAngle": -160,
"MaximumAngle": 100
},
{
"Position": {
"X": -282.2694,
"Y": 15.46158,
"Z": -437.156
},
"MinimumAngle": 200,
"MaximumAngle": 350
},
{
"Position": {
"X": -284.5246,
"Y": 15.61228,
"Z": -445.3587
},
"MinimumAngle": 155,
"MaximumAngle": 310
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34782,
"Locations": [
{
"Position": {
"X": -431.8761,
"Y": 34.533,
"Z": -654.7189
},
"MinimumAngle": -100,
"MaximumAngle": 30
},
{
"Position": {
"X": -430.493,
"Y": 32.50696,
"Z": -679.2305
},
"MinimumAngle": 170,
"MaximumAngle": 295
},
{
"Position": {
"X": -435.1992,
"Y": 35.77378,
"Z": -649.1482
},
"MinimumAngle": -145,
"MaximumAngle": 25
}
]
},
{
"DataId": 34781,
"Locations": [
{
"Position": {
"X": -427.0237,
"Y": 33.4935,
"Z": -668.6351
},
"MinimumAngle": 200,
"MaximumAngle": 330
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34779,
"Locations": [
{
"Position": {
"X": -524.4308,
"Y": 33.95129,
"Z": -578.9917
},
"MinimumAngle": 250,
"MaximumAngle": 360
}
]
},
{
"DataId": 34780,
"Locations": [
{
"Position": {
"X": -533.9852,
"Y": 31.36117,
"Z": -558.8026
},
"MinimumAngle": -140,
"MaximumAngle": 0
},
{
"Position": {
"X": -522.1197,
"Y": 36.22581,
"Z": -597.019
},
"MinimumAngle": 170,
"MaximumAngle": 320
},
{
"Position": {
"X": -549.8734,
"Y": 28.65267,
"Z": -533.7023
},
"MinimumAngle": -130,
"MaximumAngle": 10
}
]
}
]
}
]
}

View File

@ -4,7 +4,9 @@ using Dalamud.Game.Text;
using Dalamud.Plugin.Services; using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Client.Game;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Questionable.Controller.Steps.Common;
using Questionable.Data; using Questionable.Data;
using Questionable.External;
using Questionable.GatheringPaths; using Questionable.GatheringPaths;
using Questionable.Model; using Questionable.Model;
using Questionable.Model.Gathering; using Questionable.Model.Gathering;
@ -16,8 +18,10 @@ internal static class GatheringRequiredItems
{ {
internal sealed class Factory( internal sealed class Factory(
IServiceProvider serviceProvider, IServiceProvider serviceProvider,
MovementController movementController,
IClientState clientState, IClientState clientState,
GatheringData gatheringData) : ITaskFactory GatheringData gatheringData,
TerritoryData territoryData) : ITaskFactory
{ {
public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
{ {
@ -40,6 +44,12 @@ internal static class GatheringRequiredItems
.With(null, gatheringRoot.AetheryteShortcut.Value, gatheringRoot.TerritoryId); .With(null, gatheringRoot.AetheryteShortcut.Value, gatheringRoot.TerritoryId);
} }
yield return new WaitConditionTask(() => clientState.TerritoryType == gatheringRoot.TerritoryId,
$"Wait(territory: {territoryData.GetNameAndId(gatheringRoot.TerritoryId)})");
yield return new WaitConditionTask(() => movementController.IsNavmeshReady,
"Wait(navmesh ready)");
yield return serviceProvider.GetRequiredService<StartGathering>() yield return serviceProvider.GetRequiredService<StartGathering>()
.With(gatheringPointId, requiredGatheredItems); .With(gatheringPointId, requiredGatheredItems);
} }