104 lines
5.3 KiB
TypeScript
104 lines
5.3 KiB
TypeScript
import fs from 'fs';
|
|
import path from 'path';
|
|
|
|
export interface LakeConfig {
|
|
id: string;
|
|
text: string;
|
|
priority?: boolean;
|
|
coords: [number, number];
|
|
maxVolume?: number;
|
|
minLevel?: number;
|
|
maxLevel?: number;
|
|
storageLevel?: number;
|
|
navigationForbidden?: boolean;
|
|
}
|
|
|
|
// Preserve existing minLevel, maxLevel, storageLevel that were scraped from PVL.
|
|
// Only update maxVolume, coords, and navigationForbidden.
|
|
import { lakesConfig as oldConfig } from './lakesConfig';
|
|
|
|
const exactData: Record<string, Partial<LakeConfig>> = {
|
|
"VLL1|1": { maxVolume: 306.0, coords: [48.6322, 14.2215], navigationForbidden: false },
|
|
"VLL2|1": { maxVolume: 1.6, coords: [48.6250, 14.3180], navigationForbidden: false },
|
|
"VLHN|1": { maxVolume: 21.1, coords: [49.1830, 14.4440], navigationForbidden: false },
|
|
"VLKO|1": { maxVolume: 2.8, coords: [49.2550, 14.3980], navigationForbidden: false },
|
|
"VLOR|2": { maxVolume: 716.5, coords: [49.6060, 14.1700], navigationForbidden: false },
|
|
"VLSL|2": { maxVolume: 269.3, coords: [49.8220, 14.4360], navigationForbidden: false },
|
|
"VLST|2": { maxVolume: 11.2, coords: [49.8450, 14.4120], navigationForbidden: false },
|
|
"MARI|1": { maxVolume: 33.8, coords: [48.8470, 14.4870], navigationForbidden: true },
|
|
"MZHR|3": { maxVolume: 56.7, coords: [49.7890, 13.1550], navigationForbidden: false },
|
|
"ZESV|2": { maxVolume: 266.6, coords: [49.7040, 15.1150], navigationForbidden: true },
|
|
"VLKA|2": { maxVolume: 12.8, coords: [49.6380, 14.2580], navigationForbidden: false },
|
|
"VLVE|2": { maxVolume: 11.1, coords: [49.9390, 14.3910], navigationForbidden: false },
|
|
"BLHU|1": { maxVolume: 5.7, coords: [49.0270, 13.9870], navigationForbidden: true },
|
|
"UHNY|3": { maxVolume: 16.0, coords: [49.2610, 13.1230], navigationForbidden: true },
|
|
"KCKC|3": { maxVolume: 9.3, coords: [50.0630, 13.9310], navigationForbidden: true },
|
|
"KLKL|3": { maxVolume: 1.5, coords: [49.7540, 13.5640], navigationForbidden: false },
|
|
"RACU|3": { maxVolume: 5.5, coords: [49.7150, 13.3640], navigationForbidden: false },
|
|
"TRTR|2": { maxVolume: 4.1, coords: [49.5260, 15.1950], navigationForbidden: false },
|
|
"HESE|2": { maxVolume: 1.9, coords: [49.5070, 15.2630], navigationForbidden: false },
|
|
"MZLU|3": { maxVolume: 2.3, coords: [49.8050, 12.6390], navigationForbidden: true },
|
|
"STZL|3": { maxVolume: 14.5, coords: [50.0930, 13.1360], navigationForbidden: true },
|
|
"PPPI|3": { maxVolume: 1.6, coords: [49.6910, 13.9570], navigationForbidden: true },
|
|
"LILA|3": { maxVolume: 0.8, coords: [49.6640, 13.8820], navigationForbidden: true },
|
|
"OPOB|3": { maxVolume: 0.6, coords: [49.7110, 13.9370], navigationForbidden: true },
|
|
"STST|2": { maxVolume: 1.0, coords: [49.7910, 14.0040], navigationForbidden: false },
|
|
"HEVR|2": { maxVolume: 0.5, coords: [49.5070, 15.2440], navigationForbidden: false },
|
|
"CRSO|1": { maxVolume: 1.4, coords: [48.7750, 14.5360], navigationForbidden: false },
|
|
"SCHU|1": { maxVolume: 0.8, coords: [48.7840, 14.7350], navigationForbidden: false },
|
|
"SVSV|2": { maxVolume: 1.2, coords: [49.5750, 15.9520], navigationForbidden: true },
|
|
"SAPI|2": { maxVolume: 1.5, coords: [49.5930, 15.9320], navigationForbidden: false },
|
|
"SMSM|3": { maxVolume: 0.7, coords: [49.8970, 14.0580], navigationForbidden: false },
|
|
"CPZA|3": { maxVolume: 0.5, coords: [49.8050, 13.8510], navigationForbidden: false },
|
|
"BIBI|1": { maxVolume: 0.3, coords: [49.1670, 14.0410], navigationForbidden: false },
|
|
"SPKA|1": { maxVolume: 0.3, coords: [48.9740, 14.5450], navigationForbidden: false },
|
|
"SPNE|2": { maxVolume: 0.4, coords: [49.7710, 15.1760], navigationForbidden: false },
|
|
"SPZH|1": { maxVolume: 0.2, coords: [49.2310, 15.3120], navigationForbidden: true },
|
|
"KLDP|3": { maxVolume: 0.5, coords: [49.6640, 13.7530], navigationForbidden: true },
|
|
"KLHP|3": { maxVolume: 0.7, coords: [49.6550, 13.7610], navigationForbidden: true },
|
|
"CPDR|3": { maxVolume: 0.1, coords: [49.8050, 13.8550], navigationForbidden: false },
|
|
};
|
|
|
|
function main() {
|
|
const updated = oldConfig.map(lake => {
|
|
const fresh = exactData[lake.id];
|
|
if (fresh) {
|
|
return {
|
|
...lake,
|
|
maxVolume: fresh.maxVolume,
|
|
coords: fresh.coords,
|
|
navigationForbidden: fresh.navigationForbidden
|
|
};
|
|
}
|
|
return lake;
|
|
});
|
|
|
|
let newContent = `export interface LakeConfig {
|
|
id: string;
|
|
text: string;
|
|
priority?: boolean;
|
|
coords: [number, number];
|
|
maxVolume?: number;
|
|
minLevel?: number;
|
|
maxLevel?: number;
|
|
storageLevel?: number;
|
|
navigationForbidden?: boolean;
|
|
type?: 'lake' | 'river';
|
|
country?: string;
|
|
area?: number;
|
|
depth?: number;
|
|
}
|
|
|
|
export const lakesConfig: LakeConfig[] = [
|
|
`;
|
|
updated.forEach((l, idx) => {
|
|
newContent += ` { id: "${l.id}", text: "${l.text}", ${l.priority ? 'priority: true, ' : ''}coords: [${l.coords[0].toFixed(4)}, ${l.coords[1].toFixed(4)}], maxVolume: ${l.maxVolume}, minLevel: ${l.minLevel}, maxLevel: ${l.maxLevel}, storageLevel: ${l.storageLevel}, navigationForbidden: ${l.navigationForbidden}${l.type ? `, type: '${l.type}'` : ''}${l.country ? `, country: '${l.country}'` : ''}${l.area ? `, area: ${l.area}` : ''}${l.depth ? `, depth: ${l.depth}` : ''} }${idx === updated.length - 1 ? '' : ','}\n`;
|
|
});
|
|
newContent += `];\n`;
|
|
|
|
fs.writeFileSync(path.resolve('./scripts/lakesConfig.ts'), newContent);
|
|
console.log("lakesConfig.ts updated with precise static data and navigation limits!");
|
|
}
|
|
|
|
main();
|