Screw tubes carry bars, one whole bar at a time
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -193,6 +193,9 @@ above, including:
|
||||
block-wide lift fed by a belt from the side now carries about 90% of what the belt brings
|
||||
(before, only the edge lane filled: the owner saw one line on either side). Belts keep their
|
||||
speed.
|
||||
- **Screw tubes carry bars**, one whole bar at a time, in line with the grains: a belt pushes a
|
||||
bar into a tube's side, it rides through corners and leaves the mouth. The owner asked how bars
|
||||
should be moved and chose tubes over a separate bar lift.
|
||||
|
||||
## Ideas not built yet
|
||||
|
||||
|
||||
+5
-4
@@ -248,7 +248,7 @@ Pipes, pumps and outlets: each joined line holds one liquid as a count, not as g
|
||||
Per-tick machine work: steam engines, fans, belts, filters, screw tubes (machinesTick).
|
||||
- functions: engineIntake, fanBlow, machinesTick
|
||||
|
||||
### src/sim/conveyors.js (127 lines)
|
||||
### src/sim/conveyors.js (128 lines)
|
||||
How belts, filters and screw tubes move what is on or in them. What rests on a belt or filter rides along: the whole stack standing on the carrying surface steps one cell toward d together (belts run front of the line first, so the way ahead is clear). If a powder grain is blocked, the load above it stands still and the belt slips underneath. A filter's own material drops through it instead, unless it is already full.
|
||||
- functions: carryColumn, beltDrain, launchGrain, rebuildFilters, filterCarry, setFilter, filterRun, roomFor, tubeSpread, tubeIntake
|
||||
- variables: CARRY_DEPTH, filterR, filterL, filtersDirty
|
||||
@@ -262,9 +262,9 @@ 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 (134 lines)
|
||||
### src/sim/items.js (200 lines)
|
||||
Bars and other loose objects (ents), and the bag: adding, taking, costs and refunds.
|
||||
- functions: entSolidCell, entFreeAt, entMark, spawnBar, removeEnt, entTick, entsInCircle, bagAdd, bagTake, giveOrDrop, refundAt, canAfford, payCost, fmtMoney, costText, needText
|
||||
- functions: entSolidCell, entFreeAt, entMark, spawnBar, removeEnt, entTubeAt, entTubeFree, entTubeMove, entTubeEnter, entTubeTick, entTick, entsInCircle, bagAdd, bagTake, giveOrDrop, refundAt, canAfford, payCost, fmtMoney, costText, needText
|
||||
- variables: BAR_W, BAR_H, entCurM, droppedLast
|
||||
|
||||
### src/sim/tools.js (52 lines)
|
||||
@@ -383,7 +383,7 @@ The settings screen.
|
||||
- functions: openSettings, renderSettings, applySettings, toggleFullscreen, confirmWipe
|
||||
- variables: SET_TABS, setTab
|
||||
|
||||
### src/ui/notebook.js (201 lines)
|
||||
### src/ui/notebook.js (202 lines)
|
||||
The notebook (N): milestones, market, wallet, blueprints, controls.
|
||||
- functions: openNotebook, renderNotebook, fmtClock, orderName, orderLeft, renderMarketTab, fmtPrice, itemsText, renderWallet, renderBlueprintTab, copyCode, controlsHtml
|
||||
- variables: nbTab, MARKET_GROUPS
|
||||
@@ -467,6 +467,7 @@ The frame loop and boot.
|
||||
- `tools/experiments/smelter.js`: Smelter design experiments, built with the same block pieces a player uses. Layout (block rows, 4x4 grains each), on flat ground at row 25: roof with a vent ........ row g-CH-1 chamber, CH blocks tall .. charge of coal + copper ore inside grate floor ............. row g = 23 (liquids pass, powders do not) ingot mold .............. row 24, sitting on the ground side walls run from the roof down past the mold. Usage: node t_smelter.js [key=value ...]
|
||||
- `tools/experiments/starter.js`: Plays a starter design the way a player would: paste the blueprint, let the bot build it from the bag, blow an even ore/coal mix inside, light it, wait, knock out the castings. Usage: node tools/experiments/starter.js [design id] [ore] [coal]
|
||||
- `tools/experiments/worldgen.js`: World generation report: time to generate, how many cells of each material, where the bot starts, and what idle ticks and ticks after digging cost.
|
||||
- `tools/scenes/bar-lift.js`: A mold drops copper bars onto a belt, through a screw lift and onto the upper belt.
|
||||
- `tools/scenes/belt-heap.js`: A belt feeding an upward screw: sand underneath a deep heap of copper ore. Run clear-sky.js first, e.g. python3 tools/shot.py /tmp/belt-heap.png --setup tools/scenes/clear-sky.js --js "$(cat tools/scenes/belt-heap.js)" --ticks 240 --zoom 7
|
||||
- `tools/scenes/clear-sky.js`: A clear work area left of the bot's starting point (the trade dock is to its right): open sky 160 grains wide and 40 tall, over a flat stone floor. Money and a bag of building stuff to build with. Sets FLOOR (the first row of the floor), BX, BY (the leftmost block of the area that stands on the floor) and CAM (the middle of the area).
|
||||
- `tools/scenes/mold-labels.js`: Run after clear-sky.js: filling, blocked, set, and hot machinery in one view.
|
||||
|
||||
@@ -4,6 +4,29 @@ 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: screw tubes carry bars (Claude Code, with Codex)
|
||||
|
||||
Note: "how do you transport bars? belts work but tubes do not, should they?" The owner chose
|
||||
tubes over a separate bar lift.
|
||||
|
||||
- `src/sim/items.js`: a bar whose eight cells are all tube cells is in the tube (derived from
|
||||
its position, so saves need nothing new). On the tube beat it steps along the tube, snaps
|
||||
into the next block's lane at corners, and leaves a mouth with a launch like grains. A bar
|
||||
pushed by a belt into a tube's side or back, falling into a down tube or sitting on an up
|
||||
tube's intake enters when the aligned cells are free. Grains and bars wait for each other.
|
||||
Gas and liquid don't block a bar (Claude added this after review: smoke near furnaces stalled
|
||||
bars in Codex's version).
|
||||
- Text: `pieces.js` tube description, `notebook.js`, `docs/DESIGN.md`, `docs/PROJECT_MAP.md`.
|
||||
- Tests: `t_conveyors` (55 checks): belt into a lift and out the top, right tube, up-to-right
|
||||
and right-to-down corners, blocked mouth waits without overlap, grains and a bar share a
|
||||
lift with sand conserved, save mid-tube, smoke and steam in the tube, melting in a tube,
|
||||
bars still ride and stop on belts and rest on top of sideways tubes. All 11 headless suites
|
||||
and `play.py` (131) pass; `t_smooth.py`'s half-resolution check failed on the slow fallback
|
||||
(known flaky).
|
||||
- Shots: `tools/scenes/bar-lift.js`, `shots/bar-lift-{300,900}.png`: mold, belt, lift, corner,
|
||||
belt; the bars arrive at the top.
|
||||
- Open: nothing.
|
||||
|
||||
## 2026-10-23: screw tubes use all their lanes (Claude Code, with Codex)
|
||||
|
||||
Note: "maybe the belts can move faster/carry more than the tubes… the tubes only carry one line of
|
||||
|
||||
Reference in New Issue
Block a user