Fixed merge conflicts.

This commit is contained in:
cake
2025-12-28 16:48:51 +01:00
parent 1a73d5a4d9
commit 9e600bfae0
2 changed files with 81 additions and 89 deletions

View File

@@ -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>();

View File

@@ -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