Fixed merge conflicts.
This commit is contained in:
@@ -480,20 +480,11 @@ public sealed class Plugin : IDalamudPlugin
|
|||||||
sp.GetRequiredService<UiSharedService>(),
|
sp.GetRequiredService<UiSharedService>(),
|
||||||
sp.GetRequiredService<ApiController>(),
|
sp.GetRequiredService<ApiController>(),
|
||||||
sp.GetRequiredService<LightFinderScannerService>(),
|
sp.GetRequiredService<LightFinderScannerService>(),
|
||||||
sp.GetRequiredService<LightFinderPlateHandler>()));
|
|
||||||
|
|
||||||
services.AddScoped<WindowMediatorSubscriberBase, SyncshellFinderUI>(sp => new SyncshellFinderUI(
|
|
||||||
sp.GetRequiredService<ILogger<SyncshellFinderUI>>(),
|
|
||||||
sp.GetRequiredService<LightlessMediator>(),
|
|
||||||
sp.GetRequiredService<PerformanceCollectorService>(),
|
|
||||||
sp.GetRequiredService<LightFinderService>(),
|
|
||||||
sp.GetRequiredService<UiSharedService>(),
|
|
||||||
sp.GetRequiredService<ApiController>(),
|
|
||||||
sp.GetRequiredService<LightFinderScannerService>(),
|
|
||||||
sp.GetRequiredService<PairUiService>(),
|
sp.GetRequiredService<PairUiService>(),
|
||||||
sp.GetRequiredService<DalamudUtilService>(),
|
sp.GetRequiredService<DalamudUtilService>(),
|
||||||
sp.GetRequiredService<LightlessProfileManager>(),
|
sp.GetRequiredService<LightlessProfileManager>(),
|
||||||
sp.GetRequiredService<ActorObjectService>()));
|
sp.GetRequiredService<ActorObjectService>(),
|
||||||
|
sp.GetRequiredService<LightFinderPlateHandler>()));
|
||||||
|
|
||||||
services.AddScoped<IPopupHandler, BanUserPopupHandler>();
|
services.AddScoped<IPopupHandler, BanUserPopupHandler>();
|
||||||
services.AddScoped<IPopupHandler, CensusPopupHandler>();
|
services.AddScoped<IPopupHandler, CensusPopupHandler>();
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ public class LightFinderUI : WindowMediatorSubscriberBase
|
|||||||
private readonly LightFinderService _broadcastService;
|
private readonly LightFinderService _broadcastService;
|
||||||
private readonly LightlessConfigService _configService;
|
private readonly LightlessConfigService _configService;
|
||||||
private readonly LightlessProfileManager _lightlessProfileManager;
|
private readonly LightlessProfileManager _lightlessProfileManager;
|
||||||
|
private readonly LightFinderPlateHandler _lightFinderPlateHandler;
|
||||||
private readonly PairUiService _pairUiService;
|
private readonly PairUiService _pairUiService;
|
||||||
private readonly UiSharedService _uiSharedService;
|
private readonly UiSharedService _uiSharedService;
|
||||||
|
|
||||||
@@ -100,7 +101,8 @@ public class LightFinderUI : WindowMediatorSubscriberBase
|
|||||||
DalamudUtilService dalamudUtilService,
|
DalamudUtilService dalamudUtilService,
|
||||||
LightlessProfileManager lightlessProfileManager,
|
LightlessProfileManager lightlessProfileManager,
|
||||||
ActorObjectService actorObjectService
|
ActorObjectService actorObjectService
|
||||||
) : base(logger, mediator, "Lightfinder###LightlessLightfinderUI", performanceCollectorService)
|
,
|
||||||
|
LightFinderPlateHandler lightFinderPlateHandler) : base(logger, mediator, "Lightfinder###LightlessLightfinderUI", performanceCollectorService)
|
||||||
{
|
{
|
||||||
_broadcastService = broadcastService;
|
_broadcastService = broadcastService;
|
||||||
_uiSharedService = uiShared;
|
_uiSharedService = uiShared;
|
||||||
@@ -126,6 +128,7 @@ public class LightFinderUI : WindowMediatorSubscriberBase
|
|||||||
Mediator.Subscribe<BroadcastStatusChangedMessage>(this, async _ => await RefreshNearbySyncshellsAsync().ConfigureAwait(false));
|
Mediator.Subscribe<BroadcastStatusChangedMessage>(this, async _ => await RefreshNearbySyncshellsAsync().ConfigureAwait(false));
|
||||||
Mediator.Subscribe<UserLeftSyncshell>(this, async _ => await RefreshNearbySyncshellsAsync(_.gid).ConfigureAwait(false));
|
Mediator.Subscribe<UserLeftSyncshell>(this, async _ => await RefreshNearbySyncshellsAsync(_.gid).ConfigureAwait(false));
|
||||||
Mediator.Subscribe<UserJoinedSyncshell>(this, async _ => await RefreshNearbySyncshellsAsync(_.gid).ConfigureAwait(false));
|
Mediator.Subscribe<UserJoinedSyncshell>(this, async _ => await RefreshNearbySyncshellsAsync(_.gid).ConfigureAwait(false));
|
||||||
|
_lightFinderPlateHandler = lightFinderPlateHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -1377,96 +1380,94 @@ public class LightFinderUI : WindowMediatorSubscriberBase
|
|||||||
ImGui.PopStyleVar();
|
ImGui.PopStyleVar();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
private void DrawDebugTab()
|
||||||
|
{
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
if (ImGui.BeginTabItem("Debug"))
|
if (ImGui.CollapsingHeader("LightFinder Plates", ImGuiTreeNodeFlags.DefaultOpen))
|
||||||
|
{
|
||||||
|
var h = _lightFinderPlateHandler;
|
||||||
|
|
||||||
|
var enabled = h.DebugEnabled;
|
||||||
|
if (ImGui.Checkbox("Enable LightFinder debug", ref enabled))
|
||||||
|
h.DebugEnabled = enabled;
|
||||||
|
|
||||||
|
if (h.DebugEnabled)
|
||||||
{
|
{
|
||||||
if (ImGui.CollapsingHeader("LightFinder Plates", ImGuiTreeNodeFlags.DefaultOpen))
|
ImGui.Indent();
|
||||||
{
|
|
||||||
var h = _lightFinderPlateHandler;
|
|
||||||
|
|
||||||
var enabled = h.DebugEnabled;
|
var disableOcc = h.DebugDisableOcclusion;
|
||||||
if (ImGui.Checkbox("Enable LightFinder debug", ref enabled))
|
if (ImGui.Checkbox("Disable occlusion (force draw)", ref disableOcc))
|
||||||
h.DebugEnabled = enabled;
|
h.DebugDisableOcclusion = disableOcc;
|
||||||
|
|
||||||
if (h.DebugEnabled)
|
var drawUiRects = h.DebugDrawUiRects;
|
||||||
{
|
if (ImGui.Checkbox("Draw UI rects", ref drawUiRects))
|
||||||
ImGui.Indent();
|
h.DebugDrawUiRects = drawUiRects;
|
||||||
|
|
||||||
var disableOcc = h.DebugDisableOcclusion;
|
var drawLabelRects = h.DebugDrawLabelRects;
|
||||||
if (ImGui.Checkbox("Disable occlusion (force draw)", ref disableOcc))
|
if (ImGui.Checkbox("Draw label rects", ref drawLabelRects))
|
||||||
h.DebugDisableOcclusion = disableOcc;
|
h.DebugDrawLabelRects = drawLabelRects;
|
||||||
|
|
||||||
var drawUiRects = h.DebugDrawUiRects;
|
|
||||||
if (ImGui.Checkbox("Draw UI rects", ref drawUiRects))
|
|
||||||
h.DebugDrawUiRects = drawUiRects;
|
|
||||||
|
|
||||||
var drawLabelRects = h.DebugDrawLabelRects;
|
|
||||||
if (ImGui.Checkbox("Draw label rects", ref drawLabelRects))
|
|
||||||
h.DebugDrawLabelRects = drawLabelRects;
|
|
||||||
|
|
||||||
ImGui.Separator();
|
|
||||||
ImGui.TextUnformatted($"Labels last frame: {h.DebugLabelCountLastFrame}");
|
|
||||||
ImGui.TextUnformatted($"UI rects last frame: {h.DebugUiRectCountLastFrame}");
|
|
||||||
ImGui.TextUnformatted($"Occluded last frame: {h.DebugOccludedCountLastFrame}");
|
|
||||||
ImGui.TextUnformatted($"Last NamePlate frame: {h.DebugLastNameplateFrame}");
|
|
||||||
|
|
||||||
ImGui.Unindent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ImGui.Separator();
|
ImGui.Separator();
|
||||||
|
ImGui.TextUnformatted($"Labels last frame: {h.DebugLabelCountLastFrame}");
|
||||||
|
ImGui.TextUnformatted($"UI rects last frame: {h.DebugUiRectCountLastFrame}");
|
||||||
|
ImGui.TextUnformatted($"Occluded last frame: {h.DebugOccludedCountLastFrame}");
|
||||||
|
ImGui.TextUnformatted($"Last NamePlate frame: {h.DebugLastNameplateFrame}");
|
||||||
|
|
||||||
ImGui.Text("Broadcast Cache");
|
ImGui.Unindent();
|
||||||
|
}
|
||||||
if (ImGui.BeginTable("##BroadcastCacheTable", 4,
|
|
||||||
ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders | ImGuiTableFlags.ScrollY,
|
|
||||||
new Vector2(-1, 225f)))
|
|
||||||
{
|
|
||||||
ImGui.TableSetupColumn("CID", ImGuiTableColumnFlags.WidthStretch);
|
|
||||||
ImGui.TableSetupColumn("IsBroadcasting", ImGuiTableColumnFlags.WidthStretch);
|
|
||||||
ImGui.TableSetupColumn("Expires In", ImGuiTableColumnFlags.WidthStretch);
|
|
||||||
ImGui.TableSetupColumn("Syncshell GID", ImGuiTableColumnFlags.WidthStretch);
|
|
||||||
ImGui.TableHeadersRow();
|
|
||||||
|
|
||||||
var now = DateTime.UtcNow;
|
|
||||||
|
|
||||||
foreach (var (cid, entry) in _broadcastScannerService.BroadcastCache)
|
|
||||||
{
|
|
||||||
ImGui.TableNextRow();
|
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
|
||||||
ImGui.TextUnformatted(cid.Truncate(12));
|
|
||||||
if (ImGui.IsItemHovered())
|
|
||||||
ImGui.SetTooltip(cid);
|
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
|
||||||
var colorBroadcast = entry.IsBroadcasting ? UIColors.Get("LightlessGreen") : UIColors.Get("DimRed");
|
|
||||||
ImGui.TableSetBgColor(ImGuiTableBgTarget.CellBg, ImGui.GetColorU32(colorBroadcast));
|
|
||||||
ImGui.TextUnformatted(entry.IsBroadcasting.ToString());
|
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
|
||||||
var remaining = entry.ExpiryTime - now;
|
|
||||||
var colorTtl = remaining <= TimeSpan.Zero ? UIColors.Get("DimRed")
|
|
||||||
: remaining < TimeSpan.FromSeconds(10) ? UIColors.Get("LightlessYellow")
|
|
||||||
: (Vector4?)null;
|
|
||||||
|
|
||||||
if (colorTtl != null)
|
|
||||||
ImGui.TableSetBgColor(ImGuiTableBgTarget.CellBg, ImGui.GetColorU32(colorTtl.Value));
|
|
||||||
|
|
||||||
ImGui.TextUnformatted(remaining > TimeSpan.Zero ? remaining.ToString("hh\\:mm\\:ss") : "Expired");
|
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
|
||||||
ImGui.TextUnformatted(entry.GID ?? "-");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.EndTable();
|
ImGui.Separator();
|
||||||
}
|
|
||||||
|
ImGui.Text("Broadcast Cache");
|
||||||
|
|
||||||
|
if (ImGui.BeginTable("##BroadcastCacheTable", 4,
|
||||||
|
ImGuiTableFlags.RowBg | ImGuiTableFlags.Borders | ImGuiTableFlags.ScrollY,
|
||||||
|
new Vector2(-1, 225f)))
|
||||||
|
{
|
||||||
|
ImGui.TableSetupColumn("CID", ImGuiTableColumnFlags.WidthStretch);
|
||||||
|
ImGui.TableSetupColumn("IsBroadcasting", ImGuiTableColumnFlags.WidthStretch);
|
||||||
|
ImGui.TableSetupColumn("Expires In", ImGuiTableColumnFlags.WidthStretch);
|
||||||
|
ImGui.TableSetupColumn("Syncshell GID", ImGuiTableColumnFlags.WidthStretch);
|
||||||
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
|
var now = DateTime.UtcNow;
|
||||||
|
|
||||||
|
foreach (var (cid, entry) in _broadcastScannerService.BroadcastCache)
|
||||||
|
{
|
||||||
|
ImGui.TableNextRow();
|
||||||
|
|
||||||
|
ImGui.TableNextColumn();
|
||||||
|
ImGui.TextUnformatted(cid.Truncate(12));
|
||||||
|
if (ImGui.IsItemHovered())
|
||||||
|
ImGui.SetTooltip(cid);
|
||||||
|
|
||||||
|
ImGui.TableNextColumn();
|
||||||
|
var colorBroadcast = entry.IsBroadcasting ? UIColors.Get("LightlessGreen") : UIColors.Get("DimRed");
|
||||||
|
ImGui.TableSetBgColor(ImGuiTableBgTarget.CellBg, ImGui.GetColorU32(colorBroadcast));
|
||||||
|
ImGui.TextUnformatted(entry.IsBroadcasting.ToString());
|
||||||
|
|
||||||
|
ImGui.TableNextColumn();
|
||||||
|
var remaining = entry.ExpiryTime - now;
|
||||||
|
var colorTtl = remaining <= TimeSpan.Zero ? UIColors.Get("DimRed")
|
||||||
|
: remaining < TimeSpan.FromSeconds(10) ? UIColors.Get("LightlessYellow")
|
||||||
|
: (Vector4?)null;
|
||||||
|
|
||||||
|
if (colorTtl != null)
|
||||||
|
ImGui.TableSetBgColor(ImGuiTableBgTarget.CellBg, ImGui.GetColorU32(colorTtl.Value));
|
||||||
|
|
||||||
|
ImGui.TextUnformatted(remaining > TimeSpan.Zero ? remaining.ToString("hh\\:mm\\:ss") : "Expired");
|
||||||
|
|
||||||
|
ImGui.TableNextColumn();
|
||||||
|
ImGui.TextUnformatted(entry.GID ?? "-");
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui.EndTable();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
#endif
|
|
||||||
|
|
||||||
#region Data Refresh
|
#region Data Refresh
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user