Piles near the bot sort, and 20 times faster; burning fuel keeps the slow pace (t21)
- SORTP 0.003 -> 0.06: ore sinks through 8 rows of ash in about 7 s near the bot. - wakeBotPowder(): every 8 ticks, areas with loose grains within 100 grains of the bot get a sorting chance; far away, resting piles still sleep. - Sinking through burning fuel stays at 0.003, so buried burning piles still char and furnace beds behave as tuned. World generation settles at the old rate: seeds are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+3
-3
@@ -303,9 +303,9 @@ function* worldSteps(seedIn, w, h) {
|
||||
}
|
||||
fillNoise();
|
||||
yield [0.75, 'Settling loose ground'];
|
||||
// settle loose material, with water at the speed it had when the seeds were made
|
||||
// settle loose material at the water and sorting speeds the seeds were made with
|
||||
awake.fill(3);
|
||||
const lstep = LSTEP, lfilm = LFILM; LSTEP = LFILM = 1;
|
||||
const lstep = LSTEP, lfilm = LFILM, sortp = SORTP; LSTEP = LFILM = 1; SORTP = 0.003;
|
||||
for (let k = 0; k < 260; k++) {
|
||||
tick++; tickStamp = (tickStamp % 255) + 1;
|
||||
simMove();
|
||||
@@ -313,7 +313,7 @@ function* worldSteps(seedIn, w, h) {
|
||||
if (!any) break;
|
||||
if ((k & 31) === 0) yield [0.75 + 0.24 * k / 260, 'Settling loose ground'];
|
||||
}
|
||||
LSTEP = lstep; LFILM = lfilm;
|
||||
LSTEP = lstep; LFILM = lfilm; SORTP = sortp;
|
||||
yield [0.99, 'Finishing'];
|
||||
// re-ambient after settling, then start clean
|
||||
for (let i = 0; i < N; i++) { const m = mat[i]; if (m !== MAGMA) temp[i] = AMB[(i / w) | 0]; life[i] = PH[m] === PH_LIQUID && FRZ[m] ? 255 : 0; }
|
||||
|
||||
Reference in New Issue
Block a user