isaacscript 2.7.5 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-stage/floor-backdrop.anm2 +488 -0
- package/custom-stage/none.png +0 -0
- package/custom-stage/wall-backdrop.anm2 +2879 -0
- package/file-templates/dynamic/mod/content/rooms/00.special rooms.stb +0 -0
- package/file-templates/static/.eslintrc.js.template +5 -9
- package/file-templates/static/tsconfig.json +11 -1
- package/isaacscript-watcher/main.lua +3 -1
- package/package.json +8 -10
- package/schemas/tsconfig-isaacscript-schema.json +20 -0
- package/schemas/tsconfig-isaacscript-section-schema.json +105 -0
- package/src/{types → classes}/Config.js +1 -0
- package/src/classes/Config.js.map +1 -0
- package/src/commands/copy/copy.js +7 -3
- package/src/commands/copy/copy.js.map +1 -1
- package/src/commands/init/createMod.js.map +1 -1
- package/src/commands/init/getModsDir.js +1 -1
- package/src/commands/init/getModsDir.js.map +1 -1
- package/src/commands/init/git.js +4 -0
- package/src/commands/init/git.js.map +1 -1
- package/src/commands/init/installVSCodeExtensions.js +6 -10
- package/src/commands/init/installVSCodeExtensions.js.map +1 -1
- package/src/commands/monitor/copyWatcherMod.js.map +1 -1
- package/src/commands/monitor/monitor.js +11 -38
- package/src/commands/monitor/monitor.js.map +1 -1
- package/src/commands/monitor/spawnSaveDatWriter.js.map +1 -1
- package/src/commands/monitor/touchWatcherSaveDatFiles.js.map +1 -1
- package/src/commands/publish/publish.js +6 -4
- package/src/commands/publish/publish.js.map +1 -1
- package/src/common.js +62 -0
- package/src/common.js.map +1 -0
- package/src/configFile.js +6 -16
- package/src/configFile.js.map +1 -1
- package/src/constants.js +8 -2
- package/src/constants.js.map +1 -1
- package/src/customStage.js +207 -0
- package/src/customStage.js.map +1 -0
- package/src/enums/DoorSlot.js +24 -0
- package/src/enums/DoorSlot.js.map +1 -0
- package/src/enums/DoorSlotFlag.js +37 -0
- package/src/enums/DoorSlotFlag.js.map +1 -0
- package/src/{types → enums}/PackageManager.js +0 -0
- package/src/{types → enums}/PackageManager.js.map +1 -1
- package/src/enums/RoomShape.js +47 -0
- package/src/enums/RoomShape.js.map +1 -0
- package/src/file.js +5 -1
- package/src/file.js.map +1 -1
- package/src/{types → interfaces}/GitHubCLIHostsYAML.js +0 -0
- package/src/interfaces/GitHubCLIHostsYAML.js.map +1 -0
- package/src/interfaces/IsaacScriptTSConfig.js +3 -0
- package/src/interfaces/IsaacScriptTSConfig.js.map +1 -0
- package/src/interfaces/copied/CustomStageLua.js +4 -0
- package/src/interfaces/copied/CustomStageLua.js.map +1 -0
- package/src/interfaces/copied/JSONRoomsFile.js +4 -0
- package/src/interfaces/copied/JSONRoomsFile.js.map +1 -0
- package/src/json.js +30 -0
- package/src/json.js.map +1 -0
- package/src/main.js +5 -5
- package/src/main.js.map +1 -1
- package/src/objects/doorSlotToDoorSlotFlag.js +17 -0
- package/src/objects/doorSlotToDoorSlotFlag.js.map +1 -0
- package/src/objects/roomShapeDoorSlotCoordinates.js +113 -0
- package/src/objects/roomShapeDoorSlotCoordinates.js.map +1 -0
- package/src/packageManager.js +1 -1
- package/src/packageManager.js.map +1 -1
- package/src/prompt.js +1 -1
- package/src/prompt.js.map +1 -1
- package/src/tsconfig.js +104 -0
- package/src/tsconfig.js.map +1 -0
- package/src/utils.js +5 -1
- package/src/utils.js.map +1 -1
- package/file-templates/dynamic/mod/metadata.vdf +0 -6
- package/file-templates/static/.env_template +0 -2
- package/src/types/Config.js.map +0 -1
- package/src/types/GitHubCLIHostsYAML.js.map +0 -1
|
@@ -7,16 +7,18 @@ const path_1 = tslib_1.__importDefault(require("path"));
|
|
|
7
7
|
const constants_1 = require("../../constants");
|
|
8
8
|
const exec_1 = require("../../exec");
|
|
9
9
|
const file = tslib_1.__importStar(require("../../file"));
|
|
10
|
+
const packageManager_1 = require("../../packageManager");
|
|
10
11
|
const utils_1 = require("../../utils");
|
|
11
12
|
const copy_1 = require("../copy/copy");
|
|
12
13
|
const git_1 = require("../init/git");
|
|
13
14
|
const UPDATE_SCRIPT_NAME = "update.sh";
|
|
14
|
-
function publish(args, config) {
|
|
15
|
+
async function publish(args, config) {
|
|
15
16
|
const skipVersionIncrement = args.skip === true;
|
|
16
17
|
const { setVersion } = args;
|
|
17
18
|
const dryRun = args.dryRun === true;
|
|
18
19
|
const onlyUpload = args.onlyUpload === true;
|
|
19
20
|
const verbose = args.verbose === true;
|
|
21
|
+
const packageManager = (0, packageManager_1.getPackageManagerUsedForExistingProject)(args, verbose);
|
|
20
22
|
const modTargetDirectoryName = (0, utils_1.getModTargetDirectoryName)(config);
|
|
21
23
|
const modTargetPath = path_1.default.join(config.modsDirectory, modTargetDirectoryName);
|
|
22
24
|
validateVersion(setVersion);
|
|
@@ -26,7 +28,7 @@ function publish(args, config) {
|
|
|
26
28
|
uploadMod(modTargetPath, config.steamCmdPath, verbose);
|
|
27
29
|
return;
|
|
28
30
|
}
|
|
29
|
-
startPublish(constants_1.MOD_SOURCE_PATH, modTargetPath, skipVersionIncrement, setVersion, config.steamCmdPath, dryRun, verbose);
|
|
31
|
+
await startPublish(constants_1.MOD_SOURCE_PATH, modTargetPath, skipVersionIncrement, setVersion, config.steamCmdPath, dryRun, packageManager, verbose);
|
|
30
32
|
}
|
|
31
33
|
exports.publish = publish;
|
|
32
34
|
function validateVersion(setVersion) {
|
|
@@ -53,7 +55,7 @@ function validateIsaacScriptOtherCopiesNotRunning(verbose) {
|
|
|
53
55
|
(0, utils_1.error)(chalk_1.default.red(`Other copies of ${constants_1.PROJECT_NAME} appear to be running. You must close those copies before publishing.`));
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
|
-
function startPublish(modSourcePath, modTargetPath, skipVersionIncrement, setVersion, steamCmdPath, dryRun, verbose) {
|
|
58
|
+
async function startPublish(modSourcePath, modTargetPath, skipVersionIncrement, setVersion, steamCmdPath, dryRun, packageManager, verbose) {
|
|
57
59
|
updateDeps(verbose);
|
|
58
60
|
let version = setVersion === undefined ? getVersionFromPackageJSON(verbose) : setVersion;
|
|
59
61
|
if (!skipVersionIncrement && setVersion === undefined) {
|
|
@@ -66,7 +68,7 @@ function startPublish(modSourcePath, modTargetPath, skipVersionIncrement, setVer
|
|
|
66
68
|
writeVersionToMetadataXML(version, verbose);
|
|
67
69
|
writeVersionToVersionTXT(version, verbose);
|
|
68
70
|
runReleaseScriptPreCopy(verbose);
|
|
69
|
-
(0, copy_1.compileAndCopy)(modSourcePath, modTargetPath, verbose);
|
|
71
|
+
await (0, copy_1.compileAndCopy)(modSourcePath, modTargetPath, packageManager, verbose);
|
|
70
72
|
purgeRoomXMLs(modTargetPath, verbose);
|
|
71
73
|
runReleaseScriptPostCopy(verbose);
|
|
72
74
|
if (!dryRun) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../../../../packages/isaacscript-cli/src/commands/publish/publish.ts"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,wDAAwB;
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../../../../packages/isaacscript-cli/src/commands/publish/publish.ts"],"names":[],"mappings":"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"}
|
package/src/common.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// These are functions copied from `isaacscript-common`.
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.getJSONRoomDoorSlotFlags = void 0;
|
|
5
|
+
const doorSlotToDoorSlotFlag_1 = require("./objects/doorSlotToDoorSlotFlag");
|
|
6
|
+
const roomShapeDoorSlotCoordinates_1 = require("./objects/roomShapeDoorSlotCoordinates");
|
|
7
|
+
const utils_1 = require("./utils");
|
|
8
|
+
function getJSONRoomDoorSlotFlags(jsonRoom) {
|
|
9
|
+
const roomShapeString = jsonRoom.$.shape;
|
|
10
|
+
const roomShapeNumber = (0, utils_1.parseIntSafe)(roomShapeString);
|
|
11
|
+
if (Number.isNaN(roomShapeNumber)) {
|
|
12
|
+
(0, utils_1.error)(`Failed to parse the "shape" property of a custom stage room: ${roomShapeString}`);
|
|
13
|
+
}
|
|
14
|
+
const roomShape = roomShapeNumber;
|
|
15
|
+
let doorSlotFlags = 0;
|
|
16
|
+
for (const door of jsonRoom.door) {
|
|
17
|
+
const existsString = door.$.exists;
|
|
18
|
+
if (existsString !== "True" && existsString !== "False") {
|
|
19
|
+
(0, utils_1.error)(`Failed to parse the "exists" property of a custom stage room door: ${existsString}`);
|
|
20
|
+
}
|
|
21
|
+
if (existsString === "False") {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
const xString = door.$.x;
|
|
25
|
+
const x = (0, utils_1.parseIntSafe)(xString);
|
|
26
|
+
if (Number.isNaN(x)) {
|
|
27
|
+
(0, utils_1.error)(`Failed to parse the "x" property of a custom stage room door: ${xString}`);
|
|
28
|
+
}
|
|
29
|
+
const yString = door.$.y;
|
|
30
|
+
const y = (0, utils_1.parseIntSafe)(yString);
|
|
31
|
+
if (Number.isNaN(y)) {
|
|
32
|
+
(0, utils_1.error)(`Failed to parse the "y" property of a custom stage room door: ${yString}`);
|
|
33
|
+
}
|
|
34
|
+
const doorSlot = getRoomShapeDoorSlot(roomShape, x, y);
|
|
35
|
+
if (doorSlot === undefined) {
|
|
36
|
+
(0, utils_1.error)(`Failed to retrieve the door slot for a custom stage room door at coordinates: [${x}, ${y}]`);
|
|
37
|
+
}
|
|
38
|
+
const doorSlotFlag = doorSlotToDoorSlotFlag(doorSlot);
|
|
39
|
+
doorSlotFlags = addFlag(doorSlotFlags, doorSlotFlag);
|
|
40
|
+
}
|
|
41
|
+
return doorSlotFlags;
|
|
42
|
+
}
|
|
43
|
+
exports.getJSONRoomDoorSlotFlags = getJSONRoomDoorSlotFlags;
|
|
44
|
+
function getRoomShapeDoorSlot(roomShape, x, y) {
|
|
45
|
+
const coordinatesMap = roomShapeDoorSlotCoordinates_1.ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES[roomShape];
|
|
46
|
+
for (const [doorSlot, [doorX, doorY]] of coordinatesMap.entries()) {
|
|
47
|
+
if (x === doorX && y === doorY) {
|
|
48
|
+
return doorSlot;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
function doorSlotToDoorSlotFlag(doorSlot) {
|
|
54
|
+
return doorSlotToDoorSlotFlag_1.DOOR_SLOT_TO_DOOR_SLOT_FLAG[doorSlot];
|
|
55
|
+
}
|
|
56
|
+
function addFlag(flags, ...flagsToAdd) {
|
|
57
|
+
for (const flagToAdd of flagsToAdd) {
|
|
58
|
+
flags |= flagToAdd; // eslint-disable-line no-bitwise,no-param-reassign
|
|
59
|
+
}
|
|
60
|
+
return flags;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/common.ts"],"names":[],"mappings":";AAAA,wDAAwD;;;AAMxD,6EAA+E;AAC/E,yFAA6F;AAC7F,mCAA8C;AAE9C,SAAgB,wBAAwB,CAAC,QAAkB;IACzD,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IACzC,MAAM,eAAe,GAAG,IAAA,oBAAY,EAAC,eAAe,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;QACjC,IAAA,aAAK,EACH,gEAAgE,eAAe,EAAE,CAClF,CAAC;KACH;IACD,MAAM,SAAS,GAAG,eAA4B,CAAC;IAE/C,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QACnC,IAAI,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,OAAO,EAAE;YACvD,IAAA,aAAK,EACH,sEAAsE,YAAY,EAAE,CACrF,CAAC;SACH;QAED,IAAI,YAAY,KAAK,OAAO,EAAE;YAC5B,SAAS;SACV;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACnB,IAAA,aAAK,EACH,iEAAiE,OAAO,EAAE,CAC3E,CAAC;SACH;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACnB,IAAA,aAAK,EACH,iEAAiE,OAAO,EAAE,CAC3E,CAAC;SACH;QAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,IAAA,aAAK,EACH,kFAAkF,CAAC,KAAK,CAAC,GAAG,CAC7F,CAAC;SACH;QAED,MAAM,YAAY,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QACtD,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AApDD,4DAoDC;AAED,SAAS,oBAAoB,CAC3B,SAAoB,EACpB,CAAS,EACT,CAAS;IAET,MAAM,cAAc,GAAG,kEAAmC,CAAC,SAAS,CAAC,CAAC;IACtE,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE;QACjE,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,EAAE;YAC9B,OAAO,QAAQ,CAAC;SACjB;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAkB;IAChD,OAAO,oDAA2B,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,OAAO,CAAC,KAAa,EAAE,GAAG,UAAoB;IACrD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;QAClC,KAAK,IAAI,SAAS,CAAC,CAAC,mDAAmD;KACxE;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/src/configFile.js
CHANGED
|
@@ -2,19 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createFile = exports.createObject = exports.get = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
6
|
-
const JSONC = tslib_1.__importStar(require("jsonc-parser"));
|
|
7
5
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
8
6
|
const getModsDir_1 = require("./commands/init/getModsDir");
|
|
9
7
|
const promptSaveSlot_1 = require("./commands/init/promptSaveSlot");
|
|
10
8
|
const constants_1 = require("./constants");
|
|
11
9
|
const file = tslib_1.__importStar(require("./file"));
|
|
10
|
+
const json_1 = require("./json");
|
|
12
11
|
const utils_1 = require("./utils");
|
|
13
12
|
const NUM_SPACES = 2;
|
|
14
13
|
async function get(args) {
|
|
15
14
|
const verbose = args.verbose === true;
|
|
16
15
|
const yes = args.yes === true;
|
|
17
|
-
const existingConfig =
|
|
16
|
+
const existingConfig = getExistingConfig(verbose);
|
|
18
17
|
if (existingConfig !== undefined) {
|
|
19
18
|
return existingConfig;
|
|
20
19
|
}
|
|
@@ -26,28 +25,19 @@ async function get(args) {
|
|
|
26
25
|
return config;
|
|
27
26
|
}
|
|
28
27
|
exports.get = get;
|
|
29
|
-
function
|
|
28
|
+
function getExistingConfig(verbose) {
|
|
30
29
|
if (!file.exists(constants_1.CONFIG_FILE_PATH, verbose)) {
|
|
31
30
|
return undefined;
|
|
32
31
|
}
|
|
33
|
-
const
|
|
34
|
-
let config;
|
|
35
|
-
try {
|
|
36
|
-
config = JSONC.parse(configRaw);
|
|
37
|
-
}
|
|
38
|
-
catch (err) {
|
|
39
|
-
(0, utils_1.error)(`Failed to parse the "${chalk_1.default.green(constants_1.CONFIG_FILE_PATH)}" file:`, err);
|
|
40
|
-
}
|
|
32
|
+
const config = (0, json_1.getJSONC)(constants_1.CONFIG_FILE_PATH, verbose);
|
|
41
33
|
// Even though the "modsDirectory" property is always initialized in the class, it may not be
|
|
42
34
|
// necessarily exist in the JSON file.
|
|
43
|
-
|
|
44
|
-
if (config.modsDirectory === undefined) {
|
|
35
|
+
if (config["modsDirectory"] === undefined) {
|
|
45
36
|
errorMissing("modsDirectory", "This should be equal to the directory where Isaac mods live on your system.");
|
|
46
37
|
}
|
|
47
38
|
// Even though the "saveSlot" property is always initialized in the class, it may not be
|
|
48
39
|
// necessarily exist in the JSON file.
|
|
49
|
-
|
|
50
|
-
if (config.saveSlot === undefined) {
|
|
40
|
+
if (config["saveSlot"] === undefined) {
|
|
51
41
|
errorMissing("saveSlot", "This should be equal to the save slot that you test your mods on.");
|
|
52
42
|
}
|
|
53
43
|
return config;
|
package/src/configFile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configFile.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/configFile.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"configFile.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/configFile.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AAExB,2DAAwD;AACxD,mEAAgE;AAChE,2CAAsE;AACtE,qDAA+B;AAC/B,iCAAkC;AAElC,mCAAgC;AAEhC,MAAM,UAAU,GAAG,CAAC,CAAC;AAEd,KAAK,UAAU,GAAG,CAAC,IAAU;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC;IAE9B,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,OAAO,cAAc,CAAC;KACvB;IAED,iFAAiF;IACjF,MAAM,aAAa,GAAG,MAAM,IAAA,uBAAU,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,IAAA,+BAAc,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACrD,UAAU,CAAC,eAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAhBD,kBAgBC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,4BAAgB,EAAE,OAAO,CAAC,EAAE;QAC3C,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,MAAM,GAAG,IAAA,eAAQ,EAAC,4BAAgB,EAAE,OAAO,CAAC,CAAC;IAEnD,6FAA6F;IAC7F,sCAAsC;IACtC,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE;QACzC,YAAY,CACV,eAAe,EACf,6EAA6E,CAC9E,CAAC;KACH;IAED,wFAAwF;IACxF,sCAAsC;IACtC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE;QACpC,YAAY,CACV,UAAU,EACV,mEAAmE,CACpE,CAAC;KACH;IAED,OAAO,MAA2B,CAAC;AACrC,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,WAAmB;IACtD,IAAA,aAAK,EACH,QAAQ,4BAAgB,wBAAwB,KAAK,YAAY,WAAW,iBAAiB,CAC9F,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,aAAqB,EAAE,QAAgB;IAClE,OAAO;QACL,aAAa;QACb,QAAQ;KACT,CAAC;AACJ,CAAC;AALD,oCAKC;AAED,SAAgB,UAAU,CACxB,WAAmB,EACnB,MAAc,EACd,OAAgB;IAEhB,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,4BAAgB,CAAC,CAAC;IAEhE,gDAAgD;IAChD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7E,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAXD,gCAWC"}
|
package/src/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PUBLISH_POST_COPY_PY_PATH = exports.PUBLISH_PRE_COPY_PY_PATH = exports.VERSION_TXT_PATH = exports.METADATA_XML_PATH = exports.MAIN_LUA = exports.MOD_SOURCE_PATH = exports.CONSTANTS_TS_PATH = exports.PACKAGE_JSON_PATH = exports.
|
|
3
|
+
exports.PUBLISH_POST_COPY_PY_PATH = exports.PUBLISH_PRE_COPY_PY_PATH = exports.VERSION_TXT_PATH = exports.METADATA_XML_PATH = exports.MAIN_LUA = exports.MOD_SOURCE_PATH = exports.CONSTANTS_TS_PATH = exports.PACKAGE_JSON_PATH = exports.TSCONFIG_JSON_PATH = exports.TSCONFIG_JSON = exports.CONFIG_FILE_PATH = exports.CONFIG_FILE_NAME = exports.ISAACSCRIPT_SCHEMA_PATH = exports.README_MD_TEMPLATES_PATH = exports.README_MD = exports.PACKAGE_JSON_TEMPLATE_PATH = exports.PACKAGE_JSON = exports.METADATA_VDF_TEMPLATE_PATH = exports.METADATA_VDF = exports.METADATA_XML_TEMPLATE_PATH = exports.METADATA_XML = exports.MAIN_TS_TEMPLATE_PATH = exports.MAIN_TS = exports.GITIGNORE_TEMPLATE_PATH = exports.GITIGNORE = exports.CI_YML_TEMPLATE_PATH = exports.CI_YML = exports.TEMPLATES_STATIC_DIR = exports.WATCHER_MOD_SOURCE_PATH = exports.WATCHER_MOD_NAME = exports.DISABLE_IT_FILE = exports.CUSTOM_STAGE_FILES_DIR = exports.PROJECT_NAME = exports.MOD_UPLOADER_PATH = exports.FILE_SYNCED_MESSAGE = exports.HOME_DIR = exports.CWD = exports.CURRENT_DIRECTORY_NAME = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const os_1 = tslib_1.__importDefault(require("os"));
|
|
6
6
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
@@ -19,6 +19,8 @@ exports.MOD_UPLOADER_PATH = "C:\\Program Files (x86)\\Steam\\steamapps\\common\\
|
|
|
19
19
|
exports.PROJECT_NAME = "IsaacScript";
|
|
20
20
|
// `isaacscript`
|
|
21
21
|
const REPO_ROOT = path_1.default.join(__dirname, "..");
|
|
22
|
+
// `isaacscript/custom-stage`
|
|
23
|
+
exports.CUSTOM_STAGE_FILES_DIR = path_1.default.join(REPO_ROOT, "custom-stage");
|
|
22
24
|
// `isaacscript/isaacscript-watcher`
|
|
23
25
|
exports.DISABLE_IT_FILE = "disable.it";
|
|
24
26
|
exports.WATCHER_MOD_NAME = "isaacscript-watcher";
|
|
@@ -43,10 +45,14 @@ exports.PACKAGE_JSON = "package.json";
|
|
|
43
45
|
exports.PACKAGE_JSON_TEMPLATE_PATH = path_1.default.join(TEMPLATES_DYNAMIC_DIR, exports.PACKAGE_JSON);
|
|
44
46
|
exports.README_MD = "README.md";
|
|
45
47
|
exports.README_MD_TEMPLATES_PATH = path_1.default.join(TEMPLATES_DYNAMIC_DIR, exports.README_MD);
|
|
48
|
+
// `isaacscript/schemas`
|
|
49
|
+
const SCHEMAS_DIR = path_1.default.join(REPO_ROOT, "schemas");
|
|
50
|
+
exports.ISAACSCRIPT_SCHEMA_PATH = path_1.default.join(SCHEMAS_DIR, "tsconfig-isaacscript-section-schema.json");
|
|
46
51
|
// `project`
|
|
47
52
|
exports.CONFIG_FILE_NAME = "isaacscript.json";
|
|
48
53
|
exports.CONFIG_FILE_PATH = path_1.default.join(exports.CWD, exports.CONFIG_FILE_NAME);
|
|
49
|
-
exports.
|
|
54
|
+
exports.TSCONFIG_JSON = "tsconfig.json";
|
|
55
|
+
exports.TSCONFIG_JSON_PATH = path_1.default.join(exports.CWD, exports.TSCONFIG_JSON);
|
|
50
56
|
exports.PACKAGE_JSON_PATH = path_1.default.join(exports.CWD, "package.json");
|
|
51
57
|
exports.CONSTANTS_TS_PATH = path_1.default.join(exports.CWD, "src", "constants.ts");
|
|
52
58
|
// `project/mod`
|
package/src/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/constants.ts"],"names":[],"mappings":";;;;AAAA,oDAAoB;AACpB,wDAAwB;AAExB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAE1B;;;GAGG;AACH,MAAM,OAAO,GAAG,YAAE,CAAC,OAAO,EAAE,CAAC;AAE7B,gBAAgB;AACH,QAAA,sBAAsB,GAAG,cAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAA,GAAG,GAAG,GAAG,CAAC;AACV,QAAA,QAAQ,GAAG,OAAO,CAAC;AACnB,QAAA,mBAAmB,GAAG,cAAc,CAAC;AACrC,QAAA,iBAAiB,GAC5B,sHAAsH,CAAC;AAC5G,QAAA,YAAY,GAAG,aAAa,CAAC;AAE1C,gBAAgB;AAChB,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAE7C,oCAAoC;AACvB,QAAA,eAAe,GAAG,YAAY,CAAC;AAC/B,QAAA,gBAAgB,GAAG,qBAAqB,CAAC;AACzC,QAAA,uBAAuB,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,wBAAgB,CAAC,CAAC;AAE9E,+BAA+B;AAC/B,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAE7D,sCAAsC;AACzB,QAAA,oBAAoB,GAAG,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AAEvE,uCAAuC;AACvC,MAAM,qBAAqB,GAAG,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AACrD,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,oBAAoB,GAAG,cAAI,CAAC,IAAI,CAC3C,qBAAqB,EACrB,SAAS,EACT,WAAW,EACX,cAAM,CACP,CAAC;AAEW,QAAA,SAAS,GAAG,WAAW,CAAC,CAAC,0DAA0D;AACnF,QAAA,uBAAuB,GAAG,cAAI,CAAC,IAAI,CAC9C,qBAAqB,EACrB,iBAAS,CACV,CAAC;AACW,QAAA,OAAO,GAAG,SAAS,CAAC;AACpB,QAAA,qBAAqB,GAAG,cAAI,CAAC,IAAI,CAC5C,qBAAqB,EACrB,KAAK,EACL,eAAO,CACR,CAAC;AACW,QAAA,YAAY,GAAG,cAAc,CAAC;AAC9B,QAAA,0BAA0B,GAAG,cAAI,CAAC,IAAI,CACjD,qBAAqB,EACrB,KAAK,EACL,oBAAY,CACb,CAAC;AACW,QAAA,YAAY,GAAG,cAAc,CAAC;AAC9B,QAAA,0BAA0B,GAAG,cAAI,CAAC,IAAI,CACjD,qBAAqB,EACrB,KAAK,EACL,oBAAY,CACb,CAAC;AACW,QAAA,YAAY,GAAG,cAAc,CAAC;AAC9B,QAAA,0BAA0B,GAAG,cAAI,CAAC,IAAI,CACjD,qBAAqB,EACrB,oBAAY,CACb,CAAC;AACW,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,wBAAwB,GAAG,cAAI,CAAC,IAAI,CAC/C,qBAAqB,EACrB,iBAAS,CACV,CAAC;AAEF,YAAY;AACC,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AACtC,QAAA,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,WAAG,EAAE,wBAAgB,CAAC,CAAC;AACpD,QAAA,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,WAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.prepareCustomStages = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
6
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
7
|
+
const tstl = tslib_1.__importStar(require("typescript-to-lua"));
|
|
8
|
+
const xml2js_1 = tslib_1.__importDefault(require("xml2js"));
|
|
9
|
+
const common_1 = require("./common");
|
|
10
|
+
const constants_1 = require("./constants");
|
|
11
|
+
const file = tslib_1.__importStar(require("./file"));
|
|
12
|
+
const packageManager_1 = require("./packageManager");
|
|
13
|
+
const tsconfig_1 = require("./tsconfig");
|
|
14
|
+
const utils_1 = require("./utils");
|
|
15
|
+
const ISAACSCRIPT_COMMON = "isaacscript-common";
|
|
16
|
+
const ISAACSCRIPT_COMMON_PATH = path_1.default.join(constants_1.CWD, "node_modules", ISAACSCRIPT_COMMON);
|
|
17
|
+
const METADATA_LUA_PATH = path_1.default.join(ISAACSCRIPT_COMMON_PATH, "features", "customStage", "metadata.lua");
|
|
18
|
+
const ROOM_VARIANT_MULTIPLIER = 10000;
|
|
19
|
+
const VARIANT_REGEX = / variant="(\d+)"/;
|
|
20
|
+
const WEIGHT_REGEX = / weight="(.+?)"/;
|
|
21
|
+
async function prepareCustomStages(packageManager, verbose) {
|
|
22
|
+
const customStagesTSConfig = (0, tsconfig_1.getCustomStagesFromTSConfig)(verbose);
|
|
23
|
+
if (customStagesTSConfig.length === 0) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
copyCustomStageFilesToProject(verbose);
|
|
27
|
+
await fillCustomStageMetadata(customStagesTSConfig, packageManager, verbose);
|
|
28
|
+
combineCustomStageXMLs(customStagesTSConfig, verbose);
|
|
29
|
+
}
|
|
30
|
+
exports.prepareCustomStages = prepareCustomStages;
|
|
31
|
+
/** The custom stages feature needs some anm2 files in order to work properly. */
|
|
32
|
+
function copyCustomStageFilesToProject(verbose) {
|
|
33
|
+
const dstDirPath = path_1.default.join(constants_1.CWD, "mod", "resources", "gfx", "isaacscript-custom-stage");
|
|
34
|
+
file.makeDir(dstDirPath, verbose);
|
|
35
|
+
for (const fileName of file.getDirList(constants_1.CUSTOM_STAGE_FILES_DIR, verbose)) {
|
|
36
|
+
const srcPath = path_1.default.join(constants_1.CUSTOM_STAGE_FILES_DIR, fileName);
|
|
37
|
+
const dstPath = path_1.default.join(dstDirPath, fileName);
|
|
38
|
+
file.copy(srcPath, dstPath, verbose);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* In order for the custom stage feature to work properly, Lua code will need to know the list of
|
|
43
|
+
* possible rooms corresponding to a custom stage. In an end-user mod, this is a Lua file located at
|
|
44
|
+
* `METADATA_LUA_PATH`. By default, the file is blank, and must be filled in by tooling before
|
|
45
|
+
* compiling the mod.
|
|
46
|
+
*/
|
|
47
|
+
async function fillCustomStageMetadata(customStagesTSConfig, packageManager, verbose) {
|
|
48
|
+
validateMetadataLuaFileExists(packageManager, verbose);
|
|
49
|
+
const customStages = await getCustomStagesWithMetadata(customStagesTSConfig, verbose);
|
|
50
|
+
const customStagesLua = convertCustomStagesToLua(customStages);
|
|
51
|
+
file.write(METADATA_LUA_PATH, customStagesLua, verbose);
|
|
52
|
+
}
|
|
53
|
+
function validateMetadataLuaFileExists(packageManager, verbose) {
|
|
54
|
+
if (!file.isDir(ISAACSCRIPT_COMMON_PATH, verbose)) {
|
|
55
|
+
const addCommand = (0, packageManager_1.getPackageManagerAddCommand)(packageManager, ISAACSCRIPT_COMMON);
|
|
56
|
+
(0, utils_1.error)(`${chalk_1.default.red(`The custom stages feature requires a dependency of "${ISAACSCRIPT_COMMON}" in the "package.json" file. You can add it with the following command:`)} ${chalk_1.default.green(addCommand)}`);
|
|
57
|
+
}
|
|
58
|
+
if (!file.exists(METADATA_LUA_PATH, verbose)) {
|
|
59
|
+
(0, utils_1.error)(`${chalk_1.default.red("Failed to find the the custom stage metadata file at:")} ${chalk_1.default.green(METADATA_LUA_PATH)}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* This parses all of the end-user's XML files and gathers metadata about all of the rooms within.
|
|
64
|
+
* (In other words, this creates the full set of `CustomStageLua` objects.)
|
|
65
|
+
*/
|
|
66
|
+
async function getCustomStagesWithMetadata(customStagesTSConfig, verbose) {
|
|
67
|
+
if (!file.exists(METADATA_LUA_PATH, verbose)) {
|
|
68
|
+
(0, utils_1.error)(`${chalk_1.default.red("Failed to find the the custom stage metadata file at:")} ${chalk_1.default.green(METADATA_LUA_PATH)}`);
|
|
69
|
+
}
|
|
70
|
+
const customStagesLua = [];
|
|
71
|
+
for (const customStageTSConfig of customStagesTSConfig) {
|
|
72
|
+
// Some manual input validation was already performed in the `getCustomStagesFromTSConfig`
|
|
73
|
+
// function.
|
|
74
|
+
const { name } = customStageTSConfig;
|
|
75
|
+
const { xmlPath } = customStageTSConfig;
|
|
76
|
+
const resolvedXMLPath = path_1.default.resolve(constants_1.CWD, xmlPath);
|
|
77
|
+
if (!file.exists(resolvedXMLPath, verbose)) {
|
|
78
|
+
(0, utils_1.error)(`${chalk_1.default.red("Failed to find the custom stage XML file at:")} ${chalk_1.default.green(resolvedXMLPath)}`);
|
|
79
|
+
}
|
|
80
|
+
const xmlContents = file.read(resolvedXMLPath, verbose);
|
|
81
|
+
// eslint-disable-next-line no-await-in-loop
|
|
82
|
+
const jsonRoomsFile = (await xml2js_1.default.parseStringPromise(xmlContents));
|
|
83
|
+
const roomVariantSet = new Set();
|
|
84
|
+
const customStageRoomsMetadata = [];
|
|
85
|
+
for (const room of jsonRoomsFile.rooms.room) {
|
|
86
|
+
const typeString = room.$.type;
|
|
87
|
+
const type = (0, utils_1.parseIntSafe)(typeString);
|
|
88
|
+
if (Number.isNaN(type)) {
|
|
89
|
+
(0, utils_1.error)(`Failed to parse the type of one of the "${name}" custom stage rooms: ${typeString}`);
|
|
90
|
+
}
|
|
91
|
+
const variantString = room.$.variant;
|
|
92
|
+
const baseVariant = (0, utils_1.parseIntSafe)(variantString);
|
|
93
|
+
if (Number.isNaN(baseVariant)) {
|
|
94
|
+
(0, utils_1.error)(`Failed to parse the variant of one of the "${name}" custom stage rooms: ${variantString}`);
|
|
95
|
+
}
|
|
96
|
+
if (roomVariantSet.has(baseVariant)) {
|
|
97
|
+
(0, utils_1.error)(chalk_1.default.red(`There is more than one room with a variant of "${baseVariant}" in the "${name}" custom stage. Make sure that each room has a unique variant. (The room variant is also called the "ID" in Basement Renovator.)`));
|
|
98
|
+
}
|
|
99
|
+
roomVariantSet.add(baseVariant);
|
|
100
|
+
const roomVariantPrefix = customStageTSConfig.roomVariantPrefix * ROOM_VARIANT_MULTIPLIER;
|
|
101
|
+
const variant = roomVariantPrefix + baseVariant;
|
|
102
|
+
const subTypeString = room.$.subtype;
|
|
103
|
+
const subType = (0, utils_1.parseIntSafe)(subTypeString);
|
|
104
|
+
if (Number.isNaN(subType)) {
|
|
105
|
+
(0, utils_1.error)(`Failed to parse the sub-type of one of the "${name}" custom stage rooms: ${subTypeString}`);
|
|
106
|
+
}
|
|
107
|
+
const shapeString = room.$.shape;
|
|
108
|
+
const shape = (0, utils_1.parseIntSafe)(shapeString);
|
|
109
|
+
if (Number.isNaN(baseVariant)) {
|
|
110
|
+
(0, utils_1.error)(`Failed to parse the shape of one of the "${name}" custom stage rooms: ${shapeString}`);
|
|
111
|
+
}
|
|
112
|
+
const doorSlotFlags = (0, common_1.getJSONRoomDoorSlotFlags)(room);
|
|
113
|
+
const weightString = room.$.weight;
|
|
114
|
+
const weight = parseFloat(weightString);
|
|
115
|
+
if (Number.isNaN(baseVariant)) {
|
|
116
|
+
(0, utils_1.error)(`Failed to parse the weight of one of the "${name}" custom stage rooms: ${weightString}`);
|
|
117
|
+
}
|
|
118
|
+
const customStageRoomMetadata = {
|
|
119
|
+
type,
|
|
120
|
+
variant,
|
|
121
|
+
subType,
|
|
122
|
+
shape,
|
|
123
|
+
doorSlotFlags,
|
|
124
|
+
weight,
|
|
125
|
+
};
|
|
126
|
+
customStageRoomsMetadata.push(customStageRoomMetadata);
|
|
127
|
+
}
|
|
128
|
+
const customStageLua = {
|
|
129
|
+
...customStageTSConfig,
|
|
130
|
+
roomsMetadata: customStageRoomsMetadata,
|
|
131
|
+
};
|
|
132
|
+
customStagesLua.push(customStageLua);
|
|
133
|
+
}
|
|
134
|
+
return customStagesLua;
|
|
135
|
+
}
|
|
136
|
+
function convertCustomStagesToLua(customStages) {
|
|
137
|
+
const customStagesString = JSON.stringify(customStages);
|
|
138
|
+
const fakeTypeScriptFile = `return ${customStagesString}`;
|
|
139
|
+
const result = tstl.transpileString(fakeTypeScriptFile, {
|
|
140
|
+
noHeader: true,
|
|
141
|
+
});
|
|
142
|
+
if (result.file === undefined || result.file.lua === undefined) {
|
|
143
|
+
(0, utils_1.error)("Failed to convert the JSON metadata for the custom stages to a Lua file.");
|
|
144
|
+
}
|
|
145
|
+
return result.file.lua;
|
|
146
|
+
}
|
|
147
|
+
/** We combine all of the custom stages together and add them to "00.special rooms.xml". */
|
|
148
|
+
function combineCustomStageXMLs(customStagesTSConfig, verbose) {
|
|
149
|
+
let allRooms = "";
|
|
150
|
+
for (const customStageTSConfig of customStagesTSConfig) {
|
|
151
|
+
const xmlPath = path_1.default.resolve(constants_1.CWD, customStageTSConfig.xmlPath);
|
|
152
|
+
if (!file.exists(xmlPath, verbose)) {
|
|
153
|
+
(0, utils_1.error)(`${chalk_1.default.red("Failed to find the custom stage XML file at:")} ${chalk_1.default.green(xmlPath)}`);
|
|
154
|
+
}
|
|
155
|
+
const xmlContents = file.read(xmlPath, verbose);
|
|
156
|
+
// It is easier to work with the XML files as text rather than converting it to JSON and then
|
|
157
|
+
// converting it back to XML.
|
|
158
|
+
const lines = xmlContents.trim().split("\n");
|
|
159
|
+
// Remove the first line of "<?xml version="1.0" ?>".
|
|
160
|
+
lines.shift();
|
|
161
|
+
// Remove the second line of "<rooms>".
|
|
162
|
+
lines.shift();
|
|
163
|
+
// Remove the last line of "</rooms>".
|
|
164
|
+
lines.pop();
|
|
165
|
+
// Change the variants
|
|
166
|
+
for (let i = 0; i < lines.length; i++) {
|
|
167
|
+
const line = lines[i];
|
|
168
|
+
if (line === undefined) {
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
if (!line.includes("<room")) {
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
174
|
+
const match = line.match(VARIANT_REGEX);
|
|
175
|
+
if (match === null) {
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
const baseVariantString = match[1];
|
|
179
|
+
if (baseVariantString === undefined) {
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
const baseVariant = (0, utils_1.parseIntSafe)(baseVariantString);
|
|
183
|
+
if (Number.isNaN(baseVariant)) {
|
|
184
|
+
(0, utils_1.error)(`Failed to parse the variant of one of the custom stage rooms: ${baseVariantString}`);
|
|
185
|
+
}
|
|
186
|
+
const roomVariantPrefix = customStageTSConfig.roomVariantPrefix * ROOM_VARIANT_MULTIPLIER;
|
|
187
|
+
const variant = roomVariantPrefix + baseVariant;
|
|
188
|
+
const newLine = line
|
|
189
|
+
.replace(VARIANT_REGEX, ` variant="${variant}"`)
|
|
190
|
+
.replace(WEIGHT_REGEX, ' weight="0.0"');
|
|
191
|
+
lines[i] = newLine;
|
|
192
|
+
}
|
|
193
|
+
const modifiedRooms = lines.join("\n");
|
|
194
|
+
allRooms += modifiedRooms;
|
|
195
|
+
}
|
|
196
|
+
const combinedXMLFile = `
|
|
197
|
+
<?xml version="1.0" ?>
|
|
198
|
+
<rooms>
|
|
199
|
+
${allRooms}
|
|
200
|
+
</rooms>
|
|
201
|
+
`.trim();
|
|
202
|
+
const specialRoomsXMLPath = path_1.default.join(constants_1.MOD_SOURCE_PATH, "content", "rooms", "00.special rooms.xml");
|
|
203
|
+
file.write(specialRoomsXMLPath, combinedXMLFile, verbose);
|
|
204
|
+
// TODO: convert XML to STB
|
|
205
|
+
// TODO: no need to write XML to mod directory, only STB
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=customStage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customStage.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/customStage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DoorSlot = void 0;
|
|
4
|
+
var DoorSlot;
|
|
5
|
+
(function (DoorSlot) {
|
|
6
|
+
DoorSlot[DoorSlot["NO_DOOR_SLOT"] = -1] = "NO_DOOR_SLOT";
|
|
7
|
+
/** In a normal room, the left door. In a 2x2 room, the uppermost door on the left side. */
|
|
8
|
+
DoorSlot[DoorSlot["LEFT_0"] = 0] = "LEFT_0";
|
|
9
|
+
/** In a normal room, the top door. In a 2x2 room, the leftmost door on the top side. */
|
|
10
|
+
DoorSlot[DoorSlot["UP_0"] = 1] = "UP_0";
|
|
11
|
+
/** In a normal room, the right door. In a 2x2 room, the uppermost door on the right side. */
|
|
12
|
+
DoorSlot[DoorSlot["RIGHT_0"] = 2] = "RIGHT_0";
|
|
13
|
+
/** In a normal room, the bottom door. In a 2x2 room, the leftmost door on the bottom side. */
|
|
14
|
+
DoorSlot[DoorSlot["DOWN_0"] = 3] = "DOWN_0";
|
|
15
|
+
/** In a 2x2 room, the bottommost door on the left side. */
|
|
16
|
+
DoorSlot[DoorSlot["LEFT_1"] = 4] = "LEFT_1";
|
|
17
|
+
/** In a 2x2 room, the rightmost door on the top side. */
|
|
18
|
+
DoorSlot[DoorSlot["UP_1"] = 5] = "UP_1";
|
|
19
|
+
/** In a 2x2 room, the bottommost door on the right side. */
|
|
20
|
+
DoorSlot[DoorSlot["RIGHT_1"] = 6] = "RIGHT_1";
|
|
21
|
+
/** In a 2x2 room, the rightmost door on the bottom side. */
|
|
22
|
+
DoorSlot[DoorSlot["DOWN_1"] = 7] = "DOWN_1";
|
|
23
|
+
})(DoorSlot = exports.DoorSlot || (exports.DoorSlot = {}));
|
|
24
|
+
//# sourceMappingURL=DoorSlot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DoorSlot.js","sourceRoot":"","sources":["../../../../../packages/isaacscript-cli/src/enums/DoorSlot.ts"],"names":[],"mappings":";;;AAAA,IAAY,QA0BX;AA1BD,WAAY,QAAQ;IAClB,wDAAiB,CAAA;IAEjB,2FAA2F;IAC3F,2CAAU,CAAA;IAEV,wFAAwF;IACxF,uCAAQ,CAAA;IAER,6FAA6F;IAC7F,6CAAW,CAAA;IAEX,8FAA8F;IAC9F,2CAAU,CAAA;IAEV,2DAA2D;IAC3D,2CAAU,CAAA;IAEV,yDAAyD;IACzD,uCAAQ,CAAA;IAER,4DAA4D;IAC5D,6CAAW,CAAA;IAEX,4DAA4D;IAC5D,2CAAU,CAAA;AACZ,CAAC,EA1BW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QA0BnB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable no-bitwise */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.DoorSlotFlagZero = exports.DoorSlotFlag = void 0;
|
|
5
|
+
const DoorSlot_1 = require("./DoorSlot");
|
|
6
|
+
/**
|
|
7
|
+
* For `GridEntityType.DOOR` (16)
|
|
8
|
+
*
|
|
9
|
+
* Corresponds to `DoorSlotFlag`.
|
|
10
|
+
*
|
|
11
|
+
* This is represented as an object instead of an enum due to limitations with TypeScript enums. (We
|
|
12
|
+
* want this type to be a child of the `BitFlag` type.)
|
|
13
|
+
*
|
|
14
|
+
* @enum
|
|
15
|
+
* @notExported
|
|
16
|
+
*/
|
|
17
|
+
const DoorSlotFlagInternal = {
|
|
18
|
+
/** 1 << 0 */
|
|
19
|
+
LEFT_0: 1 << DoorSlot_1.DoorSlot.LEFT_0,
|
|
20
|
+
/** 1 << 1 */
|
|
21
|
+
UP_0: 1 << DoorSlot_1.DoorSlot.UP_0,
|
|
22
|
+
/** 1 << 2 */
|
|
23
|
+
RIGHT_0: 1 << DoorSlot_1.DoorSlot.RIGHT_0,
|
|
24
|
+
/** 1 << 3 */
|
|
25
|
+
DOWN_0: 1 << DoorSlot_1.DoorSlot.DOWN_0,
|
|
26
|
+
/** 1 << 4 */
|
|
27
|
+
LEFT_1: 1 << DoorSlot_1.DoorSlot.LEFT_1,
|
|
28
|
+
/** 1 << 5 */
|
|
29
|
+
UP_1: 1 << DoorSlot_1.DoorSlot.UP_1,
|
|
30
|
+
/** 1 << 6 */
|
|
31
|
+
RIGHT_1: 1 << DoorSlot_1.DoorSlot.RIGHT_1,
|
|
32
|
+
/** 1 << 7 */
|
|
33
|
+
DOWN_1: 1 << DoorSlot_1.DoorSlot.DOWN_1,
|
|
34
|
+
};
|
|
35
|
+
exports.DoorSlotFlag = DoorSlotFlagInternal;
|
|
36
|
+
exports.DoorSlotFlagZero = 0;
|
|
37
|
+
//# sourceMappingURL=DoorSlotFlag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DoorSlotFlag.js","sourceRoot":"","sources":["../../../../../packages/isaacscript-cli/src/enums/DoorSlotFlag.ts"],"names":[],"mappings":";AAAA,+BAA+B;;;AAE/B,yCAAsC;AAOtC;;;;;;;;;;GAUG;AACH,MAAM,oBAAoB,GAAG;IAC3B,aAAa;IACb,MAAM,EAAE,CAAC,IAAI,mBAAQ,CAAC,MAAM;IAE5B,aAAa;IACb,IAAI,EAAE,CAAC,IAAI,mBAAQ,CAAC,IAAI;IAExB,aAAa;IACb,OAAO,EAAE,CAAC,IAAI,mBAAQ,CAAC,OAAO;IAE9B,aAAa;IACb,MAAM,EAAE,CAAC,IAAI,mBAAQ,CAAC,MAAM;IAE5B,aAAa;IACb,MAAM,EAAE,CAAC,IAAI,mBAAQ,CAAC,MAAM;IAE5B,aAAa;IACb,IAAI,EAAE,CAAC,IAAI,mBAAQ,CAAC,IAAI;IAExB,aAAa;IACb,OAAO,EAAE,CAAC,IAAI,mBAAQ,CAAC,OAAO;IAE9B,aAAa;IACb,MAAM,EAAE,CAAC,IAAI,mBAAQ,CAAC,MAAM;CACpB,CAAC;AASE,QAAA,YAAY,GAAG,oBAAwC,CAAC;AAIxD,QAAA,gBAAgB,GAAG,CAA2B,CAAC"}
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackageManager.js","sourceRoot":"","sources":["../../../../../packages/isaacscript-cli/src/
|
|
1
|
+
{"version":3,"file":"PackageManager.js","sourceRoot":"","sources":["../../../../../packages/isaacscript-cli/src/enums/PackageManager.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,6BAAW,CAAA;IACX,+BAAa,CAAA;IACb,+BAAa,CAAA;AACf,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RoomShape = void 0;
|
|
4
|
+
var RoomShape;
|
|
5
|
+
(function (RoomShape) {
|
|
6
|
+
/**
|
|
7
|
+
* A "normal" room.
|
|
8
|
+
*
|
|
9
|
+
* The "SHAPE_" prefix is necessary because enums cannot start with a number.
|
|
10
|
+
*/
|
|
11
|
+
RoomShape[RoomShape["SHAPE_1x1"] = 1] = "SHAPE_1x1";
|
|
12
|
+
/** Narrow 1x1 horizontal. */
|
|
13
|
+
RoomShape[RoomShape["IH"] = 2] = "IH";
|
|
14
|
+
/** Narrow 1x1 vertical. */
|
|
15
|
+
RoomShape[RoomShape["IV"] = 3] = "IV";
|
|
16
|
+
/**
|
|
17
|
+
* 2x1 vertical.
|
|
18
|
+
*
|
|
19
|
+
* The "SHAPE_" prefix is necessary because enums cannot start with a number.
|
|
20
|
+
*/
|
|
21
|
+
RoomShape[RoomShape["SHAPE_1x2"] = 4] = "SHAPE_1x2";
|
|
22
|
+
/** Narrow 2x1 vertical. */
|
|
23
|
+
RoomShape[RoomShape["IIV"] = 5] = "IIV";
|
|
24
|
+
/**
|
|
25
|
+
* 2x1 horizontal.
|
|
26
|
+
*
|
|
27
|
+
* The "SHAPE_" prefix is necessary because enums cannot start with a number.
|
|
28
|
+
*/
|
|
29
|
+
RoomShape[RoomShape["SHAPE_2x1"] = 6] = "SHAPE_2x1";
|
|
30
|
+
/** Narrow 2x1 horizontal. */
|
|
31
|
+
RoomShape[RoomShape["IIH"] = 7] = "IIH";
|
|
32
|
+
/**
|
|
33
|
+
* The biggest room type.
|
|
34
|
+
*
|
|
35
|
+
* The "SHAPE_" prefix is necessary because enums cannot start with a number.
|
|
36
|
+
*/
|
|
37
|
+
RoomShape[RoomShape["SHAPE_2x2"] = 8] = "SHAPE_2x2";
|
|
38
|
+
/** Looks like a "⅃" with a gap in the top-left-hand corner. */
|
|
39
|
+
RoomShape[RoomShape["LTL"] = 9] = "LTL";
|
|
40
|
+
/** Looks like an "L" with a gap in the top-right-hand corner. */
|
|
41
|
+
RoomShape[RoomShape["LTR"] = 10] = "LTR";
|
|
42
|
+
/** Looks like a "⅂" with a gap in the bottom-left-hand corner. */
|
|
43
|
+
RoomShape[RoomShape["LBL"] = 11] = "LBL";
|
|
44
|
+
/** Looks like a "Г" with a gap in the bottom-right-hand corner. */
|
|
45
|
+
RoomShape[RoomShape["LBR"] = 12] = "LBR";
|
|
46
|
+
})(RoomShape = exports.RoomShape || (exports.RoomShape = {}));
|
|
47
|
+
//# sourceMappingURL=RoomShape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoomShape.js","sourceRoot":"","sources":["../../../../../packages/isaacscript-cli/src/enums/RoomShape.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAoDX;AApDD,WAAY,SAAS;IACnB;;;;OAIG;IACH,mDAAa,CAAA;IAEb,6BAA6B;IAC7B,qCAAM,CAAA;IAEN,2BAA2B;IAC3B,qCAAM,CAAA;IAEN;;;;OAIG;IACH,mDAAa,CAAA;IAEb,2BAA2B;IAC3B,uCAAO,CAAA;IAEP;;;;OAIG;IACH,mDAAa,CAAA;IAEb,6BAA6B;IAC7B,uCAAO,CAAA;IAEP;;;;OAIG;IACH,mDAAa,CAAA;IAEb,+DAA+D;IAC/D,uCAAO,CAAA;IAEP,iEAAiE;IACjE,wCAAQ,CAAA;IAER,kEAAkE;IAClE,wCAAQ,CAAA;IAER,mEAAmE;IACnE,wCAAQ,CAAA;AACV,CAAC,EApDW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAoDpB"}
|