diff --git a/package.json b/package.json index 5dd8d9200..30e7e6a1f 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "watch": "nodemon --watch src src/ValidateJson.ts", "start": "ts-node src/ValidateJson.ts", "normalize-structure-mask": "ts-node src/Normalize.ts", - "print-line-numbers": "ts-node src/LineNumbers.ts" + "print-line-numbers": "ts-node src/LineNumbers.ts", + "print-rooms": "ts-node src/RoomsPrinter.ts" }, "repository": { "type": "git", diff --git a/src/RoomsPrinter.ts b/src/RoomsPrinter.ts new file mode 100644 index 000000000..77dd1e641 --- /dev/null +++ b/src/RoomsPrinter.ts @@ -0,0 +1,35 @@ +import { FileHelper } from "./FileHelper"; +import { Dungeon } from './ValidateDungeons'; +import { StructurMaskUtils, StructureMaskLineNumbers } from './StructurMaskUtils'; + + +const maskStr = FileHelper.getFile('./contribution/dungeon/layout/structure-mask.json'); +const mask: { rooms: Dungeon[], bossRooms: Dungeon[] } = JSON.parse(maskStr); +const structureMaskLineNumbers: StructureMaskLineNumbers = StructurMaskUtils.getStructureMaskLineNumbers(maskStr); + +console.log("=== ROOMS ==="); +console.log(""); +for (let i = 0; i < mask.rooms.length; ++i) { + console.log(`=== ROOM ${i} at line ${structureMaskLineNumbers.rooms[i]}`); + console.log(""); + console.log(dungeonToString(mask.rooms[i])); + console.log(""); + console.log(""); +} + + +console.log("=== BOSS ROOMS ==="); +console.log(""); +for (let i = 0; i < mask.bossRooms.length; ++i) { + console.log(`=== ROOM ${i} at line ${structureMaskLineNumbers.bossRooms[i]}`); + console.log(""); + console.log(dungeonToString(mask.bossRooms[i])); + console.log(""); + console.log(""); +} + +function dungeonToString(room: Dungeon): string { + const partSize = room.tiles[0].length + 1; + const lines = StructurMaskUtils.chunkString(room.tiles.join(' '), partSize * 15); + return lines.join('\n'); +} \ No newline at end of file diff --git a/src/ValidateJson.ts b/src/ValidateJson.ts index 33d960da6..452b575c8 100644 --- a/src/ValidateJson.ts +++ b/src/ValidateJson.ts @@ -49,9 +49,9 @@ function printDungeonErrorInfo(e: ErrorRoom, type: string, lineNumbers: number[] console.log(''); } function dungeonToString(errorRoom: ErrorRoom): string { - const preparedArray = errorRoom.dungeon.tiles.map(s => `"${s}"`); - const partSize = preparedArray[0].length + 1; - const lines = StructurMaskUtils.chunkString(preparedArray.join(','), partSize * 15); + const room = errorRoom.dungeon; + const partSize = room.tiles[0].length + 1; + const lines = StructurMaskUtils.chunkString(room.tiles.join(' '), partSize * 15); return lines.join('\n'); } ValidateLoreNote.start(); \ No newline at end of file