partially refactor BurgAndStates

This commit is contained in:
Azgaar 2021-08-08 14:32:48 +03:00 committed by Peter
parent 34bf6ffd1e
commit 975dea8084

14
main.js
View file

@ -721,7 +721,13 @@ async function generate(options) {
rankCells(); rankCells();
Cultures.generate(); Cultures.generate();
Cultures.expand(); Cultures.expand();
// temp
pack.cells.road = new Uint16Array(pack.cells.i.length);
pack.cells.crossroad = new Uint16Array(pack.cells.i.length);
BurgsAndStates.generate(); BurgsAndStates.generate();
Religions.generate(); Religions.generate();
BurgsAndStates.defineStateForms(); BurgsAndStates.defineStateForms();
BurgsAndStates.defineTaxes(); BurgsAndStates.defineTaxes();
@ -1547,15 +1553,15 @@ function getBiomeId(moisture, temperature, height) {
function rankCells() { function rankCells() {
TIME && console.time("rankCells"); TIME && console.time("rankCells");
const {cells, features} = pack; const {cells, features} = pack;
cells.s = new Int16Array(cells.i.length); // cell suitability array cells.s = new Int16Array(cells.i.length); // cell suitability score
cells.pop = new Float32Array(cells.i.length); // cell population array cells.pop = new Float32Array(cells.i.length); // cell population
const flMean = d3.median(cells.fl.filter(f => f)) || 0, const flMean = d3.median(cells.fl.filter(f => f)) || 0,
flMax = d3.max(cells.fl) + d3.max(cells.conf); // to normalize flux flMax = d3.max(cells.fl) + d3.max(cells.conf); // to normalize flux
const areaMean = d3.mean(cells.area); // to adjust population by cell area const areaMean = d3.mean(cells.area); // to adjust population by cell area
const getResValue = (i) => (cells.resource[i] ? Resources.get(cells.resource[i])?.value : 0); const getResValue = (i) => (cells.resource[i] ? Resources.get(cells.resource[i])?.value : 0); // get bonus resource scope
const resBonuses = []; const resBonuses = [];
const POP_BALANCER = 1.5; // contant to ballance population to desired number not changing ranking const POP_BALANCER = 1.5; // to ballance population to desired number
for (const i of cells.i) { for (const i of cells.i) {
if (cells.b[i]) continue; // avoid adding burgs on map border if (cells.b[i]) continue; // avoid adding burgs on map border