Belts built after a tick reset join the network; pin tick in golden renders

A world started after a long session kept the old nextPowerBuild, so new
belts were never added until a reload. Treat a wait longer than 6 ticks as
stale. The golden test pins tick now that t45 animates belts from it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Cj2RPXdPykKMEz5BXXczsj
This commit is contained in:
2026-10-29 23:50:09 -04:00
co-authored by Claude Opus 5.5
parent af411d5b21
commit e605953661
4 changed files with 22 additions and 2 deletions
+6
View File
@@ -157,4 +157,10 @@ check('a save holding solid rock loads it as rubble with the same total', run(`(
deserializeWorld(s.meta, s.buffers);
return bag[BASALT] === 0 && bag[RBAS] === 1000 && bag[CLAY] === 0 && bag[LCLAY] === 200 && bag[MSLAG] === 7 && bagTotal === 1207;
})()`));
// A belt built in a new world joins the network even after a long earlier session (owner bug,
// 2026-10-29: new belts stood still until the world was saved and loaded again).
flatWorld(run, 256, 224, 208);
run('RS = 7; nextPowerBuild = 500000; weather.next = 1e15; for (let bx = 12; bx < 40; bx++) placeBlock(BP_BELT, 1, bx, 32, true); setCell(127 * W + 60, SAND, 20, 0);');
ticks(run, 60);
check('a belt built after a tick reset carries its grains', run('mat[127 * W + 60] !== SAND && Array.from({ length: 100 }, (_, k) => mat[127 * W + 61 + k]).includes(SAND)'));
done();
+2 -1
View File
@@ -39,7 +39,8 @@ with launch(viewport={'width': 640, 'height': 480}) as (_, pg, url):
SET.look=look;SET.zoom=zoom;SET.lighting='full';SET.lightEvery=1;SET.glow='low';
SM.t0=0; SM.surf=-1;
performance.now=()=>5000;resizeRender();bot.x=CAM[0]-bot.w/2;bot.y=CAM[1]-bot.h/2;
snapCamera();R.frame=1000;drawWorld();
// belts animate from the tick: pixel look by tick (was R.frame), smooth by tick/60 s (was the 5 s clock)
snapCamera();R.frame=1000;tick=look==='smooth'?300:1000;drawWorld();
}""",[look,zoom])
raw=pg.evaluate("""() => {
const c=document.createElement('canvas');c.width=384;c.height=288;