<Project Sdk="Dalamud.NET.Sdk/10.0.0">
<ItemGroup>
+ <ProjectReference Include="..\LLib\LLib.csproj" />
<ProjectReference Include="..\Questionable.Model\Questionable.Model.csproj" />
<ProjectReference Include="..\vendor\ECommons\ECommons\ECommons.csproj" />
</ItemGroup>
using ECommons.Schedulers;
using ECommons.SplatoonAPI;
using GatheringPathRenderer.Windows;
+using LLib.GameData;
using Questionable.Model;
using Questionable.Model.Gathering;
_pluginInterface.UiBuilder.Draw += _windowSystem.Draw;
_clientState.TerritoryChanged += TerritoryChanged;
+ _clientState.ClassJobChanged += ClassJobChanged;
if (_clientState.IsLoggedIn)
TerritoryChanged(_clientState.TerritoryType);
}
private void TerritoryChanged(ushort territoryId) => Redraw();
- internal void Redraw()
+ private void ClassJobChanged(uint classJobId) => Redraw((EClassJob)classJobId);
+
+ internal void Redraw() => Redraw((EClassJob)_clientState.LocalPlayer!.ClassJob.Id);
+
+ private void Redraw(EClassJob classJob)
{
Splatoon.RemoveDynamicElements("GatheringPathRenderer");
+ if (!classJob.IsGatherer())
+ return;
var elements = GetLocationsInTerritory(_clientState.TerritoryType)
.SelectMany(location =>
public void Dispose()
{
+ _clientState.ClassJobChanged -= ClassJobChanged;
_clientState.TerritoryChanged -= TerritoryChanged;
_pluginInterface.UiBuilder.Draw -= _windowSystem.Draw;