CrowVisual
What the Old Crow looks like, and what its body is doing. Sits beside `game.CrowController` on the player prototype's `body` and owns everything under a single child named `crow_visual`, rebuilt on every awake so a clone made for a joining player carries exactly one bird.
game.CrowVisual
What the Old Crow looks like, and what its body is doing. Sits beside
game.CrowController on the player prototype's body and owns everything under
a single child named crow_visual, rebuilt on every awake so a clone made for a
joining player carries exactly one bird.
Three modules under it, each with one job:
| Module | Job |
|---|---|
game.crow.shapes | arrays in, geometry out — the sweep every part is made by |
game.crow.rig | the anatomy: which mesh, on which joint, where |
game.crow.poses | what the body does, and the springs that get it there |
The bird is built at whatever size the anatomy came out and then scaled once so
it stands exactly CF.RULES.crowHeight from claw to crown — the reach the climb
slice's CF.grabbable catches a lip with. Change the anatomy and the scale
follows; nothing here is a measured constant.
What drives it
The pose is chosen from CF.state every frame — hanging, airborne, weak, moving,
still, won, lost — and interrupted by one-shots the CF events fire: hop, land
(longer for a harder landing), grab, pullup, drop, peck, eat, fall.
crumble and tooWeak set a startle that snaps the neck up and flicks the
wings. reset puts it back to idle.
On top of the pose blend sit the overlays — the things a body does continuously rather than in poses: the breath, the wingbeat, the stride while sidling, the head keeping itself level against the hunch below it, the toes closing on what they are standing on, the tail answering the fall, and a blink.
API
local cv = entity.component.get("game.CrowVisual")
cv:setPose("fly", 3) -- force a pose for N seconds — a staged moment
cv:poseState() -- { pose, scale, restHeight, yaw, shot, shotT }
Owned by the crow slice. See /zero/source/design/spec.md.
Scoped to this part · feeds back into the world's score.