Until now a behavior could not move an object in front of another
while the game runs. Set position writes only x and y, and z lives on
the running object rather than in its props, so Properties cannot
reach it either. Drawing already reads the z every frame, so only the
nodes were missing.
- Get Z (data): object in, z and world z out. World z is summed up
with the parents, the way drawing does it (worldTransformOf).
- Set Z (action): object and z in. It sets the object's own z, local
to its parent like Set position. Higher is drawn in front from the
next frame on.
- Two nodes of their own rather than a z port on Set position and
Get position, as asked.
Tests:
- node-catalog: Get Z for a child (2 below 5 is world z 7) and for no
object, Set Z writes only z and leaves x/y.
- set-z.test.ts: in a running world a key sets the lower of two
sprites to z 2, drawSlots then draws it in front, Get Z logs 2 and 2.
- Two counter-checks bite: Set Z without the write and Get Z without
the parent fail 3 tests.
- Gate: 233 files, 3548 tests (3542 + 6), CHECK EXIT 0.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>