dungeonmaker-js / dungeonmaker-js/node / readDesignFile
Function: readDesignFile()
readDesignFile(
path):Promise<{design:string| {$schema?:string;behaviour: {mutator:number;noHeadingProbability:number;patience:number; };crawlers: {corridorWidth:number[];inTunnels: {closedProbability:number;enabled:boolean;generation:number;genes: {changeDirection:number;straightDoubleSpawn:number;straightSingleSpawn:number;turnDoubleSpawn:number;turnSingleSpawn:number; };inAnterooms:boolean;maxAge:number;seedCount:number;stepLength:number; };maxAge:number[];pairs?:object[];random: {genes: {changeDirection:number;straightDoubleSpawn:number;straightSingleSpawn:number;turnDoubleSpawn:number;turnSingleSpawn:number; };perThousandWallSquares:number[]; };seeds?:object[];stepLength:number[]; };map: {background:"open"|"closed";height:number;joinDistance:number;openings: ("N"|"NE"|"E"|"SE"|"S"|"SW"|"W"|"NW")[];tunnelJoinDistance:number;width:number; };population?: {mobs: {dungeon: {open: {anteroomProbability:number;byLevel:number[]; };rooms: {byLevel:number[];groupSize:number;groupSizeVariance:number; }; };labyrinth: {open: {byLevel:number[]; };rooms: {byLevel:number[];groupSize:number;groupSizeVariance:number; }; }; };treasure: {dungeon: {byLevel:number[];groupSize:number;groupSizeVariance:number; };labyrinth: {byLevel:number[];groupSize:number;groupSizeVariance:number; }; }; };rectangles?:object[];rooms: {aspectRatio:number;count: {dungeon: {large:number;medium:number;small:number; };labyrinth: {large:number;medium:number;small:number; }; };size: {large:number;max:number;medium:number;min:number; };sizeProbability: {branching:object[];sideways:object[]; }; };spawnDelay: {crawler:number[];roomie:number[];tunneler:number[]; };tunnelers: {anteroomGenerationSpeedUp:number;anteroomProbability:number[];columns:boolean;joinPreference:number[];lastChance: {changeDirection:number;generationDelay:number;makeRoomsLeft:number;makeRoomsRight:number;straightDoubleSpawn:number;turnDoubleSpawn:number; };maxAge:number[];seeds?:object[];sizeDownProbability:number[];sizeUpGenerationDelay:number;sizeUpProbability:number[]; }; };name:string; }>
Defined in: packages/dungeonmaker-js/src/node/design-file.ts:12
Reads a design file. .json is parsed as a design object; anything else is legacy design text, with a leading byte order mark removed and CRLF turned into LF (so a file saved on Windows behaves like the same file with LF). name is the file name without extensions.
Parameters
path
string
Returns
Promise<{ design: string | { $schema?: string; behaviour: { mutator: number; noHeadingProbability: number; patience: number; }; crawlers: { corridorWidth: number[]; inTunnels: { closedProbability: number; enabled: boolean; generation: number; genes: { changeDirection: number; straightDoubleSpawn: number; straightSingleSpawn: number; turnDoubleSpawn: number; turnSingleSpawn: number; }; inAnterooms: boolean; maxAge: number; seedCount: number; stepLength: number; }; maxAge: number[]; pairs?: object[]; random: { genes: { changeDirection: number; straightDoubleSpawn: number; straightSingleSpawn: number; turnDoubleSpawn: number; turnSingleSpawn: number; }; perThousandWallSquares: number[]; }; seeds?: object[]; stepLength: number[]; }; map: { background: "open" | "closed"; height: number; joinDistance: number; openings: ("N" | "NE" | "E" | "SE" | "S" | "SW" | "W" | "NW")[]; tunnelJoinDistance: number; width: number; }; population?: { mobs: { dungeon: { open: { anteroomProbability: number; byLevel: number[]; }; rooms: { byLevel: number[]; groupSize: number; groupSizeVariance: number; }; }; labyrinth: { open: { byLevel: number[]; }; rooms: { byLevel: number[]; groupSize: number; groupSizeVariance: number; }; }; }; treasure: { dungeon: { byLevel: number[]; groupSize: number; groupSizeVariance: number; }; labyrinth: { byLevel: number[]; groupSize: number; groupSizeVariance: number; }; }; }; rectangles?: object[]; rooms: { aspectRatio: number; count: { dungeon: { large: number; medium: number; small: number; }; labyrinth: { large: number; medium: number; small: number; }; }; size: { large: number; max: number; medium: number; min: number; }; sizeProbability: { branching: object[]; sideways: object[]; }; }; spawnDelay: { crawler: number[]; roomie: number[]; tunneler: number[]; }; tunnelers: { anteroomGenerationSpeedUp: number; anteroomProbability: number[]; columns: boolean; joinPreference: number[]; lastChance: { changeDirection: number; generationDelay: number; makeRoomsLeft: number; makeRoomsRight: number; straightDoubleSpawn: number; turnDoubleSpawn: number; }; maxAge: number[]; seeds?: object[]; sizeDownProbability: number[]; sizeUpGenerationDelay: number; sizeUpProbability: number[]; }; }; name: string; }>
