glytch/fktry/src/render
type-two dc1591d0e6 [render] scram latches with hysteresis, mirroring sim (fixes a ~4s visual lie)
SIM landed heat this round, so I read their implementation: `scrammed` lives
on their internal Ent, never on EntityState; they deliberately clear `jammed`
on scram ("reported by its own event, not as a flow jam"); and Renderer only
ever receives snapshots, never events. So the latched-off state is not
snapshot-visible at all.

A plain `heat >= 1` test (what I shipped earlier today) therefore un-scrams the
moment a machine starts cooling. With HEAT_RESTART=0.5 and dissipation
0.004/tick, the sim holds it dead for ~125 ticks (~4s) while heat falls 1.0 ->
0.5 — the renderer showed it alive, glowing and animating, that whole window.

Now latches at 1.0 and releases below SCRAM_RELEASE=0.5, mirroring them.
Verified: 1.0 dead -> 0.7 STAYS dead -> 0.3 releases and recovers.

This duplicates SIM's constant, which is the wrong place for it to live —
EntityState.scrammed is filed as a contract request with the evidence.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 17:47:15 +10:00
..
beltitems.ts [render] belt topology + corner cargo pathing, heat/throttle/scram, buffer fill 2026-07-17 17:36:09 +10:00
belts.ts [render] belt topology + corner cargo pathing, heat/throttle/scram, buffer fill 2026-07-17 17:36:09 +10:00
camera.ts [render] isometric world, instanced belts/cargo, GLB hot-swap registry 2026-07-17 16:31:10 +10:00
coords.ts [render] isometric world, instanced belts/cargo, GLB hot-swap registry 2026-07-17 16:31:10 +10:00
devscene.ts [render] belt topology + corner cargo pathing, heat/throttle/scram, buffer fill 2026-07-17 17:36:09 +10:00
entities.ts [render] scram latches with hysteresis, mirroring sim (fixes a ~4s visual lie) 2026-07-17 17:47:15 +10:00
ghost.ts [render] isometric world, instanced belts/cargo, GLB hot-swap registry 2026-07-17 16:31:10 +10:00
ground.ts [render] isometric world, instanced belts/cargo, GLB hot-swap registry 2026-07-17 16:31:10 +10:00
heat.ts [render] belt topology + corner cargo pathing, heat/throttle/scram, buffer fill 2026-07-17 17:36:09 +10:00
index.ts [render] belt topology + corner cargo pathing, heat/throttle/scram, buffer fill 2026-07-17 17:36:09 +10:00
palette.ts [render] isometric world, instanced belts/cargo, GLB hot-swap registry 2026-07-17 16:31:10 +10:00
registry.ts [render] belt topology + corner cargo pathing, heat/throttle/scram, buffer fill 2026-07-17 17:36:09 +10:00
topology.ts [render] belt topology + corner cargo pathing, heat/throttle/scram, buffer fill 2026-07-17 17:36:09 +10:00