Skip to content

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

DungeonMaker 2.05 © Peter Henningsen. WebAssembly port, package and site created by spearwolf. Released under GPL-3.0-or-later. About · License