FACE-mount mate policy for 3D object placement (declared-socket design). Stateful placement state lives in [ObjectPlacementService3D]; this class is the pure policy layer the service consults. Everything here is static and side-effect free: the caller supplies the face's provider node, the entry, and the grid context, and gets back a typed decision. Resolution contract: when the provider wall carries a declared FaceSocket node AND the consumer entry's [PlacementSnapProfile3D] names its face_mount_anchor child, the returned transform is the exact socket mate (socket · anchor⁻¹) so the piece sits flush on the authored face plane by construction. Otherwise the legacy cell-derived face plane serves the mount and [member Resolution.socket_declared] is false, so callers can log/verify which path served the transform.
Source: addons/grid_placement/systems/building/3d/face_mount_resolver_3d.gd
Syntax
class FaceMountResolver3D extends RefCountedMembers
| Name | Kind | Summary |
|---|---|---|
transform | Property | Typed result of one FACE-mount resolution. World-space transform the consumer should be mounted at. |
socket_declared | Property | True when [member transform] is an exact declared-socket mate; false when the legacy cell-derived fallback served the mount. |
resolve | Method | |
socket | Property | |
anchor_name | Property | |
consumer_tmp | Property | |
mate | Property | |
exact | Property | |
fallback | Property | |
provider_face_keys_for_mount | Method | |
result | Property | |
yaw_steps | Property | |
cells | Property | |
can_share_provider_face | Method | |
providers | Property | |
family | Property | |
exposed_provider_faces | Method | |
result | Property | |
node | Property | |
mount | Property | |
profile | Property |