Object manager: implement update decoding, collections, properties, and actions #69
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Objective
Implement full/compressed/terse object update decoding, simulator primitive/avatar collections, linking, property requests, selection, click/touch, rez/derez, permissions, media/material caps, and events.
Deliverables
Validation
Prerequisite
Networking/client lifecycle and the earlier world model/manager issues are available; mapped APIs and translated tests are fixed.
Project constraints
Implemented and pushed in commit
13f85bf. Added bounded full, compressed, and terse object decoding; primitive/avatar ownership collections and recursive kill cleanup; property, pay-price, animation, particle, sit, physics, and update events; complete mapped object actions; ObjectMedia and RenderMaterials caps; stable concurrent GridClient ObjectManager ownership; and native media/event argument mappings with no ObjectManager failure shims remaining. Review verified decode-before-apply ordering, callbacks outside collection locks, stale UUID cleanup, packet/caps bounds, cancellation-safe click release, and cross-platform Rust-only behavior. Verification: 9 object-manager unit tests, 3 media/material unit tests, world_manager_shims 2/2, object_manager_null_throws 1/1, API compile check, clippy with warnings denied, both generator consistency checks, formatting, and diff checks all pass. Unrelated live-network compatibility failures were not included in this issue.