From 70bda0c4df306046006796fdd045604fc0857c4b Mon Sep 17 00:00:00 2001 From: Orkuncakilkaya Date: Sat, 12 Sep 2026 13:55:19 +0300 Subject: [PATCH] chore(release): v0.11.1 --- CHANGELOG.md | 18 ++++++++++++++++++ VERSION | 2 +- changes/collide-centre.md | 16 ---------------- 3 files changed, 19 insertions(+), 17 deletions(-) delete mode 100644 changes/collide-centre.md diff --git a/CHANGELOG.md b/CHANGELOG.md index b69bc19f..8b4d362f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,24 @@ change type. Preview the next one with `ludic dev release --dry-run`. A released section may carry a hand-written summary paragraph above its groups (v0.2.0 has one); the generated bullets below it are not edited by hand. +## v0.11.1 — 2026-09-12 + +### Fixes + +- **`col_resolve` no longer throws a body across the map when it starts dead centre on a + collider.** The degenerate branch — a point exactly on a circle's axis, where there is + no direction to push it — chose a unit normal `(1, 0)` and then divided it by the + clamped `d = 0.001` anyway, along with the real normals. The push came out a thousand + times too large: a body standing exactly on a 0.5 m trunk was moved about 800 m instead + of the 0.85 m that clears it. + + Off-centre the arithmetic was correct, and off-centre is how anything arrives at a + trunk while walking, so it never showed up in play — only a teleport, a spawn or a + world generator placing something on an existing collider could land on the axis. + + `(ex, ez) / d` is always a unit vector for `d > 0`, because `d` is its own length: there + was never anything to clamp. The normal is now built once, explicitly, and the clamp is + gone. ## v0.11.0 — 2026-09-12 ### Features diff --git a/VERSION b/VERSION index d9df1bbc..af88ba82 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.11.0 +0.11.1 diff --git a/changes/collide-centre.md b/changes/collide-centre.md deleted file mode 100644 index 61cda14a..00000000 --- a/changes/collide-centre.md +++ /dev/null @@ -1,16 +0,0 @@ -bump: patch -type: fix -**`col_resolve` no longer throws a body across the map when it starts dead centre on a -collider.** The degenerate branch — a point exactly on a circle's axis, where there is -no direction to push it — chose a unit normal `(1, 0)` and then divided it by the -clamped `d = 0.001` anyway, along with the real normals. The push came out a thousand -times too large: a body standing exactly on a 0.5 m trunk was moved about 800 m instead -of the 0.85 m that clears it. - -Off-centre the arithmetic was correct, and off-centre is how anything arrives at a -trunk while walking, so it never showed up in play — only a teleport, a spawn or a -world generator placing something on an existing collider could land on the axis. - -`(ex, ez) / d` is always a unit vector for `d > 0`, because `d` is its own length: there -was never anything to clamp. The normal is now built once, explicitly, and the clamp is -gone.