refactor: river generation start

This commit is contained in:
max 2022-07-19 02:01:56 +03:00
parent 4833a8ab35
commit 4e65616dbc
11 changed files with 285 additions and 265 deletions

View file

@ -3,7 +3,7 @@ import * as d3 from "d3";
import {ERROR, INFO, WARN} from "config/logging";
import {closeDialogs} from "dialogs/utils";
import {openDialog} from "dialogs";
import {initLayers, restoreLayers} from "layers";
import {initLayers, renderLayer, restoreLayers} from "layers";
// @ts-expect-error js module
import {drawCoastline} from "layers/renderers/drawCoastline";
// @ts-expect-error js module
@ -16,7 +16,6 @@ import {applyMapSize, randomizeOptions} from "modules/ui/options";
import {applyStyleOnLoad} from "modules/ui/stylePresets";
// @ts-expect-error js module
import {addZones} from "modules/zones";
// @ts-expect-error js module
import {aleaPRNG} from "scripts/aleaPRNG";
import {hideLoading, showLoading} from "scripts/loading";
import {clearMainTip, tip} from "scripts/tooltips";
@ -63,6 +62,11 @@ async function generate(options?: IGenerationOptions) {
grid = newGrid;
pack = newPack;
// temp rendering for debug
renderLayer("coastline", pack.vertices, pack.features);
renderLayer("heightmap");
renderLayer("rivers", pack);
WARN && console.warn(`TOTAL: ${rn((performance.now() - timeStart) / 1000, 2)}s`);
showStatistics();
INFO && console.groupEnd();

View file

@ -1,6 +1,5 @@
import * as d3 from "d3";
import {renderLayer} from "layers";
// @ts-expect-error js module
import {drawCoastline} from "layers/renderers/drawCoastline";
import {markupPackFeatures} from "modules/markup";
@ -23,49 +22,54 @@ export function createPack(grid: IGrid): IPack {
const {vertices, cells} = repackGrid(grid);
const markup = markupPackFeatures(grid, vertices, pick(cells, "v", "c", "b", "p", "h"));
const {features, featureIds, distanceField, haven, harbor} = markup;
renderLayer("coastline", vertices, markup.features);
const riverCells = {...cells, f: featureIds, t: distanceField, haven};
Rivers.generate(grid, {cells: riverCells, features}, true);
// drawCoastline({vertices, cells}); // split into vertices definition and rendering
// Rivers.generate(newPack, grid);
// renderLayer("rivers", newPack);
// Lakes.defineGroup(newPack);
// Biomes.define(newPack, grid);
// const rankCellsData = pick(newPack.cells, "i", "f", "fl", "conf", "r", "h", "area", "biome", "haven", "harbor");
// rankCells(newPack.features!, rankCellsData);
Cultures.generate();
Cultures.expand();
BurgsAndStates.generate();
Religions.generate();
BurgsAndStates.defineStateForms();
BurgsAndStates.generateProvinces();
BurgsAndStates.defineBurgFeatures();
// Cultures.generate();
// Cultures.expand();
// BurgsAndStates.generate();
// Religions.generate();
// BurgsAndStates.defineStateForms();
// BurgsAndStates.generateProvinces();
// BurgsAndStates.defineBurgFeatures();
renderLayer("states");
renderLayer("borders");
BurgsAndStates.drawStateLabels();
// renderLayer("states");
// renderLayer("borders");
// BurgsAndStates.drawStateLabels();
Rivers.specify();
Lakes.generateName();
// Rivers.specify();
// Lakes.generateName();
Military.generate();
Markers.generate();
addZones();
// Military.generate();
// Markers.generate();
// addZones();
OceanLayers(newGrid);
// OceanLayers(newGrid);
drawScaleBar(window.scale);
Names.getMapName();
// drawScaleBar(window.scale);
// Names.getMapName();
const pack = {
const pack: IPack = {
vertices,
cells
cells: {
...cells,
f: featureIds,
t: distanceField,
haven,
harbor
},
features
};
return pack as IPack;
return pack;
}
// repack grid cells: discart deep water cells, add land cells along the coast
@ -133,6 +137,3 @@ function repackGrid(grid: IGrid) {
TIME && console.timeEnd("repackGrid");
return pack;
}
function drawLayer(arg0: string, vertices: IGraphVertices, features: TPackFeatures) {
throw new Error("Function not implemented.");
}