UNPKG

@fboes/aerofly-patterns

Version:

Landegerät - Create random custom missions for Aerofly FS 4.

43 lines (35 loc) 1.69 kB
import * as fs from "node:fs/promises"; import * as path from "node:path"; import { fileURLToPath } from "node:url"; import { AeroflyHems } from "./AeroflyHems.js"; export class FileWriter { static async writeFile(app: AeroflyHems, saveDirectory: string) { if (app.configuration.directoryMode) { saveDirectory = `${saveDirectory}/data/HEMS-${app.configuration.environmentId}-${app.configuration.aircraft}`; } await fs.mkdir(path.join(saveDirectory, "missions"), { recursive: true }); const promises = [fs.writeFile(`${saveDirectory}/missions/custom_missions_user.tmc`, app.buildCustomMissionTmc())]; if (app.configuration.directoryMode) { promises.push( fs.writeFile(`${saveDirectory}/README.md`, app.buildMarkdown()), fs.cp(app.configuration.geoJsonFile, `${saveDirectory}/${app.configuration.environmentId}.geojson`), ); } const poi_id = app.configuration.environmentId + "_emergency_sites"; const poiDirectory = path.join(saveDirectory, "scenery/poi", app.getEmergencySitesFolderSuffix() + poi_id); const poiFallbackDirectory = path.join(poiDirectory, "fallback"); if (!app.configuration.doNotGeneratePois) { await fs.mkdir(poiDirectory, { recursive: true }); promises.push( fs.writeFile(`${poiDirectory}/${poi_id}.toc`, app.buildEmergencySitesToc()), fs.writeFile(`${poiDirectory}/${poi_id}.tsl`, app.buildEmergencySitesTsl()), fs.cp( path.join(path.dirname(fileURLToPath(import.meta.url)), "../../../src/data/hems/fallback"), poiFallbackDirectory, { recursive: true }, ), ); } await Promise.all(promises); } }