feat(B.5): SendPickUp helper + F-key SelectionPickUp wiring
This commit is contained in:
parent
ced1b85c61
commit
54d9bb9d8d
1 changed files with 22 additions and 0 deletions
|
|
@ -8746,6 +8746,13 @@ public sealed class GameWindow : IDisposable
|
||||||
UseCurrentSelection();
|
UseCurrentSelection();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case AcDream.UI.Abstractions.Input.InputAction.SelectionPickUp:
|
||||||
|
if (_selectedGuid is uint pickupTarget)
|
||||||
|
SendPickUp(pickupTarget);
|
||||||
|
else
|
||||||
|
_debugVm?.AddToast("Nothing selected");
|
||||||
|
break;
|
||||||
|
|
||||||
case AcDream.UI.Abstractions.Input.InputAction.EscapeKey:
|
case AcDream.UI.Abstractions.Input.InputAction.EscapeKey:
|
||||||
if (_cameraController?.IsFlyMode == true)
|
if (_cameraController?.IsFlyMode == true)
|
||||||
_cameraController.ToggleFly(); // exit fly, release cursor
|
_cameraController.ToggleFly(); // exit fly, release cursor
|
||||||
|
|
@ -8881,6 +8888,21 @@ public sealed class GameWindow : IDisposable
|
||||||
Console.WriteLine($"[B.4b] use guid=0x{guid:X8} seq={seq}");
|
Console.WriteLine($"[B.4b] use guid=0x{guid:X8} seq={seq}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SendPickUp(uint itemGuid)
|
||||||
|
{
|
||||||
|
if (_liveSession is null
|
||||||
|
|| _liveSession.CurrentState != AcDream.Core.Net.WorldSession.State.InWorld)
|
||||||
|
{
|
||||||
|
_debugVm?.AddToast("Not in world");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var seq = _liveSession.NextGameActionSequence();
|
||||||
|
var body = AcDream.Core.Net.Messages.InteractRequests.BuildPickUp(
|
||||||
|
seq, itemGuid, _playerServerGuid, placement: 0);
|
||||||
|
_liveSession.SendGameAction(body);
|
||||||
|
Console.WriteLine($"[B.5] pickup item=0x{itemGuid:X8} container=0x{_playerServerGuid:X8} seq={seq}");
|
||||||
|
}
|
||||||
|
|
||||||
private uint? SelectClosestCombatTarget(bool showToast)
|
private uint? SelectClosestCombatTarget(bool showToast)
|
||||||
{
|
{
|
||||||
if (!_entitiesByServerGuid.TryGetValue(_playerServerGuid, out var playerEntity))
|
if (!_entitiesByServerGuid.TryGetValue(_playerServerGuid, out var playerEntity))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue