feat(input): assess world objects on right click

Port SmartBox's release-completed sr_Examine gesture through the configurable SelectRight binding. Cancel camera drags at the shared retail three-pixel threshold, then reuse the canonical picker, selection pulse, and appraisal request path without inventing another wire or UI owner.

Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-24 05:42:28 +02:00
parent 6718ee45a0
commit 5ad32d5753
16 changed files with 394 additions and 13 deletions

View file

@ -11,6 +11,7 @@ public sealed class InputDispatcherLifetimeTests
[InlineData(3)]
[InlineData(4)]
[InlineData(5)]
[InlineData(6)]
public void AttachFailureRollsBackEveryPossiblyAcquiredPrefix(int failAdd)
{
var source = new ThrowingSources { FailAdd = failAdd };
@ -112,6 +113,7 @@ public sealed class InputDispatcherLifetimeTests
private Action<Key, ModifierMask>? _keyUp;
private Action<MouseButton, ModifierMask>? _mouseDown;
private Action<MouseButton, ModifierMask>? _mouseUp;
private Action<float, float>? _mouseMove;
private Action<float>? _scroll;
public int FailAdd { get; init; }
@ -153,9 +155,11 @@ public sealed class InputDispatcherLifetimeTests
add => Add(ref _mouseUp, value!);
remove => Remove(ref _mouseUp, value!);
}
#pragma warning disable CS0067
public event Action<float, float>? MouseMove;
#pragma warning restore CS0067
public event Action<float, float>? MouseMove
{
add => Add(ref _mouseMove, value!);
remove => Remove(ref _mouseMove, value!);
}
public event Action<float>? Scroll
{
add => Add(ref _scroll, value!);