Files
whale-town-end-v2/scripts/export_world_npc_graph.ts

18 lines
843 B
TypeScript

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)}`);