You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(archetypes): make braziers, cauldrons, and fireplaces emit firelight #91
Evidence policy update (2026-08-11):#66 is complete through #124; any wording
below treating it as a future prerequisite is superseded. #126/#127 retire the
committed renderer-review capture surface. The removed files were generated
review artifacts, not authored gameplay art. Any requirement below to commit
rendered screenshots, contact sheets, manifests, proof maps, or capture tooling
is superseded. Keep authored semantic review in maps/light-source-review.json (rationales, current digests, complete coverage,
and zero unreviewed emitters). Optional smooth/discrete diagnostics belong only
under ignored build/ or deployment output; summarize conclusions in the PR,
but never commit or gate merge on those files.
Follow-up to #65 and its implementation in #67, with the compatible main integration tracked by #66.
Outcome
Make these visibly burning, fixed freestanding fixtures emit orange-red firelight by default:
brazier_lit;
fire_cauld.131;
fireplace_left;
fireplace_right.
This issue intentionally excludes the directional wall-mask wmask_fire_on_1, whose rendering and rollout risk are tracked separately, and the static fire statues and pools tracked by #87.
Evidence
A lossless placement audit at #67 head 1476bfa81c35f7764af327a84fe4045eb0eff97e finds 144 placements across 75 unique maps:
Archetype
Placements
Maps
Own nonzero radius
Same-tile neutral emitter
No current source
brazier_lit
69
15
44
25
0
fire_cauld.131
18
15
4
7
6
fireplace_left
30
29
1
6
23
fireplace_right
27
21
1
5
21
One additional non-emitting cauldron shares its tile with an amber wall torch. No placement has a map-local light_color override. All 50 self-emitting placements inherit #67's established ff6030 open-fire color.
The brazier has strong radius evidence: 44 placements explicitly use radius 5, and 20 of its 25 same-tile neutral lights are also radius 5; the remaining paired braziers use radius 4 or 9 for larger compositions. Existing cauldron self-radii are 2, 4, and 5, while five of seven neutral companions are radius 3. The multipart fireplaces have radius-2/radius-3 precedents, but 44 placements currently have no source.
Treat radius 5 as the established brazier baseline. Select bounded cauldron and fireplace defaults from the radius-2/radius-3 precedents after rendered comparison.
Apply light only to each multipart fireplace root, not its More child, and leave fireplace_left_off and fireplace_right_off dark.
Review every current positive map override and preserve it where it intentionally enlarges or constrains a scene.
Reconcile all 43 same-tile neutral lights deliberately: transfer their footprint to the visible fixture and remove the redundant source when equivalent, or retain and document intentional neutral fill. Do not leave accidental double emitters.
Review the cauldron that shares an amber torch separately so two art-aligned sources do not produce an unintended mix.
Preserve animation, orientation, multipart structure, layers, blocking, names/plurals, and all gameplay fields.
Coordinate this work with #80, which has 16 companion-lit braziers, and #83, which contains two cauldrons and four multipart fireplaces. Land fixture ownership before selecting those maps' ambient palettes.
Acceptance criteria
All four root archetypes are reviewed effective ff6030 emitters, and all 144 current placements enter the refreshed semantic inventory with inherited or intentional local radii.
Brazier, cauldron, and both fireplace orientations have appropriately scaled firelight in representative smooth and discrete Classic renders.
All 43 same-tile neutral companions and the one colored co-location are migrated, retained, or excepted with an explicit rationale; no accidental double-light source remains.
Existing radius-2 through radius-9 compositions retain their intended footprint, with no clipping, oversaturation, wall bleed, seam regression, or lost navigation cue.
Multipart fireplace children and off variants remain non-emitting; animation, direction, blocking, layer, and gameplay fields are unchanged.
Land only after #65/#67 are integrated on 1.x and #66 supplies the matching field/audit contract on main. The 75 affected map files are currently byte-identical between the two lines, but main carries plural-name metadata absent from the #67 snapshot; preserve it rather than copying archetype files wholesale. Deliver compatible authored changes through separate linked pull requests. The canonical main pull request closes this issue; the 1.x companion links it without a closing keyword. Classic 1.x owns runtime rendering evidence; validate the authored mirror independently on main, or document a concrete compatibility exception.
Important
Evidence policy update (2026-08-11): #66 is complete through #124; any wording
below treating it as a future prerequisite is superseded. #126/#127 retire the
committed renderer-review capture surface. The removed files were generated
review artifacts, not authored gameplay art. Any requirement below to commit
rendered screenshots, contact sheets, manifests, proof maps, or capture tooling
is superseded. Keep authored semantic review in
maps/light-source-review.json(rationales, current digests, complete coverage,and zero unreviewed emitters). Optional smooth/discrete diagnostics belong only
under ignored
build/or deployment output; summarize conclusions in the PR,but never commit or gate merge on those files.
Follow-up to #65 and its implementation in #67, with the compatible
mainintegration tracked by #66.Outcome
Make these visibly burning, fixed freestanding fixtures emit orange-red firelight by default:
brazier_lit;fire_cauld.131;fireplace_left;fireplace_right.This issue intentionally excludes the directional wall-mask
wmask_fire_on_1, whose rendering and rollout risk are tracked separately, and the static fire statues and pools tracked by #87.Evidence
A lossless placement audit at #67 head
1476bfa81c35f7764af327a84fe4045eb0eff97efinds 144 placements across 75 unique maps:brazier_litfire_cauld.131fireplace_leftfireplace_rightOne additional non-emitting cauldron shares its tile with an amber wall torch. No placement has a map-local
light_coloroverride. All 50 self-emitting placements inherit #67's establishedff6030open-fire color.The brazier has strong radius evidence: 44 placements explicitly use radius 5, and 20 of its 25 same-tile neutral lights are also radius 5; the remaining paired braziers use radius 4 or 9 for larger compositions. Existing cauldron self-radii are 2, 4, and 5, while five of seven neutral companions are radius 3. The multipart fireplaces have radius-2/radius-3 precedents, but 44 placements currently have no source.
Scope
ff6030color.Morechild, and leavefireplace_left_offandfireplace_right_offdark.Coordinate this work with #80, which has 16 companion-lit braziers, and #83, which contains two cauldrons and four multipart fireplaces. Land fixture ownership before selecting those maps' ambient palettes.
Acceptance criteria
ff6030emitters, and all 144 current placements enter the refreshed semantic inventory with inherited or intentional local radii.python3 tools/world_content_audit.py lights --check,python3 tools/validate.py, andgit diff --checkpass.Release lines
Land only after #65/#67 are integrated on
1.xand #66 supplies the matching field/audit contract onmain. The 75 affected map files are currently byte-identical between the two lines, butmaincarries plural-name metadata absent from the #67 snapshot; preserve it rather than copying archetype files wholesale. Deliver compatible authored changes through separate linked pull requests. The canonicalmainpull request closes this issue; the1.xcompanion links it without a closing keyword. Classic1.xowns runtime rendering evidence; validate the authored mirror independently onmain, or document a concrete compatibility exception.