Skip to content

Commit e75fc97

Browse files
jsvdclaude
andcommitted
Update CHANGELOG with recent API additions, fixes, and breaking changes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 9b4c208 commit e75fc97

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,26 @@ All notable changes to Arcane are documented here.
44

55
## [Unreleased]
66

7+
### Added
8+
- **`spawnBurst(x, y, opts)`** — self-destructing particle burst with automatic Rust emitter lifecycle management; emits `count` particles over `duration` seconds then cleans up when all particles die. Replaces ~70 lines of manual emitter bookkeeping.
9+
- **`getManagedBurstCount()`** — returns number of active managed bursts (for testing/debugging)
10+
- **`trackTarget(getTarget, opts)`** — declarative camera tracking; set once, runs automatically each frame via `createGame()`. Accepts `zoom` as number or getter function. Replaces per-frame `followTargetSmooth()` boilerplate.
11+
- **`stopTracking()` / `isTracking()`** — control and query declarative camera tracking state
12+
- **`withScreenSpace(fn)`** — push/pop screen-space context so all draw calls inside default to `screenSpace: true`. Explicit `screenSpace` on individual calls always wins. Wired into `drawSprite`, `drawText`, all 4 UI primitives, and all 10 shape functions.
13+
- **`isScreenSpaceActive()`** — query whether a `withScreenSpace` context is active
14+
- **`drawBody(bodyId, opts)`** — draws a sprite centered on a physics body's position/rotation; simplifies the common `getBodyState()` + `drawSprite()` pattern
15+
- **Auto-clamp delta time** — 250ms hard cap in Rust; optional `maxDeltaTime` in `GameConfig` for per-game tighter caps
16+
717
### Changed (BREAKING)
818
- **Coordinate system now top-left origin**`(0, 0)` is the top-left corner of the screen, matching web canvas, Unity 2D, and Godot conventions. Camera position represents the viewport's top-left corner in world space. `autoCamera` option removed from `createGame()`. All screen↔world math simplified. All demos and documentation updated.
19+
- **`sdfOffset` / `sdfRepeat` now take Vec2**`sdfOffset(shape, x, y)``sdfOffset(shape, {x, y})`; `sdfRepeat(shape, x, y)``sdfRepeat(shape, {x, y})` for consistency with the rest of the SDF API
20+
21+
### Fixed
22+
- **Physics bounce** — restitution combining changed from `min()` to `max()` so the bouncier surface wins (matching Box2D/Rapier). Fixed speculative contact bias cancelling out bounce impulse.
23+
- **Glow shader** — moved spread→intensity conversion from WGSL to TypeScript layer; shader uses clean `exp(-d * intensity)` formula
24+
25+
### Removed
26+
- **Legacy physics solver** — removed single-contact solver (~250 lines); manifold solver (TGS Soft) is now the only path
927

1028
## [0.22.0] - 2026-02-28
1129

0 commit comments

Comments
 (0)