Merge Move and slide into Move with a 'Collide with solids' toggle

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
rootandClaude Fable 5.1 committed 2026-09-07 15:50:52 +02:00
1 parent 6ecb20cf02
commit b0860ca07f
5 files changed
+24 -34

No files matched your search

+6 -5
View File
@@ -103,15 +103,16 @@ and `collider` (the own one). `Is touching(a, b)` answers the same question on d
object stands for its collider children, a collider for itself. The geometry lives in
`src/core/properties/collider.ts` so editor and runtime agree on it.
**Blocking** is opt-in per movement: the `Move and slide` node (same inputs as `Move`) moves
an object one axis at a time and, after each axis, pushes its *solid* colliders back to just
touch any solid collider they ran into – so the other axis still moves and the object slides
along walls. Its `blocked x` / `blocked y` outputs tell which axes hit. A collider with
**Blocking** is opt-in per movement: the `Move` node has a **Collide with solids** setting
(default off). When enabled it moves an object one axis at a time and, after each axis, pushes
its *solid* colliders back to just touch any solid collider they ran into – so the other axis
still moves and the object slides along walls. Its `blocked x` / `blocked y` outputs tell which
axes hit (always `false` with the setting off). A collider with
**Trigger (no blocking)** enabled (`isTrigger`, drawn amber instead of green) still produces
collision events but never blocks. Pairs that already overlapped before the step are left
alone, so an object that starts inside a wall can leave it and stacked objects never jolt apart.
Colliders of the moving object and of anything parented under it travel with it and cannot
block it. Plain `Move` / `Set position` ignore colliders entirely.
block it. `Move` without the setting and `Set position` ignore colliders entirely.
## Stack