Water pours off ledges several times faster, raining clouds spread boiled-off water (t21)
- Liquids step up to 8 cells a tick toward a drop (fewer the thicker they are), and a top-layer grain looks 4 times as far for one, so pools empty and thin film drains. A 100-wide pool empties in about 50 s; the old code left 24-650 grains stranded on wide ledges. - Only a top-layer grain stepping sideways wakes the row ahead, so settled lakes still sleep. - World generation settles at the old speed: seeds make the same worlds as before. - Cooled steam under a roof no longer stays steam for ever (its heat area slept). - Raining clouds keep drifting at half pace and rain over a band either side, so a waterfall into a hot shaft no longer rains straight back on its own lake. - New test/t_water.js; t_weather rain-location checks; t_conveyors counts steam in flight; t_molds seeds the random burning-bed check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -338,6 +338,19 @@ above, including:
|
||||
version's narrow fade too sharp.
|
||||
Unexplored ground is pure black, not dark grey (the owner: "should be black anyway").
|
||||
|
||||
- **Water pours faster, and boiled-off rain spreads out (t21, 2026-10-24).** The owner found water
|
||||
running off a ledge slower than expected. Only the top layer of a pool flows, so pools emptied
|
||||
at a trickle and the old code left 24-650 grains stranded on a wide ledge for good.
|
||||
- A liquid now steps up to 8 cells a tick toward a drop instead of 1, fewer the thicker it is
|
||||
(water 8, molten copper 5, slag 4, magma 2, glass 1). A grain on top may look 4 times as far
|
||||
for a drop, so thin film left behind drains too. A 100-wide pool empties in about 50 s
|
||||
(it never fully emptied before); settled lakes still sleep.
|
||||
- Raining clouds keep drifting downwind at half pace, and rain falls over a cloud's band and the
|
||||
band either side. Before, a waterfall into a shaft hot enough to boil it could rain straight
|
||||
back on its own lake.
|
||||
- World generation settles the land at the old water speed, so every seed keeps making the
|
||||
same world.
|
||||
|
||||
## Ideas not built yet
|
||||
|
||||
- **Concrete**, as a stronger wall material from rubble.
|
||||
|
||||
+5
-4
@@ -226,10 +226,10 @@ Exploration only: never changes grains or the random stream.
|
||||
- functions: fogAlloc, fogMark, fogSeen, fogInit, fogLook, fogRevealAround, fogRevealAll
|
||||
- variables: FOG, FOG_SENSE, FOG_SENSE_FADE, fog, FW, FH
|
||||
|
||||
### src/sim/cells.js (176 lines)
|
||||
### src/sim/cells.js (187 lines)
|
||||
Cell helpers (setCell, move, enter) and the falling-sand movement of powders, liquids and gases (simMove).
|
||||
- functions: setCell, swapCells, move, enter, powder, passable, liquid, gas, simMove
|
||||
- variables: SORTP
|
||||
- variables: SORTP, LSTEP, LFILM
|
||||
|
||||
### src/sim/heat.js (246 lines)
|
||||
Heat: conduction, melting and freezing, reactions, fire and air, steel.
|
||||
@@ -320,7 +320,7 @@ The bot: movement and collision with the world.
|
||||
Milestone checks (the ledger) and the sky roof line used for cooling.
|
||||
- functions: checkLedger, updateRoof
|
||||
|
||||
### src/sim/weather.js (85 lines)
|
||||
### src/sim/weather.js (87 lines)
|
||||
Weather: clouds from steam, rain and snow, and the world water count.
|
||||
- functions: wrnd, resetWeather, rainGap, worldWater, absorbSteam, spawnRain, rainAt, weatherTick
|
||||
- variables: WBAND, WS, weather
|
||||
@@ -329,7 +329,7 @@ Weather: clouds from steam, rain and snow, and the world water count.
|
||||
simTick: one simulation step, in order.
|
||||
- functions: simTick
|
||||
|
||||
### src/sim/worldgen.js (344 lines)
|
||||
### src/sim/worldgen.js (346 lines)
|
||||
World generation: noise, layers, ores, caves, water, trees, and clearing tiny hard specks.
|
||||
- functions: makeNoise, fbm, clearHardSpecks, generateWorld, generateWorldAsync
|
||||
- variables: SPECK_MIN
|
||||
@@ -476,6 +476,7 @@ The frame loop and boot.
|
||||
- `test/t_racks.js`: Rack intake, FIFO storage, gate, removal and saved-state validation.
|
||||
- `test/t_smooth.py`: The smooth look: the WebGL pass compiles, draws, falls back cleanly, and the thermal lens still works.
|
||||
- `test/t_stone.js`: Uses for waste rock and sand: glass bricks from a fan furnace, the Saw, the silo and builders' orders.
|
||||
- `test/t_water.js`: Water conservation, settling, ledge pouring, boundaries, pipes and phase changes. Tall worlds keep geothermal heat out of the ponds.
|
||||
- `test/t_weather.js`: Weather: no more springs; steam rises into clouds and rains back; showers; snow when it is freezing.
|
||||
- `test/t_world.js`: Trees from acorns, charcoal, brick, density, water/lava/snow/ice, full-bag refunds, drill reach, ballistic blowing, snowy mountains.
|
||||
- `tools/map.py`: Regenerate the file and symbol index at the end of docs/PROJECT_MAP.md.
|
||||
|
||||
@@ -4,6 +4,26 @@ What agents have done, newest first. Add an entry for every piece of work: the d
|
||||
note or request it was for, what changed, the files touched, the tests run, and anything left
|
||||
open or not verified. Keep each entry short; the git history has the details.
|
||||
|
||||
## 2026-10-24: t21 phase 1: water test pass, faster pouring, rain spreads (Claude Code, Codex)
|
||||
|
||||
- `test/t_water.js` (20 checks): conservation, levelling and sleep, pools pouring off ledges,
|
||||
world edges and corners, pumps, freezing and thawing, boiling and condensing, a pool draining
|
||||
into a hot shaft.
|
||||
- `liquid()`/`move()` in `src/sim/cells.js`: multi-cell steps (`LSTEP`, scaled by `FLUID`),
|
||||
a longer reach for top-layer grains (`LFILM`), and waking the row ahead only when a top-layer
|
||||
grain steps sideways (waking on every liquid move kept 207 of 2048 areas busy after a reload).
|
||||
`worldSteps` settles with both at 1: seeds 777, 77 and 4242 hash the same as before.
|
||||
- Found: cooled steam drifting under a roof could stay steam for ever, because its heat area
|
||||
slept. `gas()` now keeps the heat pass on it.
|
||||
- `weatherTick()`: raining clouds drift at half pace; rain falls over the band and one either
|
||||
side. `t_weather`: 'close to where it gathered' now samples drops in the air (landed water
|
||||
spreads); a new wind check.
|
||||
- Test fixes, not weakening: `t_conveyors` pit check counts steam on its way up (the water total
|
||||
was exact); `t_molds` burning-bed check seeds `RS` (its result hung on earlier tests' draws:
|
||||
0.28-1.04 depending on the sequence, identical on the old and new code).
|
||||
- Steady cost after a reload (2048x1024): 1.26 -> 1.24 ms/tick. Tests: `run_all.py --browser`
|
||||
ALL PASSED. Screenshots `shots/t21-pour-120.png`, `shots/t21-pour-900.png`.
|
||||
|
||||
## 2026-10-24: t1: bars stack neatly, Rack blocks store them (Claude Code, Codex)
|
||||
|
||||
- `232f5af`: `entTick` snap-and-tip (`entSupportCount`, `src/sim/items.js`);
|
||||
|
||||
Reference in New Issue
Block a user