hmm
This commit is contained in:
parent
112e6bf86b
commit
f2d0306d96
13 changed files with 1434 additions and 516 deletions
19
worldMap.js
19
worldMap.js
|
|
@ -39,6 +39,24 @@ function makeWorldField(name, source, worldWidth, worldHeight, originX, originY)
|
|||
return out;
|
||||
}
|
||||
|
||||
|
||||
function sanitizeInitialWorldFields(fields, width, height) {
|
||||
const sea = fields.sea;
|
||||
if (!sea) return;
|
||||
const adminFields = ["adminId", "municipalityId", "prefectureRegionId"];
|
||||
for (let i = 0; i < width * height; i++) {
|
||||
const isSea = Boolean(sea[i]);
|
||||
if (fields.landMask) fields.landMask[i] = isSea ? 0 : (fields.prefectureMask?.[i] ? 1 : fields.landMask[i]);
|
||||
if (fields.humanRegionMask && isSea) fields.humanRegionMask[i] = 0;
|
||||
if (isSea) {
|
||||
for (const key of adminFields) if (fields[key]) fields[key][i] = -1;
|
||||
if (fields.landuse) fields.landuse[i] = 0;
|
||||
} else {
|
||||
if (fields.municipalityId && fields.adminId && fields.municipalityId[i] < 0 && fields.adminId[i] >= 0) fields.municipalityId[i] = fields.adminId[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function createWorldMap(initialMap, options = {}) {
|
||||
const paddingX = Number.isFinite(options.paddingX) ? Math.max(0, Math.floor(options.paddingX)) : DEFAULT_WORLD_PADDING_X;
|
||||
const paddingY = Number.isFinite(options.paddingY) ? Math.max(0, Math.floor(options.paddingY)) : DEFAULT_WORLD_PADDING_Y;
|
||||
|
|
@ -60,6 +78,7 @@ export function createWorldMap(initialMap, options = {}) {
|
|||
fields.elevation = new Float32Array(worldWidth * worldHeight);
|
||||
fields.elevation.fill(0.08);
|
||||
}
|
||||
sanitizeInitialWorldFields(fields, worldWidth, worldHeight);
|
||||
|
||||
return {
|
||||
seed: initialMap?.seed ?? 0,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue