--- /dev/null
+using Dalamud.Configuration;
+
+namespace GatheringPathRenderer;
+
+internal sealed class Configuration : IPluginConfiguration
+{
+ public int Version { get; set; } = 1;
+ public string AuthorName { get; set; } = "?";
+}
private readonly ITargetManager _targetManager;
private readonly IClientState _clientState;
private readonly IChatGui _chatGui;
+ private readonly Configuration _configuration;
public EditorCommands(RendererPlugin plugin, IDataManager dataManager, ICommandManager commandManager,
- ITargetManager targetManager, IClientState clientState, IChatGui chatGui)
+ ITargetManager targetManager, IClientState clientState, IChatGui chatGui, Configuration configuration)
{
_plugin = plugin;
_dataManager = dataManager;
_targetManager = targetManager;
_clientState = clientState;
_chatGui = chatGui;
+ _configuration = configuration;
_commandManager.AddHandler("/qg", new CommandInfo(ProcessCommand));
}
$"{gatheringPoint.GatheringPointBase.Row}_{gatheringPoint.PlaceName.Value!.Name}_{(_clientState.LocalPlayer!.ClassJob.Id == 16 ? "MIN" : "BTN")}.json"));
var root = new GatheringRoot
{
+ Author = [_configuration.AuthorName],
TerritoryId = _clientState.TerritoryType,
Groups =
[
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using System.Security.Cryptography;
using System.Text.Json;
using System.Text.Json.Nodes;
using System.Text.Json.Serialization;
using ECommons;
using ECommons.Schedulers;
using ECommons.SplatoonAPI;
-using FFXIVClientStructs.FFXIV.Common.Math;
using GatheringPathRenderer.Windows;
using Questionable.Model;
using Questionable.Model.Gathering;
_clientState = clientState;
_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)
{ IsOpen = true };
_windowSystem.AddWindow(_editorWindow);
refX = x.Position.X,
refY = x.Position.Z,
refZ = x.Position.Y,
- color = 0x00000000,
+ color = 0xFFFFFFFF,
+ radius = 0.1f,
Enabled = true,
overlayText =
$"{location.Root.Groups.IndexOf(group)} // {node.DataId} / {node.Locations.IndexOf(x)}",
ImGui.Indent();
ImGui.Text(context.File.Name);
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}"));
if (!_changes.TryGetValue(location.InternalId, out LocationOverride? locationOverride))
--- /dev/null
+{
+ "$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
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$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
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Client.Game;
using Microsoft.Extensions.DependencyInjection;
+using Questionable.Controller.Steps.Common;
using Questionable.Data;
+using Questionable.External;
using Questionable.GatheringPaths;
using Questionable.Model;
using Questionable.Model.Gathering;
{
internal sealed class Factory(
IServiceProvider serviceProvider,
+ MovementController movementController,
IClientState clientState,
- GatheringData gatheringData) : ITaskFactory
+ GatheringData gatheringData,
+ TerritoryData territoryData) : ITaskFactory
{
public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
{
.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>()
.With(gatheringPointId, requiredGatheredItems);
}