Ingot molds drop bars out of the bottom on their own
Bars no longer get thrown up into the furnace, and F is no longer needed to collect them. Blocked bars wait in the trough; the short stub stays for the next firing; F is optional upkeep (clean, chip slag, rake). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+8
-2
@@ -46,7 +46,7 @@ decides something new, add it under "Decisions" with the date.
|
||||
2. Vacuum up what you want (tick materials to take only those), and blow it out where you need it.
|
||||
3. Build a furnace from wall blocks, with a grate floor over a mold. Charge it with ore and coal,
|
||||
light it, and let the molten metal run into the mold.
|
||||
4. Knock out bars and sell them at the trade dock, or fill buyers' orders, which pay more.
|
||||
4. Bars drop out of the bottom of the mold; collect them and sell them at the trade dock, or fill buyers' orders, which pay more.
|
||||
5. Better bits (copper, then iron, then steel) open harder rock: granite, then basalt. Deeper
|
||||
ores give tin, zinc, silver and gold, and alloys (bronze, brass) pay more.
|
||||
6. Automate with belts, screw tubes, filters, fans, pipes and machines. Pay off the claim.
|
||||
@@ -77,7 +77,10 @@ Details and numbers live in the code and in `docs/systems/`.
|
||||
- Blocks: walls of any of several materials, belts, screw tubes, filters, grates, gates,
|
||||
pipes, pumps, outlets.
|
||||
- Machines: fan, Refiner, Stone cutter, Silo.
|
||||
- Molds: ingot, bit, tank.
|
||||
- Molds: ingot, bit, tank. Ingot bars drop out of the bottom onto whatever is under the mold;
|
||||
leave one open block below and a belt under that carries them off. F is optional upkeep: it
|
||||
cleans the trough, chips off slag and rakes the furnace grate. Short stubs stay for the next
|
||||
firing.
|
||||
- Build actions: drag for lines, Shift-drag for rectangles, Ctrl to replace, hold C / X and
|
||||
drag to copy / cut, V to paste, Ctrl+Z to undo, middle mouse to pick,
|
||||
Shift+Q/E to switch build tabs.
|
||||
@@ -132,6 +135,9 @@ above, including:
|
||||
does not replace it.
|
||||
|
||||
**2026-10-23:**
|
||||
- **Ingot molds drop bars below automatically.** The owner reported bars being thrown into the
|
||||
furnace above and wants belts underneath to carry them off. Blocked bars wait in the trough;
|
||||
short stubs stay for the next firing. F stays available for cleaning and raking.
|
||||
- **Screw tubes carry no more than belts:** they move every other tick. For more throughput,
|
||||
build more lines.
|
||||
- **A heap on a belt moves as one**, up to 96 grains deep, not just its bottom layer. The owner
|
||||
|
||||
+6
-6
@@ -199,7 +199,7 @@ Material ids, the material table (def), per-material property arrays, cell flags
|
||||
- functions: def, metalFamily
|
||||
- variables: EMPTY, GRASS, DIRT, LDIRT, SAND, GRAVEL, CLAY, STONE, GRANITE, BASALT, NMAT, MD, PH, DENS, KC, ICAP, CASTMETAL, METAL_TIER, SOLIDMETAL, F_NAT, F_CAST, F_BURN, P_NONE, P_TU, P_TD, P_TL, P_TR, P_GRATE, P_GOPEN, P_WHEEL, P_INTAKE, P_FILTER, P_PIPE, TDX, TDY, BIT_TIERS, TANK_TIERS, REACH
|
||||
|
||||
### src/sim/pieces.js (140 lines)
|
||||
### src/sim/pieces.js (139 lines)
|
||||
Everything the player can build (PIECES): blocks, machines and molds, with costs and descriptions; filter settings; wall materials and their cost.
|
||||
- functions: isPipeCode, filterable, cleanFilterCfg, filterRec, filterPassAt, filterInfo, sameFilter, wallCost
|
||||
- variables: BS, BP_WALL, BP_BELT, BP_TUBE, BP_SHAFT, BP_GRATE, BP_GATE, BP_FILTER, BP_PIPE, BP_PUMP, BP_OUTLET, filterCfg, WALL_OF, WALL_LIST, BAR_OF, GRAINS_PER_BAR, POWER_FREE, CASH, PIECES, PIECE_BY_ID, PIECE_BY_CODE, BELT_POWER, TUBE_POWER, FAN_POWER, WHEEL_K, ENGINE_K, MOLDS
|
||||
@@ -257,9 +257,9 @@ How belts, filters and screw tubes move what is on or in them. What rests on a b
|
||||
Building blocks: placing, integrity, removing, lines and rectangles of blocks.
|
||||
- functions: blockOf, blockCellList, pieceCost, canPlaceBlock, placeBlock, blockIntegrity, removeBlock, blockLine, blockRect, blockInReach, blockIs, placeBlocks
|
||||
|
||||
### src/sim/molds.js (284 lines)
|
||||
Molds: cavities that fill with molten metal (or glass) and are knocked out as bars.
|
||||
- functions: moldCellsAt, canPlaceMold, newMoldRecord, addMold, castMix, cavityState, troughState, clearCavity, moldPlugCells, rakeAbove, furnaceJunkHint, unplugMold, checkMolds, moldAt, knockNote, tally, collectMold, removeMold
|
||||
### src/sim/molds.js (297 lines)
|
||||
Molds: cavities for castings; ingot troughs drop bars out of the bottom.
|
||||
- functions: moldCellsAt, canPlaceMold, newMoldRecord, addMold, castMix, cavityState, troughState, clearCavity, moldPlugCells, rakeAbove, furnaceJunkHint, unplugMold, ejectIngot, checkMolds, moldAt, knockNote, tally, collectMold, removeMold
|
||||
- variables: DROSS, grains
|
||||
|
||||
### src/sim/items.js (134 lines)
|
||||
@@ -426,7 +426,7 @@ Previews drawn under the cursor: build ghosts, drill aim and pulses, selections,
|
||||
- functions: blockRectPx, drawGrid, previewColor, crackSeg, drawCracks, pulseRGB, fanPoints, drawDrillPulses, drawDrillAim, drawPreviews, drawTag, drawSelection, drawPastePreview
|
||||
- variables: CRACK_N, CRACK_LV, SEL_COL
|
||||
|
||||
### src/ui/events.js (44 lines)
|
||||
### src/ui/events.js (50 lines)
|
||||
Events from the simulation (emit) turned into sounds, toasts and cards.
|
||||
- functions: drainEvents
|
||||
|
||||
@@ -447,7 +447,7 @@ The frame loop and boot.
|
||||
- `test/t_drill.js`: The resonance drill: pulses from the bot shake rock until it shatters. Widths trade area for speed, tuning shatters only one material and drains it out of the wall, built blocks are left alone, and the drill says why when nothing breaks.
|
||||
- `test/t_econ.js`: Economy: the dock (instant sale), orders, prices, the market dip, money for machines, alloys.
|
||||
- `test/t_furnace_repeat.js`: The starter furnaces keep working when fired again and again without cleaning, however the charge goes in: mixed, ore first with coal on top, or blown in through the vent. Each case plays furnace_play.js, which builds the design and fires it like a player.
|
||||
- `test/t_molds.js`: Molds and furnaces stay usable: knock-outs leave the mold clean, plugs over the mold are cleared, spoiled castings can be knocked out, grains never drop through a grate by teleporting, and slag lets the fire breathe.
|
||||
- `test/t_molds.js`: Molds and furnaces stay usable: ingots drop below and keep their stubs, plugs over molds are cleared, spoiled castings can be knocked out, grains never drop through a grate by teleporting, and slag lets the fire breathe.
|
||||
- `test/t_pipes.js`: Pipes, pumps and outlets move liquids; the Refiner grinds waste rock for trace ore.
|
||||
- `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 stone cutter, the silo and builders' orders.
|
||||
|
||||
@@ -4,6 +4,27 @@ 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-23: ingots drop out of the bottom of the mold (Claude Code, with Codex)
|
||||
|
||||
Note: "copper bars go into the furnace. also they shouldnt require the player to press F…".
|
||||
The owner confirmed the first part was a bug: the knock-out threw bars up into the furnace.
|
||||
|
||||
- `src/sim/molds.js`: `ejectIngot` runs from `checkMolds` (every 15 ticks). Bars spawn directly
|
||||
under the mold, only where `entFreeAt` says there is room; the rest wait in the trough. Metal
|
||||
is taken from the top so the short stub stays on the floor. `ingot_drop` and `ingot_blocked`
|
||||
events (blocked is said once per spell via `mo.blockedSaid`, not saved). F on a ready ingot
|
||||
never launches bars upward; F on an empty, short or spoiled mold still cleans and rakes.
|
||||
- `src/ui/events.js`: first drop gets a card, later drops a toast; blocked gets a toast. Ingots
|
||||
no longer emit `cast_ready`.
|
||||
- Text: `pieces.js`, `progress.js`, `notebook.js`, `info.js`, `docs/DESIGN.md` (with the
|
||||
decision), `docs/systems/stone-and-liquids.md`, `docs/PROJECT_MAP.md`.
|
||||
- Tests: `t_molds` (38 checks: downward drops, stub kept, top-up, blocked and warned once,
|
||||
partial drops, full entity pool, slag), `t_basics`, `t_stone`, `furnace_play.js` and
|
||||
`play.py` section 6 changed to the new behaviour. All 11 headless suites, `play.py` (109) and
|
||||
`t_smooth.py` (8) pass. A shot of a mold with a belt one block below shows the bars riding off.
|
||||
- Open: a belt touching the mold's underside counts as blocked; bars need one open block. The
|
||||
owner may want a belt directly under the mold to work.
|
||||
|
||||
## 2026-10-23: Shift+Q/E build tabs, G pick key removed (Claude Code, with Codex)
|
||||
|
||||
Notes: "add shift + q/e to move tabs" and "having the "g pick" there is confusing".
|
||||
|
||||
@@ -70,7 +70,7 @@ through another refiner.
|
||||
## Uses for stone and sand
|
||||
- **Glass bricks.**
|
||||
- Sand melts to molten glass in a fan furnace (peak about 2000°C measured).
|
||||
- Cast in an Ingot mold, it knocks out as glass bricks, worth $14 each.
|
||||
- Cast in an Ingot mold, it drops out of the bottom as glass bricks, worth $14 each.
|
||||
- Glass bricks build glass wall blocks. Glass is too brittle for a bit mold.
|
||||
- **Stone cutter** (machine, 2×2, $90).
|
||||
- A saw under a hopper. Every 8 grains of stone rubble become one stone brick, which drops out
|
||||
|
||||
Reference in New Issue
Block a user