feat(vfx): port retail hidden and teleport presentation
Preserve canonical live-object ownership across Hidden transitions and remote teleport placement so effects, collision, streaming, and targeting remain synchronized.
This commit is contained in:
parent
a51ebc66e9
commit
1e98d81448
46 changed files with 4883 additions and 127 deletions
|
|
@ -297,4 +297,22 @@ public sealed class TargetManager
|
|||
foreach (var voyeur in _voyeurTable.Values.ToList())
|
||||
SendVoyeurUpdate(voyeur, _host.Position, status);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Broadcasts a terminal availability event and drops the watched-role
|
||||
/// subscriptions after delivery. Retail normally removes the object from
|
||||
/// cell lookup before its watchers process the event; clearing the local
|
||||
/// table explicitly preserves that lifecycle boundary when the App uses
|
||||
/// the target fan-out as the temporary bridge for an unavailable object.
|
||||
/// The object's own watcher role (<see cref="TargetInfo"/>) is untouched.
|
||||
/// </summary>
|
||||
public void NotifyVoyeurOfEventAndClear(TargetStatus status)
|
||||
{
|
||||
if (_voyeurTable == null)
|
||||
return;
|
||||
|
||||
foreach (var voyeur in _voyeurTable.Values.ToList())
|
||||
SendVoyeurUpdate(voyeur, _host.Position, status);
|
||||
_voyeurTable.Clear();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue