fix(selection): port SmartBox click lighting pulse
Port the retail high/low material-lighting cadence for successful world clicks, keep it instance-scoped in the modern renderer, and restore authored lighting after 0.8 seconds. Correct the selection oracle and pin timing plus per-frame buffer lifecycle with tests. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
146a963aeb
commit
ea4f52ec51
11 changed files with 338 additions and 16 deletions
|
|
@ -0,0 +1,17 @@
|
|||
namespace AcDream.App.Rendering.Selection;
|
||||
|
||||
/// <summary>
|
||||
/// Supplies the transient material lighting override which retail applies to
|
||||
/// a world object after SmartBox resolves a click.
|
||||
/// </summary>
|
||||
internal interface IRetailSelectionLightingSource
|
||||
{
|
||||
/// <summary>Advances the retail SmartBox flip cadence once for this frame.</summary>
|
||||
void TickLighting();
|
||||
|
||||
/// <summary>
|
||||
/// Returns the current CMaterial luminosity/diffuse replacement for an
|
||||
/// object, or false when its authored material values must be restored.
|
||||
/// </summary>
|
||||
bool TryGetLighting(uint serverGuid, out RetailSelectionLighting lighting);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue