feat(items): port retail shared cooldown overlays
Preserve public shared-cooldown metadata, resolve the authoritative cooldown enchantment with retail expiry semantics, and project the exact ten DAT-authored radial steps through the shared retained item-slot architecture. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
19e8863f4e
commit
6b1ae4fb76
27 changed files with 875 additions and 20 deletions
|
|
@ -198,6 +198,7 @@ public sealed class RetailUiRuntime : IDisposable
|
|||
private RetailItemConfirmationController? _itemConfirmationController;
|
||||
private RetailSkillTrainingConfirmationController? _skillTrainingConfirmationController;
|
||||
private UiShortcutDigitGraphics? _shortcutDigitGraphics;
|
||||
private ItemCooldownUiController? _itemCooldownController;
|
||||
private VividTargetIndicatorController? _vividTargetIndicator;
|
||||
private ResourceShutdownTransaction? _shutdown;
|
||||
private bool _disposed;
|
||||
|
|
@ -242,6 +243,7 @@ public sealed class RetailUiRuntime : IDisposable
|
|||
MountPlugins();
|
||||
MountInventory();
|
||||
MountExternalContainer();
|
||||
MountItemCooldowns();
|
||||
Host.WindowManager.WindowVisibilityChanged += OnWindowVisibilityChanged;
|
||||
BindToolbarPanelButtons();
|
||||
SyncToolbarWindowButtons();
|
||||
|
|
@ -346,6 +348,7 @@ public sealed class RetailUiRuntime : IDisposable
|
|||
JumpPowerbarController?.Tick();
|
||||
SelectedObjectController?.Tick(deltaSeconds);
|
||||
ExternalContainerController?.Tick();
|
||||
_itemCooldownController?.Tick();
|
||||
DialogFactory?.Tick();
|
||||
Host.Tick(deltaSeconds);
|
||||
_automation?.Tick(deltaSeconds);
|
||||
|
|
@ -1760,6 +1763,29 @@ public sealed class RetailUiRuntime : IDisposable
|
|||
"[D.2b] retail external-container strip mounted from LayoutDesc 0x21000008.");
|
||||
}
|
||||
|
||||
private void MountItemCooldowns()
|
||||
{
|
||||
ItemCooldownAssets? assets;
|
||||
lock (_bindings.Assets.DatLock)
|
||||
assets = ItemCooldownAssets.TryLoad(_bindings.Assets.Dats);
|
||||
|
||||
if (assets is null)
|
||||
{
|
||||
Console.WriteLine(
|
||||
"[UI] shared UIItem cooldown overlays missing from LayoutDesc 0x21000037.");
|
||||
return;
|
||||
}
|
||||
|
||||
_itemCooldownController = ItemCooldownUiController.Bind(
|
||||
Host.Root,
|
||||
_bindings.Magic.Spellbook,
|
||||
_bindings.Magic.Objects,
|
||||
_bindings.Magic.ServerTime,
|
||||
assets.Value);
|
||||
Console.WriteLine(
|
||||
"[UI] retail shared item cooldown overlays ready (10 DAT-authored steps).");
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (_disposed)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue