import { worldPositionOf } from '../../NodeContext'; import type { NodeDef } from '../../NodeRegistry'; import { asEntity } from '../../values'; import { num, obj } from '../shared'; export const Distance: NodeDef = { type: 'Distance', label: 'Distance', category: 'data', description: 'Distance between two objects, in world units – however deep each one is nested.', inputs: [obj('a'), obj('b')], outputs: [num('result')], params: [], run: (_ctx, inputs) => { const a = asEntity(inputs.a); const b = asEntity(inputs.b); if (!a || !b) return { outputs: { result: 0 } }; const pa = worldPositionOf(a); const pb = worldPositionOf(b); return { outputs: { result: Math.hypot(pa.x - pb.x, pa.y - pb.y) } }; }, };