random lobes

This commit is contained in:
Tangent Wantwight 2024-01-13 00:19:34 -05:00
parent 46827f3428
commit fe121a40ab
1 changed files with 17 additions and 7 deletions

View File

@ -113,6 +113,14 @@ export function IslandApplet() {
const len = islands.data.length;
const basePos = len >> 1;
const lobePos1 = islands.xy(
(WIDTH >> 1) + (islands.rng() % 48) - 24,
(HEIGHT >> 1) + (islands.rng() % 48) - 24
);
const lobePos2 = islands.xy(
(WIDTH >> 1) + (islands.rng() % 48) - 24,
(HEIGHT >> 1) + (islands.rng() % 48) - 24
);
const width = islands.width;
let timerId: number;
@ -164,25 +172,27 @@ export function IslandApplet() {
}
function tick() {
const lowlandTiles = islands.floodSearch(basePos + 12, (tile) => tile > 0);
const lowlandTiles1 = islands.floodSearch(lobePos1, (tile) => tile > 0);
const lowlandTiles2 = islands.floodSearch(lobePos2, (tile) => tile > 0);
// grow shore
const shoreTiles = lowlandTiles.filter((pos) => islands.data[pos] == 0);
dropWithin(shoreTiles);
dropWithin(shoreTiles);
const shoreTiles1 = lowlandTiles1.filter((pos) => islands.data[pos] == 0);
dropWithin(shoreTiles1);
const shoreTiles2 = lowlandTiles2.filter((pos) => islands.data[pos] == 0);
dropWithin(shoreTiles2);
// seed beach
const beachTiles = lowlandTiles.filter((pos) => islands.data[pos] == 1);
const beachTiles = lowlandTiles1.filter((pos) => islands.data[pos] == 1);
dropWithin(beachTiles);
// expand forest
const forestTiles = lowlandTiles.filter((pos) => islands.data[pos] == 2);
const forestTiles = lowlandTiles1.filter((pos) => islands.data[pos] == 2);
dropWithin(forestTiles);
dropWithin(forestTiles);
dropWithin(forestTiles);
// form mountain
const mountainTiles = islands.floodSearch(basePos - 12, (tile) => tile > 4);
const mountainTiles = islands.floodSearch(basePos, (tile) => tile > 4);
dropWithin(mountainTiles);
// const erodePos = islandTiles[islands.rng() % islandTiles.length];