Let Get position give only the local x and y
game-maker / gate (push) Successful in 3m6s
game-maker / suite (push) Successful in 16m6s

Get world position now covers the world coordinates. Two nodes that
both offer world x and y made it unclear which one to take. No project
uses the world outputs of Get position any more.

- Get position drops its world x and world y outputs and its
  description points to Get world position.
- Old snapshots with edges on those outputs still load. The edges hang
  on ghost ports and the node warns about them.
- The unit tests in hierarchy and raycast and the graphs in e2e 43 use
  Get world position where they read the world coordinates.

Tests:
- node-catalog, hierarchy, raycast: 3 files, 417 tests, all green
- e2e 43 on melektaus-atx: ALL PASSED, 17 checks

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
adminandClaude Opus 5.5 committed 2026-10-04 19:13:58 +02:00
1 parent 526b1da7f4
commit 2da07599d8
5 files changed
+24 -28

No files matched your search

+3 -5
View File
@@ -1,4 +1,3 @@
import { worldPositionOf } from '../../NodeContext';
import type { NodeDef } from '../../NodeRegistry';
import { asEntity } from '../../values';
import { num, obj } from '../shared';
@@ -7,13 +6,12 @@ export const GetPosition: NodeDef = {
type: 'GetPosition',
label: 'Get position',
category: 'data',
description: 'The position of an object: local to its parent (x/y) and in world units (world x/y).',
description: 'The position of an object local to its parent. Get world position gives it in world units.',
inputs: [obj('object')],
outputs: [num('x'), num('y'), num('worldX', 'world x'), num('worldY', 'world y')],
outputs: [num('x'), num('y')],
params: [],
run: (_ctx, inputs) => {
const target = asEntity(inputs.object);
const world = target ? worldPositionOf(target) : { x: 0, y: 0 };
return { outputs: { x: target?.x ?? 0, y: target?.y ?? 0, worldX: world.x, worldY: world.y } };
return { outputs: { x: target?.x ?? 0, y: target?.y ?? 0 } };
},
};