Dev console refuses buildable piece materials; loose piece grains cleared on load (t97)

This commit is contained in:
2026-10-29 18:08:38 -04:00
parent 0483fb8da4
commit 3b427aeecc
9 changed files with 119 additions and 9 deletions
+6
View File
@@ -604,3 +604,9 @@ above, including:
the old feel. Restore the original advancing-front nudge: 30% times ray energy per
half-grain sample, straight back toward the bot, then down or up if blocked. Scale that
chance with sampling distance; do not keep shaking the travelled path.
- **Build pieces never go in the bag (t97, 2026-10-29).** The owner wants pieces such as saws
built from the menu: giving them as grains let the nozzle leave permanent, uncollectable
cells. Exclude dedicated construction materials from give, discovery and blowing. On load,
clear loose construction grains and their bag/nozzle inventory; preserve owned blocks,
slope seals and machines. Ordinary wall ingredients still become rubble, scrap or bars.
+4 -4
View File
@@ -317,7 +317,7 @@ Molds: cavities for castings; ingot troughs empty themselves below. Removal retu
- functions: moldCellsAt, canPlaceMold, newMoldRecord, addMold, castMix, cavityState, troughState, clearCavity, moldPlugCells, rakeAbove, furnaceJunkHint, unplugMold, ejectIngot, checkMolds, moldAt, tally, collectMold, removeMold
- variables: DROSS, grains, barWord
### src/sim/items.js (318 lines)
### src/sim/items.js (319 lines)
Bars and other loose objects (ents), and the bag: adding, taking, costs and refunds.
- functions: entSolidCell, entSupportCount, entFreeAt, entMark, spawnBar, removeEnt, entScrewAt, entScrewFree, entScrewMove, entScrewLane, entScrewEdge, entScrewEnter, entScrewTick, entDiagonalScrewTick, entBeltScrewEnter, entSlopeBeltTick, entTick, entsInCircle, bagAdd, bagTake, giveOrDrop, refundAt, canAfford, payCost, fmtMoney, costText, needText
- variables: BAR_W, BAR_H, entCurM, droppedLast
@@ -337,7 +337,7 @@ Trees (background layer), acorns, saplings, and waking freezing water.
- functions: cutTree, treeHeld, findTreeBases, treeSupportTick, woodRoom, treeFall, coldTick, plantTick, setTreeCell, saplingTick, igniteTree
- variables: treeBases, saplings, treeDraw
### src/sim/vacuum.js (199 lines)
### src/sim/vacuum.js (200 lines)
The vacuum, blowing grains out, grains in flight (flyers), and the flame tool. Material the vacuum would start on at the cursor: a bar, else the nearest loose grain.
- functions: vacuumTargetAt, toolVacuum, nozzle, toolBlow, flyOpen, depositNear, bagTemp, landFlyer, flyTick, toolIgnite
- variables: blowRR, FLY_G, FLY_Q
@@ -387,12 +387,12 @@ World generation helpers: noise and removal of tiny hard rock specks.
World generation: staged terrain, ore, caves and placement, with synchronous and async entry points.
- functions: generateWorld, generateWorldAsync
### src/sim/devconsole.js (185 lines)
### src/sim/devconsole.js (193 lines)
Dev commands are pure simulation operations; the browser owns the panel and confirmation.
- functions: resetDevConsole, enableDevConsole, devError, devName, devGiveable, devMaterialList, devDistance, devSuggestions, devHistory, devRemember, devRecall, devComplete, devMaterial, devCommand
- variables: devWorld, devLog, devFree, devSpeed, devPaused, devSteps, DEV_COMMANDS, DEV_MATERIALS
### src/sim/save.js (185 lines)
### src/sim/save.js (216 lines)
Saving and loading a world (serializeWorld / deserializeWorld) and old-save migration.
- functions: serializeWorld, deserializeWorld, startLoadWake, wakeLoadArea, wakeLoadNearBot, loadWakeTick
- variables: SAVE_VERSION, TOFF
+12
View File
@@ -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-29: t97 keep construction grains out of the bag (Codex)
- PARTMAT now blocks give/discovery, inventory/refunds and single/mixed blowing. Load clears
unowned piece grains and contaminated bag/nozzle entries, preserving construction and seals.
- Files: src/sim/{devconsole,items,vacuum,save}.js, test/t_dev_console.{js,py},
docs/{DESIGN,PROJECT_MAP}.md, tasks/t97_give_no_buildables.md and this log.
- Tests first: 9 new regressions failed; all 37 headless suites passed (14 new checks;
/tmp/t97-headless-final.log). Only browser suite: test/t_dev_console.py, 31 checks passed
(/tmp/t97-browser-final.log); inspected shots/t97-console.png (pixel). Sandboxed real/soft
startup timed out (soft reported WebGPU unavailable); real GPU outside sandbox passed after isolating console output in
the existing colour test. Worldgen/save format unchanged; owner review pending. No commit.
## 2026-10-29: t80 validate imported world arrays (Codex)
- Validate positive integer dimensions up to the Huge option (6144 x 2048), cell/block/fog