decentraland / decentraland/godot-explorer
Point-At In World
- Dominant language
- Rust
- Stars
- 18
- Forks
- 19
- Avg merge
- 4d 2h
- Merged PRs (30d)
- 43
Description
## Description
Implement support for the **point-at in-world** feature as defined in the protocol update: https://github.com/decentraland/protocol/pull/370
This feature allows avatars to point at a specific world position, visible to other users via comms.
## Protocol Changes
The following changes from `decentraland/protocol#370` need to be supported:
### Movement message (comms)
- New fields in `Movement`:
- `float point_at_x = 25`
- `float point_at_y = 26`
- `float point_at_z = 27`
- `bool is_pointing_at = 28`
### MovementCompressed message
- New field `int32 point_at_data = 4` — bit-compressed:
- 3 × 10 bits (9 + 1 sign) for coordinates
- 1 bit bool flag for `is_pointing_at`
### New LookAtPosition message
- Added to the `Packet` oneof (`look_at_position = 13`)
- Fields: `timestamp`, `position_x/y/z`, `target_avatar_wallet_address`
- Used to force an avatar to look at a specific world position
## Implementation Tasks
- [ ] Update protocol dependency to include point-at changes
- [ ] Parse and send `point_at_*` fields in Movement / MovementCompressed comms messages
- [ ] Handle `LookAtPosition` packet type
- [ ] Render pointing animation/indicator on remote avatars
- [ ] Send point-at data from the local player when pointing
---
Requested by Rodri via Slack
Contributor guide
Assessment
This issue has not been assessed yet.