import { writeFileSync } from 'node:fs'; import { resolve } from 'node:path'; import { getWorldLocation, WORLD_LOCATIONS, WORLD_ROUTE_EDGES } from '../src/business/world_npc/world_npc.world'; import { WORLD_NPC_DEFINITIONS } from '../src/business/world_npc/world_npc.registry'; const output = String(process.env.WORLD_NPC_GRAPH_OUTPUT || '').trim(); if (!output) throw new Error('WORLD_NPC_GRAPH_OUTPUT is required'); writeFileSync(resolve(output), JSON.stringify({ locations: WORLD_LOCATIONS, edges: WORLD_ROUTE_EDGES, fixedNpcPositions: WORLD_NPC_DEFINITIONS.filter((definition) => definition.stationary).map((definition) => ({ npcId: definition.npcId, mapId: getWorldLocation(definition.homeLocationId).mapId, ...definition.fixedPosition, })), }, null, 2)); console.log(`WORLD_NPC_GRAPH_EXPORTED: ${resolve(output)}`);