Downhill screens no longer shake on screen (t106)

This commit is contained in:
2026-10-30 03:51:41 -04:00
parent 1740f598eb
commit f6bd968473
7 changed files with 38 additions and 23 deletions
+7 -4
View File
@@ -113,10 +113,13 @@ for (const grade of [-1,1]) {
flatWorld(run,160,120,112);
run('placeBlock(BP_FILTER_DOWN,128,12,12,true);tick=0;prepareSlopeBelts(0,0,W,H);var idleJoins=slopeBeltJoins[12*BW+12];tick=2;prepareSlopeBelts(0,0,W,H);');
check('empty screen has a stable frame',run('slopeBeltJoins[12*BW+12]===idleJoins'));
run('setCell(47*W+48,SAND,20,0);prepareSlopeBelts(0,0,W,H);');
check('loaded screen shakes the frame with the simulation tick',run('(slopeBeltJoins[12*BW+12]&64)!==0'));
run('tick=4;prepareSlopeBelts(0,0,W,H);');
check('loaded frame returns on the next shake beat',run('(slopeBeltJoins[12*BW+12]&64)===0'));
check('loaded screen keeps the empty frame at ticks 2 and 4',run(`(() => {
for (const t of [2,4]) {
tick=t;setCell(47*W+48,SAND,20,0);prepareSlopeBelts(0,0,W,H);
if (slopeBeltJoins[12*BW+12]!==idleJoins) return false;
}
return true;
})()`));
flatWorld(run,160,120,112);
run('for(let k=0;k<6;k++)placeBlock(BP_BELT_UP,1,12+k,20-k,true);rebuildPower();slopeCleatsTick(false);');
check('wall reaches the belt and cleat height, and clips its free ends',run(`(()=>{