@jgengine/convex 0.41.0 → 0.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -26,6 +26,45 @@ At publish, rename this heading to the new version and mirror the entries into
26
26
  `packages/core/src/meta/changelog.ts` (the typed `CHANGELOG` export).
27
27
  -->
28
28
 
29
+ ## 0.43.0
30
+
31
+ ### Migrate
32
+
33
+ - **Bump lockstep SDK packages to `^0.43.0`:** `@jgengine/{core,rapier,react,ws,node,sql,convex,shell,editor,assets,navbake}`. CLI `jgengine` is `0.40.0`; `@jgengine/github` is `0.30.0`.
34
+
35
+ ### Added
36
+
37
+ - `buildRouteCourse` (`@jgengine/core/world/routeCourse`) lays a purpose-built course from `straight` and `turn` pieces with branches that leave and rejoin the main line, tagged hazard spans with timers, a leg-aware `clamp` wall, `checkpoints` for `raceTrack`, racing `line`s through chosen shortcuts, wall `edges` with junction openings and terrain `groundHeight`/`terrainProfiles` that ride the course's climb.
38
+ - `ocean({ palette: { deep, crest, foam, fresnel } })` recolors the whole water surface, not just the shallows, for liquids that are not sea water.
39
+ - `createRadio` (`@jgengine/core/audio/radio`): serializable car-radio stations (music, talk, news) on one shared clock, so tuning back lands mid-programme. Tune next/previous/off, a priority bulletin queue fed by game events with per-topic cooldowns, expiry and break-in, per-station wording, a `nowPlaying` view for the HUD, and `snapshot`/`restore`/`retune`.
40
+ - `createRadioPlayback` (`@jgengine/core/audio/radioPlayback`): drives a radio's cues into a sink — generated music themes with a start offset, spoken lines with per-voice pitch and rate — and pauses with the game.
41
+ - `ctx.game.audio.speak(text, options)`, `stopSpeech()` and `duck(id, bus, amount)`, plus `music(theme, transpose, { offset })`. The shell speaks through Web Speech on the game's `audio.speechBus` (text-only when no voice exists), holds keyed bus ducks, and starts a theme partway in.
42
+ - `window.__jgengineAudio.speech()` reports whether speech is available, how many voices, and lines spoken and dropped.
43
+
44
+ ### Fixed
45
+
46
+ - Terrain `biomeBands` `sky` and `fog` now cross-fade in a game that also declares `lighting` with a directional sun; the shell dropped the bands whenever it derived the sun bearing from that light.
47
+ - A static sky's banded fog color now follows the band instead of being pinned to `sky.fog.color`.
48
+
49
+ ## 0.42.0
50
+
51
+ ### Migrate
52
+
53
+ - **Bump lockstep SDK packages to `^0.42.0`:** `@jgengine/{core,rapier,react,ws,node,sql,convex,shell,editor,assets,navbake}`. CLI `jgengine` is `0.39.0`; `@jgengine/github` is `0.29.0`.
54
+
55
+ ### Added
56
+
57
+ - `createSideJobs` (`@jgengine/core/mission/sideJobs`) runs repeatable side jobs (taxi fares, deliveries, tows, street races) as data-declared kinds: seeded offers from game spots or authored routes, pickup → drops → paid/failed against a `slack + distance / speed` clock, fare `base + perMetre × distance` plus time bonus, a comfort-scaled tip from the game's `comfortLoss` rule, a back-to-back streak bonus, cooldowns, a `wager` purse by place, and `race` kinds run on `RaceState` against rival positions the game reports. `snapshot`/`restore`, `retune` and optional `persist`. Pure helpers `sideJobFare`, `sideJobDeadline`, `sideJobTip`, `sideJobStreakBonus`.
58
+ - `OnDeathSpec.keep`: an entity whose game owns its death (a downed window, a revive in place) stays in the scene on a lethal hit; `entity.died` fires with `kept: true`, drops and commands still run. `deathRemovesEntity(event)` tells presentation whether the body left, and ragdolls, the dead flag and the death clip skip a kept death.
59
+ - `planInteriorDressing` and `interiorWallRuns` (`@jgengine/core/world/interiorDressing`) plan an interior's trims, pipe runs with brackets and valves, sagging cables, stains, wall lamps and wall clutter slots from its room footprints, deterministic per seed, with kept-clear spots and a walkway left open. `nearestFixtures` picks the lamps nearest an eye for a light pool.
60
+ - `InteriorDressing` and `PracticalLights` (`@jgengine/shell/render/InteriorDressing`) draw a plan in a handful of instanced draws (static shape batches, one merged cable mesh, one instanced decal mesh per stain style) and light the nearest lamps from a fixed, shadow-capped spot-light pool.
61
+ - Decal styles `grime`, `leak`, `rust` and `wet`.
62
+ - `postProcessing.atmosphere.indoor` keeps the haze running with no shadow-casting sun, and `atmosphere.lamps` makes the nearest point and spot lights (up to eight) glow in it. A light with `userData.haze === false` never glows.
63
+
64
+ ### Fixed
65
+
66
+ - A hit is lethal only when it empties the target's last pool, not when it lands on a pool already at its floor.
67
+
29
68
  ## 0.41.0
30
69
 
31
70
  ### Migrate
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jgengine/convex",
3
- "version": "0.41.0",
3
+ "version": "0.43.0",
4
4
  "description": "Convex adapters for JGengine: game transport, presence transport, and backend wiring over @jgengine/core.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -30,7 +30,7 @@
30
30
  "check-types": "tsgo --noEmit -p tsconfig.json"
31
31
  },
32
32
  "dependencies": {
33
- "@jgengine/core": "^0.41.0"
33
+ "@jgengine/core": "^0.43.0"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "convex": "^1.31.2",
@@ -6,7 +6,7 @@
6
6
 
7
7
  - `CHANGELOG` (const): const CHANGELOG: Record<string, ChangelogEntry> — Per-version engine changelog keyed by semver string (e.g. `"0.10.0"`).
8
8
  - `ChangelogEntry` (interface): interface ChangelogEntry — One release's migrate steps plus added/changed/removed notes (typed mirror of CHANGELOG.md).
9
- - `VERSION` (const): const VERSION: "0.41.0" — Installed `@jgengine/core` semver - compare against {@link CHANGELOG} keys when migrating.
9
+ - `VERSION` (const): const VERSION: "0.43.0" — Installed `@jgengine/core` semver - compare against {@link CHANGELOG} keys when migrating.
10
10
 
11
11
  ## @jgengine/core/authoring
12
12
 
@@ -285,7 +285,7 @@
285
285
 
286
286
  - `CHANGELOG` (const): const CHANGELOG: Record<string, ChangelogEntry> — Per-version engine changelog keyed by semver string (e.g. `"0.10.0"`).
287
287
  - `ChangelogEntry` (interface): interface ChangelogEntry — One release's migrate steps plus added/changed/removed notes (typed mirror of CHANGELOG.md).
288
- - `VERSION` (const): const VERSION: "0.41.0" — Installed `@jgengine/core` semver - compare against {@link CHANGELOG} keys when migrating.
288
+ - `VERSION` (const): const VERSION: "0.43.0" — Installed `@jgengine/core` semver - compare against {@link CHANGELOG} keys when migrating.
289
289
 
290
290
  ## @jgengine/core/runtime/adapter
291
291