Player-triggered contraptions that chain purely via world.events
('machine:signal') with a mandatory ~0.5s telegraph before any force or
paint dump (GDD readable-chaos pillar).
src/machine/:
- telegraph.ts: unmissable windup (accelerating flash + shake + scale pulse)
ticked once per world; parts await it and only then fire.
- parts.ts: PressurePlate (real body.mass() threshold), SpringBoot
(telegraph -> impulse on strike volume), SeeSaw (Rapier revolute joint
with limits + optional rest tilt), BucketDump (telegraph teeter ->
paint:request-splat + slosh), ConveyorBelt, BubbleArch (rising-edge
paint:request-cleanse + bubbles), Fan (per-step impulse so mass does the
work). Config-driven; no cross-instance references.
- surfaces.ts: normal/ice/oil/honey/mud/water registry with applySurface +
surfaceAt (downward ray) query.
demos/lane-c.html + src/demo/lane-c.ts: heavy ball runs
PressurePlate -> SpringBoot -> SeeSaw -> ice runway -> BucketDump, plus
conveyor/arch/fan and ice/honey probe lanes. Debug keys T/L/S/F/P and
per-second STATE console lines. Layout constants tuned via a headless
physics sweep so the chain completes deterministically.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
26 lines
1.1 KiB
HTML
26 lines
1.1 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head><meta charset="utf-8" /><title>BLOBBO lane c demo</title>
|
|
<style>
|
|
html,body{margin:0;height:100%;overflow:hidden;background:#bfe3ff;font-family:system-ui,sans-serif}
|
|
#app{width:100%;height:100%}
|
|
#legend{position:fixed;top:10px;left:10px;padding:10px 12px;border-radius:8px;
|
|
background:rgba(20,24,40,.72);color:#eaf2ff;font-size:13px;line-height:1.5;pointer-events:none}
|
|
#legend b{color:#ffd60a}
|
|
#legend .k{display:inline-block;min-width:14px;padding:1px 5px;margin-right:6px;border-radius:4px;
|
|
background:#354569;color:#fff;font-weight:600;text-align:center}
|
|
</style></head>
|
|
<body>
|
|
<div id="app"></div>
|
|
<div id="legend">
|
|
<b>BLOBBO — Lane C machine demo</b><br>
|
|
<span class="k">T</span>re-run heavy chain ball<br>
|
|
<span class="k">L</span>drop light ball (plate must NOT trip)<br>
|
|
<span class="k">S</span>re-run ice/honey surface probes<br>
|
|
<span class="k">F</span>drop light ball in the fan beam<br>
|
|
<span class="k">P</span>print machine state to console
|
|
</div>
|
|
<script type="module" src="/src/demo/lane-c.ts"></script>
|
|
</body>
|
|
</html>
|