Piles near the bot sort, and 20 times faster; burning fuel keeps the slow pace (t21)
- SORTP 0.003 -> 0.06: ore sinks through 8 rows of ash in about 7 s near the bot. - wakeBotPowder(): every 8 ticks, areas with loose grains within 100 grains of the bot get a sorting chance; far away, resting piles still sleep. - Sinking through burning fuel stays at 0.003, so buried burning piles still char and furnace beds behave as tuned. World generation settles at the old rate: seeds are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -351,6 +351,13 @@ above, including:
|
||||
- World generation settles the land at the old water speed, so every seed keeps making the
|
||||
same world.
|
||||
|
||||
- **Piles near the player sort, and quickly (t21, 2026-10-24).** A grain at least twice as heavy as
|
||||
the powder under it sinks through it at 20 times the old pace (ore through ash: 4 rows to the
|
||||
bottom in about 7 s). Before, a resting pile went to sleep and never sorted. Now areas with loose
|
||||
grains within about 100 grains of the bot get a sorting chance every 8 ticks; far away, piles
|
||||
still sleep. Through burning fuel sinking stays at the old slow pace: furnace beds are tuned to
|
||||
it, and dirt heaped on a burning pile must smother it into charcoal rather than sink through.
|
||||
|
||||
## Ideas not built yet
|
||||
|
||||
- **Concrete**, as a stronger wall material from rubble.
|
||||
|
||||
+6
-6
@@ -216,20 +216,20 @@ Starter furnace designs and the milestone list shown in the notebook.
|
||||
- functions: smelterBlueprint
|
||||
- variables: STARTER_DESIGNS, MILESTONES
|
||||
|
||||
### src/sim/world.js (97 lines)
|
||||
### src/sim/world.js (98 lines)
|
||||
World state: the per-cell typed arrays, alloc(), ambient temperature by depth, waking.
|
||||
- functions: emit, bagCap, discover, alloc, depthU, depthY, computeAmbient, fillNoise, wakeXY, wakeHeatXY, wakeIdx, wakeHeatIdx
|
||||
- variables: W, H, N, CW, CH, NCH, mat, temp, life, flags, stamp, part, mach, digp, noiseB, airS, netId, isPow, occ, surfY, dirtY, graniteY, basaltY, magmaY, roofY, AMB, worldSeed, surfBase, underD, shallowD, lapse, BW, BH, NB, blockP, blockV, ents, bgm, flyers, ghostBlocks, ghostMolds, awake, hot, hotLvl, tick, tickStamp, machines, molds, nets, pcells, powerDirty, beltL, beltR, tubeLists, brokenMachines, ghostMachines, ghostBlocked, EV, bot, bag, bagTotal, player, seen, ledger, stats
|
||||
- variables: W, H, N, CW, CH, NCH, mat, temp, life, flags, stamp, part, mach, digp, noiseB, airS, netId, isPow, occ, surfY, dirtY, graniteY, basaltY, magmaY, roofY, AMB, worldSeed, surfBase, underD, shallowD, lapse, BW, BH, NB, blockP, blockV, ents, bgm, flyers, ghostBlocks, ghostMolds, awake, hot, hotLvl, powderArea, tick, tickStamp, machines, molds, nets, pcells, powerDirty, beltL, beltR, tubeLists, brokenMachines, ghostMachines, ghostBlocked, EV, bot, bag, bagTotal, player, seen, ledger, stats
|
||||
|
||||
### src/sim/fog.js (52 lines)
|
||||
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 (189 lines)
|
||||
### src/sim/cells.js (206 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, LSTEP, LFILM
|
||||
- functions: setCell, swapCells, move, enter, powder, passable, liquid, gas, wakeBotPowder, simMove
|
||||
- variables: SORTP, SORTP_FUEL, LSTEP, LFILM
|
||||
|
||||
### src/sim/heat.js (246 lines)
|
||||
Heat: conduction, melting and freezing, reactions, fire and air, steel.
|
||||
@@ -325,7 +325,7 @@ 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
|
||||
|
||||
### src/sim/tick.js (26 lines)
|
||||
### src/sim/tick.js (27 lines)
|
||||
simTick: one simulation step, in order.
|
||||
- functions: simTick
|
||||
|
||||
|
||||
@@ -4,6 +4,18 @@ 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: piles near the bot sort quickly (Claude Code, Codex)
|
||||
|
||||
- Owner: "a pile should sort when the player is nearby. the sorting shouldnt take long anyway."
|
||||
- `src/sim/cells.js`: `SORTP` 0.003 -> 0.06, `SORTP_FUEL` 0.003 for sinking through burning fuel
|
||||
(at 0.06 dirt sank through a buried burning wood pile and `t_world`'s charcoal check failed);
|
||||
`wakeBotPowder()` every 8 ticks from `simTick` wakes areas with loose grains (`powderArea`
|
||||
hint, kept by `simMove`) within 100 grains of the bot. `worldSteps` settles at 0.003: seeds
|
||||
unchanged.
|
||||
- Cost on a Medium dig site: 0.108 -> 0.134 ms/tick. `t_physics` sorting checks: near the bot ore
|
||||
sorts in 432 ticks then sleeps; far away it stays; sand on dirt never sorts.
|
||||
- Tests: `run_all.py --browser` ALL PASSED.
|
||||
|
||||
## 2026-10-24: t21 phase 2: physics test pass for sand, molten metal and gases (Claude Code, Codex)
|
||||
|
||||
- `test/t_physics.js` (41 checks): heaps, digging under a heap, ore sorting through ash, sand
|
||||
|
||||
Reference in New Issue
Block a user