isaacscript-common 17.1.0 → 17.2.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/dist/index.d.ts CHANGED
@@ -4556,6 +4556,16 @@ export declare function getEffects(effectVariant?: EffectVariant, subType?: numb
4556
4556
  */
4557
4557
  export declare function getEffectsList(player: EntityPlayer): TemporaryEffect[];
4558
4558
 
4559
+ /**
4560
+ * Helper function to get the English name of the level. For example, "Caves 1".
4561
+ *
4562
+ * This is useful because the `Level.GetName` method returns a localized version of the level name,
4563
+ * which will not display correctly on some fonts.
4564
+ *
4565
+ * Note that this returns "Blue Womb" instead of "???" for stage 9.
4566
+ */
4567
+ export declare function getEnglishLevelName(stage: LevelStage, stageType: StageType): string;
4568
+
4559
4569
  /**
4560
4570
  * Helper function to get all of the entities in the room or all of the entities that match a
4561
4571
  * specific entity type / variant / sub-type.
@@ -6630,8 +6640,8 @@ export declare function gridPositionToWorldPosition(gridPosition: Vector): Vecto
6630
6640
  * const value = MyEnumToString[MyEnum.Value2];
6631
6641
  * ```
6632
6642
  */
6633
- export declare type HasAllEnumKeys<T extends string | number> = {
6634
- readonly [key in T]: unknown;
6643
+ export declare type HasAllEnumKeys<Enum extends string | number, T> = {
6644
+ readonly [key in Enum]: T;
6635
6645
  };
6636
6646
 
6637
6647
  /**
@@ -1,6 +1,6 @@
1
1
  --[[
2
2
 
3
- isaacscript-common 17.1.0
3
+ isaacscript-common 17.2.0
4
4
 
5
5
  This is the "isaacscript-common" library, which was created with the IsaacScript tool.
6
6
 
@@ -25067,6 +25067,119 @@ function ____exports.reloadRoom(self)
25067
25067
  local roomGridIndex = getRoomGridIndex(nil)
25068
25068
  ____exports.teleport(nil, roomGridIndex, Direction.NO_DIRECTION, RoomTransitionAnim.FADE)
25069
25069
  end
25070
+ return ____exports
25071
+ end,
25072
+ ["src.objects.englishLevelNames"] = function(...)
25073
+ local ____exports = {}
25074
+ local ____isaac_2Dtypescript_2Ddefinitions = require("lua_modules.isaac-typescript-definitions.dist.src.index")
25075
+ local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
25076
+ local StageType = ____isaac_2Dtypescript_2Ddefinitions.StageType
25077
+ ____exports.ENGLISH_LEVEL_NAMES = {
25078
+ [LevelStage.BASEMENT_1] = {
25079
+ [StageType.ORIGINAL] = "Basement 1",
25080
+ [StageType.WRATH_OF_THE_LAMB] = "Cellar 1",
25081
+ [StageType.AFTERBIRTH] = "Burning Basement 1",
25082
+ [StageType.GREED_MODE] = "Basement",
25083
+ [StageType.REPENTANCE] = "Downpour 1",
25084
+ [StageType.REPENTANCE_B] = "Dross 1"
25085
+ },
25086
+ [LevelStage.BASEMENT_2] = {
25087
+ [StageType.ORIGINAL] = "Basement 2",
25088
+ [StageType.WRATH_OF_THE_LAMB] = "Cellar 2",
25089
+ [StageType.AFTERBIRTH] = "Burning Basement 2",
25090
+ [StageType.GREED_MODE] = "Basement",
25091
+ [StageType.REPENTANCE] = "Downpour 2",
25092
+ [StageType.REPENTANCE_B] = "Dross 2"
25093
+ },
25094
+ [LevelStage.CAVES_1] = {
25095
+ [StageType.ORIGINAL] = "Caves 1",
25096
+ [StageType.WRATH_OF_THE_LAMB] = "Catacombs 1",
25097
+ [StageType.AFTERBIRTH] = "Flooded Caves 1",
25098
+ [StageType.GREED_MODE] = "Caves",
25099
+ [StageType.REPENTANCE] = "Mines 1",
25100
+ [StageType.REPENTANCE_B] = "Ashpit 1"
25101
+ },
25102
+ [LevelStage.CAVES_2] = {
25103
+ [StageType.ORIGINAL] = "Caves 2",
25104
+ [StageType.WRATH_OF_THE_LAMB] = "Catacombs 2",
25105
+ [StageType.AFTERBIRTH] = "Flooded Caves 2",
25106
+ [StageType.GREED_MODE] = "Caves",
25107
+ [StageType.REPENTANCE] = "Mines 2",
25108
+ [StageType.REPENTANCE_B] = "Ashpit 2"
25109
+ },
25110
+ [LevelStage.DEPTHS_1] = {
25111
+ [StageType.ORIGINAL] = "Depths 1",
25112
+ [StageType.WRATH_OF_THE_LAMB] = "Necropolis 1",
25113
+ [StageType.AFTERBIRTH] = "Dank Depths 1",
25114
+ [StageType.GREED_MODE] = "Depths",
25115
+ [StageType.REPENTANCE] = "Mausoleum 1",
25116
+ [StageType.REPENTANCE_B] = "Gehenna 1"
25117
+ },
25118
+ [LevelStage.DEPTHS_2] = {
25119
+ [StageType.ORIGINAL] = "Depths 2",
25120
+ [StageType.WRATH_OF_THE_LAMB] = "Necropolis 2",
25121
+ [StageType.AFTERBIRTH] = "Dank Depths 2",
25122
+ [StageType.GREED_MODE] = "Depths",
25123
+ [StageType.REPENTANCE] = "Mausoleum 2",
25124
+ [StageType.REPENTANCE_B] = "Gehenna 2"
25125
+ },
25126
+ [LevelStage.WOMB_1] = {
25127
+ [StageType.ORIGINAL] = "Womb 1",
25128
+ [StageType.WRATH_OF_THE_LAMB] = "Utero 1",
25129
+ [StageType.AFTERBIRTH] = "Scarred Womb 1",
25130
+ [StageType.GREED_MODE] = "Womb",
25131
+ [StageType.REPENTANCE] = "Corpse 1",
25132
+ [StageType.REPENTANCE_B] = "Mortis 1"
25133
+ },
25134
+ [LevelStage.WOMB_2] = {
25135
+ [StageType.ORIGINAL] = "Womb 2",
25136
+ [StageType.WRATH_OF_THE_LAMB] = "Utero 2",
25137
+ [StageType.AFTERBIRTH] = "Scarred Womb 2",
25138
+ [StageType.GREED_MODE] = "Womb",
25139
+ [StageType.REPENTANCE] = "Corpse 2",
25140
+ [StageType.REPENTANCE_B] = "Mortis 2"
25141
+ },
25142
+ [LevelStage.BLUE_WOMB] = {
25143
+ [StageType.ORIGINAL] = "Blue Womb",
25144
+ [StageType.WRATH_OF_THE_LAMB] = "Blue Womb",
25145
+ [StageType.AFTERBIRTH] = "Blue Womb",
25146
+ [StageType.GREED_MODE] = "Blue Womb",
25147
+ [StageType.REPENTANCE] = "Blue Womb",
25148
+ [StageType.REPENTANCE_B] = "Blue Womb"
25149
+ },
25150
+ [LevelStage.SHEOL_CATHEDRAL] = {
25151
+ [StageType.ORIGINAL] = "Sheol",
25152
+ [StageType.WRATH_OF_THE_LAMB] = "Cathedral",
25153
+ [StageType.AFTERBIRTH] = "Undefined",
25154
+ [StageType.GREED_MODE] = "Sheol",
25155
+ [StageType.REPENTANCE] = "Undefined",
25156
+ [StageType.REPENTANCE_B] = "Undefined"
25157
+ },
25158
+ [LevelStage.DARK_ROOM_CHEST] = {
25159
+ [StageType.ORIGINAL] = "Dark Room",
25160
+ [StageType.WRATH_OF_THE_LAMB] = "The Chest",
25161
+ [StageType.AFTERBIRTH] = "Undefined",
25162
+ [StageType.GREED_MODE] = "The Shop",
25163
+ [StageType.REPENTANCE] = "Undefined",
25164
+ [StageType.REPENTANCE_B] = "Undefined"
25165
+ },
25166
+ [LevelStage.THE_VOID] = {
25167
+ [StageType.ORIGINAL] = "The Void",
25168
+ [StageType.WRATH_OF_THE_LAMB] = "The Void",
25169
+ [StageType.AFTERBIRTH] = "The Void",
25170
+ [StageType.GREED_MODE] = "The Void",
25171
+ [StageType.REPENTANCE] = "The Void",
25172
+ [StageType.REPENTANCE_B] = "The Void"
25173
+ },
25174
+ [LevelStage.HOME] = {
25175
+ [StageType.ORIGINAL] = "Home",
25176
+ [StageType.WRATH_OF_THE_LAMB] = "Home",
25177
+ [StageType.AFTERBIRTH] = "Home",
25178
+ [StageType.GREED_MODE] = "Home",
25179
+ [StageType.REPENTANCE] = "Home",
25180
+ [StageType.REPENTANCE_B] = "Home"
25181
+ }
25182
+ }
25070
25183
  return ____exports
25071
25184
  end,
25072
25185
  ["src.objects.roomTypeGotoPrefixes"] = function(...)
@@ -25142,6 +25255,8 @@ local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
25142
25255
  local StageType = ____isaac_2Dtypescript_2Ddefinitions.StageType
25143
25256
  local ____cachedClasses = require("src.core.cachedClasses")
25144
25257
  local game = ____cachedClasses.game
25258
+ local ____englishLevelNames = require("src.objects.englishLevelNames")
25259
+ local ENGLISH_LEVEL_NAMES = ____englishLevelNames.ENGLISH_LEVEL_NAMES
25145
25260
  local ____roomTypeGotoPrefixes = require("src.objects.roomTypeGotoPrefixes")
25146
25261
  local ROOM_TYPE_GOTO_PREFIXES = ____roomTypeGotoPrefixes.ROOM_TYPE_GOTO_PREFIXES
25147
25262
  local ____stageTypeSuffixes = require("src.objects.stageTypeSuffixes")
@@ -25197,6 +25312,10 @@ function ____exports.getEffectiveStage(self)
25197
25312
  end
25198
25313
  return stage
25199
25314
  end
25315
+ function ____exports.getEnglishLevelName(self, stage, stageType)
25316
+ local stageNames = ENGLISH_LEVEL_NAMES[stage]
25317
+ return stageNames[stageType]
25318
+ end
25200
25319
  function ____exports.getGotoCommand(self, roomType, roomVariant)
25201
25320
  local prefix = ROOM_TYPE_GOTO_PREFIXES[roomType]
25202
25321
  return (("goto " .. prefix) .. ".") .. tostring(roomVariant)
@@ -15,6 +15,15 @@ export declare function calculateStageTypeRepentance(stage: LevelStage): StageTy
15
15
  * consider Downpour 2 to have a stage of 3.
16
16
  */
17
17
  export declare function getEffectiveStage(): int;
18
+ /**
19
+ * Helper function to get the English name of the level. For example, "Caves 1".
20
+ *
21
+ * This is useful because the `Level.GetName` method returns a localized version of the level name,
22
+ * which will not display correctly on some fonts.
23
+ *
24
+ * Note that this returns "Blue Womb" instead of "???" for stage 9.
25
+ */
26
+ export declare function getEnglishLevelName(stage: LevelStage, stageType: StageType): string;
18
27
  /**
19
28
  * Helper function to get the corresponding "goto" console command that would correspond to the
20
29
  * provided room type and room variant.
@@ -1 +1 @@
1
- {"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../../src/functions/stage.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,QAAQ,EACR,SAAS,EACV,MAAM,8BAA8B,CAAC;AAOtC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CA6B/D;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAmBzE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,CASvC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,GAAG,MAAM,CAG3E;AAED,6CAA6C;AAC7C,wBAAgB,QAAQ,IAAI,UAAU,CAIrC;AAED,iDAAiD;AACjD,wBAAgB,YAAY,IAAI,SAAS,CAIxC;AAED,8FAA8F;AAC9F,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAIvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAI/D;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED,wBAAgB,WAAW,IAAI,OAAO,CASrC;AAED,wBAAgB,OAAO,IAAI,OAAO,CASjC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAQpC;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAUtC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAKtC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAK3C;AAED,wBAAgB,OAAO,IAAI,OAAO,CAQjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,SAAS,EACpB,MAAM,UAAQ,GACb,IAAI,CAUN;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAE9D"}
1
+ {"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../../src/functions/stage.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,QAAQ,EACR,SAAS,EACV,MAAM,8BAA8B,CAAC;AAQtC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CA6B/D;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAmBzE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,CASvC;AAGD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,SAAS,GACnB,MAAM,CAGR;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,GAAG,MAAM,CAG3E;AAED,6CAA6C;AAC7C,wBAAgB,QAAQ,IAAI,UAAU,CAIrC;AAED,iDAAiD;AACjD,wBAAgB,YAAY,IAAI,SAAS,CAIxC;AAED,8FAA8F;AAC9F,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAIvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAI/D;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED,wBAAgB,WAAW,IAAI,OAAO,CASrC;AAED,wBAAgB,OAAO,IAAI,OAAO,CASjC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAQpC;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAUtC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAKtC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAK3C;AAED,wBAAgB,OAAO,IAAI,OAAO,CAQjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,SAAS,EACpB,MAAM,UAAQ,GACb,IAAI,CAUN;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAE9D"}
@@ -5,6 +5,8 @@ local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
5
5
  local StageType = ____isaac_2Dtypescript_2Ddefinitions.StageType
6
6
  local ____cachedClasses = require("src.core.cachedClasses")
7
7
  local game = ____cachedClasses.game
8
+ local ____englishLevelNames = require("src.objects.englishLevelNames")
9
+ local ENGLISH_LEVEL_NAMES = ____englishLevelNames.ENGLISH_LEVEL_NAMES
8
10
  local ____roomTypeGotoPrefixes = require("src.objects.roomTypeGotoPrefixes")
9
11
  local ROOM_TYPE_GOTO_PREFIXES = ____roomTypeGotoPrefixes.ROOM_TYPE_GOTO_PREFIXES
10
12
  local ____stageTypeSuffixes = require("src.objects.stageTypeSuffixes")
@@ -75,6 +77,16 @@ function ____exports.getEffectiveStage(self)
75
77
  end
76
78
  return stage
77
79
  end
80
+ --- Helper function to get the English name of the level. For example, "Caves 1".
81
+ --
82
+ -- This is useful because the `Level.GetName` method returns a localized version of the level name,
83
+ -- which will not display correctly on some fonts.
84
+ --
85
+ -- Note that this returns "Blue Womb" instead of "???" for stage 9.
86
+ function ____exports.getEnglishLevelName(self, stage, stageType)
87
+ local stageNames = ENGLISH_LEVEL_NAMES[stage]
88
+ return stageNames[stageType]
89
+ end
78
90
  --- Helper function to get the corresponding "goto" console command that would correspond to the
79
91
  -- provided room type and room variant.
80
92
  function ____exports.getGotoCommand(self, roomType, roomVariant)
@@ -1,5 +1,6 @@
1
1
  import { CardType } from "isaac-typescript-definitions";
2
2
  export declare const DEFAULT_CARD_DESCRIPTION = "Unknown";
3
+ /** This is a temporary map due to missing features in the vanilla API. */
3
4
  export declare const CARD_DESCRIPTIONS: {
4
5
  readonly [key in CardType]: string;
5
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"cardDescriptions.d.ts","sourceRoot":"","sources":["../../../src/objects/cardDescriptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAGlD,eAAO,MAAM,iBAAiB,EAAE;IAAE,QAAQ,EAAE,GAAG,IAAI,QAAQ,GAAG,MAAM;CAmG1D,CAAC"}
1
+ {"version":3,"file":"cardDescriptions.d.ts","sourceRoot":"","sources":["../../../src/objects/cardDescriptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAElD,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,EAAE;IAAE,QAAQ,EAAE,GAAG,IAAI,QAAQ,GAAG,MAAM;CAmG1D,CAAC"}
@@ -2,6 +2,7 @@ local ____exports = {}
2
2
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
3
3
  local CardType = ____isaac_2Dtypescript_2Ddefinitions.CardType
4
4
  ____exports.DEFAULT_CARD_DESCRIPTION = "Unknown"
5
+ --- This is a temporary map due to missing features in the vanilla API.
5
6
  ____exports.CARD_DESCRIPTIONS = {
6
7
  [CardType.NULL] = ____exports.DEFAULT_CARD_DESCRIPTION,
7
8
  [CardType.FOOL] = "Where journey begins",
@@ -1,5 +1,6 @@
1
1
  import { CardType } from "isaac-typescript-definitions";
2
2
  export declare const DEFAULT_CARD_NAME = "Unknown";
3
+ /** This is a temporary map due to missing features in the vanilla API. */
3
4
  export declare const CARD_NAMES: {
4
5
  readonly [key in CardType]: string;
5
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"cardNames.d.ts","sourceRoot":"","sources":["../../../src/objects/cardNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAG3C,eAAO,MAAM,UAAU,EAAE;IAAE,QAAQ,EAAE,GAAG,IAAI,QAAQ,GAAG,MAAM;CAmGnD,CAAC"}
1
+ {"version":3,"file":"cardNames.d.ts","sourceRoot":"","sources":["../../../src/objects/cardNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,0EAA0E;AAC1E,eAAO,MAAM,UAAU,EAAE;IAAE,QAAQ,EAAE,GAAG,IAAI,QAAQ,GAAG,MAAM;CAmGnD,CAAC"}
@@ -2,6 +2,7 @@ local ____exports = {}
2
2
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
3
3
  local CardType = ____isaac_2Dtypescript_2Ddefinitions.CardType
4
4
  ____exports.DEFAULT_CARD_NAME = "Unknown"
5
+ --- This is a temporary map due to missing features in the vanilla API.
5
6
  ____exports.CARD_NAMES = {
6
7
  [CardType.NULL] = ____exports.DEFAULT_CARD_NAME,
7
8
  [CardType.FOOL] = "0 - The Fool",
@@ -0,0 +1,15 @@
1
+ import { LevelStage, StageType } from "isaac-typescript-definitions";
2
+ /**
3
+ * A mapping of stage and stage types to the corresponding English level name.
4
+ *
5
+ * This is useful because the `Level.GetName` method returns a localized version of the level name,
6
+ * which will not display correctly on some fonts.
7
+ *
8
+ * Note that this contains "Blue Womb" instead of "???" for stage 9.
9
+ */
10
+ export declare const ENGLISH_LEVEL_NAMES: {
11
+ readonly [levelStage in LevelStage]: {
12
+ readonly [stageType in StageType]: string;
13
+ };
14
+ };
15
+ //# sourceMappingURL=englishLevelNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"englishLevelNames.d.ts","sourceRoot":"","sources":["../../../src/objects/englishLevelNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGrE;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE;IAChC,QAAQ,EAAE,UAAU,IAAI,UAAU,GAAG;QACnC,QAAQ,EAAE,SAAS,IAAI,SAAS,GAAG,MAAM;KAC1C;CA0GO,CAAC"}
@@ -0,0 +1,117 @@
1
+ local ____exports = {}
2
+ local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
3
+ local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
4
+ local StageType = ____isaac_2Dtypescript_2Ddefinitions.StageType
5
+ --- A mapping of stage and stage types to the corresponding English level name.
6
+ --
7
+ -- This is useful because the `Level.GetName` method returns a localized version of the level name,
8
+ -- which will not display correctly on some fonts.
9
+ --
10
+ -- Note that this contains "Blue Womb" instead of "???" for stage 9.
11
+ ____exports.ENGLISH_LEVEL_NAMES = {
12
+ [LevelStage.BASEMENT_1] = {
13
+ [StageType.ORIGINAL] = "Basement 1",
14
+ [StageType.WRATH_OF_THE_LAMB] = "Cellar 1",
15
+ [StageType.AFTERBIRTH] = "Burning Basement 1",
16
+ [StageType.GREED_MODE] = "Basement",
17
+ [StageType.REPENTANCE] = "Downpour 1",
18
+ [StageType.REPENTANCE_B] = "Dross 1"
19
+ },
20
+ [LevelStage.BASEMENT_2] = {
21
+ [StageType.ORIGINAL] = "Basement 2",
22
+ [StageType.WRATH_OF_THE_LAMB] = "Cellar 2",
23
+ [StageType.AFTERBIRTH] = "Burning Basement 2",
24
+ [StageType.GREED_MODE] = "Basement",
25
+ [StageType.REPENTANCE] = "Downpour 2",
26
+ [StageType.REPENTANCE_B] = "Dross 2"
27
+ },
28
+ [LevelStage.CAVES_1] = {
29
+ [StageType.ORIGINAL] = "Caves 1",
30
+ [StageType.WRATH_OF_THE_LAMB] = "Catacombs 1",
31
+ [StageType.AFTERBIRTH] = "Flooded Caves 1",
32
+ [StageType.GREED_MODE] = "Caves",
33
+ [StageType.REPENTANCE] = "Mines 1",
34
+ [StageType.REPENTANCE_B] = "Ashpit 1"
35
+ },
36
+ [LevelStage.CAVES_2] = {
37
+ [StageType.ORIGINAL] = "Caves 2",
38
+ [StageType.WRATH_OF_THE_LAMB] = "Catacombs 2",
39
+ [StageType.AFTERBIRTH] = "Flooded Caves 2",
40
+ [StageType.GREED_MODE] = "Caves",
41
+ [StageType.REPENTANCE] = "Mines 2",
42
+ [StageType.REPENTANCE_B] = "Ashpit 2"
43
+ },
44
+ [LevelStage.DEPTHS_1] = {
45
+ [StageType.ORIGINAL] = "Depths 1",
46
+ [StageType.WRATH_OF_THE_LAMB] = "Necropolis 1",
47
+ [StageType.AFTERBIRTH] = "Dank Depths 1",
48
+ [StageType.GREED_MODE] = "Depths",
49
+ [StageType.REPENTANCE] = "Mausoleum 1",
50
+ [StageType.REPENTANCE_B] = "Gehenna 1"
51
+ },
52
+ [LevelStage.DEPTHS_2] = {
53
+ [StageType.ORIGINAL] = "Depths 2",
54
+ [StageType.WRATH_OF_THE_LAMB] = "Necropolis 2",
55
+ [StageType.AFTERBIRTH] = "Dank Depths 2",
56
+ [StageType.GREED_MODE] = "Depths",
57
+ [StageType.REPENTANCE] = "Mausoleum 2",
58
+ [StageType.REPENTANCE_B] = "Gehenna 2"
59
+ },
60
+ [LevelStage.WOMB_1] = {
61
+ [StageType.ORIGINAL] = "Womb 1",
62
+ [StageType.WRATH_OF_THE_LAMB] = "Utero 1",
63
+ [StageType.AFTERBIRTH] = "Scarred Womb 1",
64
+ [StageType.GREED_MODE] = "Womb",
65
+ [StageType.REPENTANCE] = "Corpse 1",
66
+ [StageType.REPENTANCE_B] = "Mortis 1"
67
+ },
68
+ [LevelStage.WOMB_2] = {
69
+ [StageType.ORIGINAL] = "Womb 2",
70
+ [StageType.WRATH_OF_THE_LAMB] = "Utero 2",
71
+ [StageType.AFTERBIRTH] = "Scarred Womb 2",
72
+ [StageType.GREED_MODE] = "Womb",
73
+ [StageType.REPENTANCE] = "Corpse 2",
74
+ [StageType.REPENTANCE_B] = "Mortis 2"
75
+ },
76
+ [LevelStage.BLUE_WOMB] = {
77
+ [StageType.ORIGINAL] = "Blue Womb",
78
+ [StageType.WRATH_OF_THE_LAMB] = "Blue Womb",
79
+ [StageType.AFTERBIRTH] = "Blue Womb",
80
+ [StageType.GREED_MODE] = "Blue Womb",
81
+ [StageType.REPENTANCE] = "Blue Womb",
82
+ [StageType.REPENTANCE_B] = "Blue Womb"
83
+ },
84
+ [LevelStage.SHEOL_CATHEDRAL] = {
85
+ [StageType.ORIGINAL] = "Sheol",
86
+ [StageType.WRATH_OF_THE_LAMB] = "Cathedral",
87
+ [StageType.AFTERBIRTH] = "Undefined",
88
+ [StageType.GREED_MODE] = "Sheol",
89
+ [StageType.REPENTANCE] = "Undefined",
90
+ [StageType.REPENTANCE_B] = "Undefined"
91
+ },
92
+ [LevelStage.DARK_ROOM_CHEST] = {
93
+ [StageType.ORIGINAL] = "Dark Room",
94
+ [StageType.WRATH_OF_THE_LAMB] = "The Chest",
95
+ [StageType.AFTERBIRTH] = "Undefined",
96
+ [StageType.GREED_MODE] = "The Shop",
97
+ [StageType.REPENTANCE] = "Undefined",
98
+ [StageType.REPENTANCE_B] = "Undefined"
99
+ },
100
+ [LevelStage.THE_VOID] = {
101
+ [StageType.ORIGINAL] = "The Void",
102
+ [StageType.WRATH_OF_THE_LAMB] = "The Void",
103
+ [StageType.AFTERBIRTH] = "The Void",
104
+ [StageType.GREED_MODE] = "The Void",
105
+ [StageType.REPENTANCE] = "The Void",
106
+ [StageType.REPENTANCE_B] = "The Void"
107
+ },
108
+ [LevelStage.HOME] = {
109
+ [StageType.ORIGINAL] = "Home",
110
+ [StageType.WRATH_OF_THE_LAMB] = "Home",
111
+ [StageType.AFTERBIRTH] = "Home",
112
+ [StageType.GREED_MODE] = "Home",
113
+ [StageType.REPENTANCE] = "Home",
114
+ [StageType.REPENTANCE_B] = "Home"
115
+ }
116
+ }
117
+ return ____exports
@@ -20,7 +20,7 @@
20
20
  * const value = MyEnumToString[MyEnum.Value2];
21
21
  * ```
22
22
  */
23
- export type HasAllEnumKeys<T extends string | number> = {
24
- readonly [key in T]: unknown;
23
+ export type HasAllEnumKeys<Enum extends string | number, T> = {
24
+ readonly [key in Enum]: T;
25
25
  };
26
26
  //# sourceMappingURL=HasAllEnumKeys.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HasAllEnumKeys.d.ts","sourceRoot":"","sources":["../../../src/types/HasAllEnumKeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACtD,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO;CAC7B,CAAC"}
1
+ {"version":3,"file":"HasAllEnumKeys.d.ts","sourceRoot":"","sources":["../../../src/types/HasAllEnumKeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,cAAc,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI;IAC5D,QAAQ,EAAE,GAAG,IAAI,IAAI,GAAG,CAAC;CAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "17.1.0",
3
+ "version": "17.2.0",
4
4
  "description": "Helper functions and features for IsaacScript mods.",
5
5
  "keywords": [
6
6
  "isaac",
@@ -5,6 +5,7 @@ import {
5
5
  StageType,
6
6
  } from "isaac-typescript-definitions";
7
7
  import { game } from "../core/cachedClasses";
8
+ import { ENGLISH_LEVEL_NAMES } from "../objects/englishLevelNames";
8
9
  import { ROOM_TYPE_GOTO_PREFIXES } from "../objects/roomTypeGotoPrefixes";
9
10
  import { STAGE_TYPE_SUFFIXES } from "../objects/stageTypeSuffixes";
10
11
  import { STAGE_TYPE_TO_LETTER } from "../objects/stageTypeToLetter";
@@ -86,6 +87,23 @@ export function getEffectiveStage(): int {
86
87
  return stage;
87
88
  }
88
89
 
90
+ // eslint-disable-next-line isaacscript/complete-sentences-jsdoc
91
+ /**
92
+ * Helper function to get the English name of the level. For example, "Caves 1".
93
+ *
94
+ * This is useful because the `Level.GetName` method returns a localized version of the level name,
95
+ * which will not display correctly on some fonts.
96
+ *
97
+ * Note that this returns "Blue Womb" instead of "???" for stage 9.
98
+ */
99
+ export function getEnglishLevelName(
100
+ stage: LevelStage,
101
+ stageType: StageType,
102
+ ): string {
103
+ const stageNames = ENGLISH_LEVEL_NAMES[stage];
104
+ return stageNames[stageType];
105
+ }
106
+
89
107
  /**
90
108
  * Helper function to get the corresponding "goto" console command that would correspond to the
91
109
  * provided room type and room variant.
@@ -2,7 +2,7 @@ import { CardType } from "isaac-typescript-definitions";
2
2
 
3
3
  export const DEFAULT_CARD_DESCRIPTION = "Unknown";
4
4
 
5
- // This is a temporary map due to missing features in the vanilla API.
5
+ /** This is a temporary map due to missing features in the vanilla API. */
6
6
  export const CARD_DESCRIPTIONS: { readonly [key in CardType]: string } = {
7
7
  [CardType.NULL]: DEFAULT_CARD_DESCRIPTION, // 0
8
8
  [CardType.FOOL]: "Where journey begins", // 1
@@ -2,7 +2,7 @@ import { CardType } from "isaac-typescript-definitions";
2
2
 
3
3
  export const DEFAULT_CARD_NAME = "Unknown";
4
4
 
5
- // This is a temporary map due to missing features in the vanilla API.
5
+ /** This is a temporary map due to missing features in the vanilla API. */
6
6
  export const CARD_NAMES: { readonly [key in CardType]: string } = {
7
7
  [CardType.NULL]: DEFAULT_CARD_NAME,
8
8
  [CardType.FOOL]: "0 - The Fool",
@@ -0,0 +1,121 @@
1
+ import { LevelStage, StageType } from "isaac-typescript-definitions";
2
+
3
+ // eslint-disable-next-line isaacscript/complete-sentences-jsdoc
4
+ /**
5
+ * A mapping of stage and stage types to the corresponding English level name.
6
+ *
7
+ * This is useful because the `Level.GetName` method returns a localized version of the level name,
8
+ * which will not display correctly on some fonts.
9
+ *
10
+ * Note that this contains "Blue Womb" instead of "???" for stage 9.
11
+ */
12
+ export const ENGLISH_LEVEL_NAMES: {
13
+ readonly [levelStage in LevelStage]: {
14
+ readonly [stageType in StageType]: string;
15
+ };
16
+ } = {
17
+ [LevelStage.BASEMENT_1]: {
18
+ [StageType.ORIGINAL]: "Basement 1",
19
+ [StageType.WRATH_OF_THE_LAMB]: "Cellar 1",
20
+ [StageType.AFTERBIRTH]: "Burning Basement 1",
21
+ [StageType.GREED_MODE]: "Basement",
22
+ [StageType.REPENTANCE]: "Downpour 1",
23
+ [StageType.REPENTANCE_B]: "Dross 1",
24
+ },
25
+ [LevelStage.BASEMENT_2]: {
26
+ [StageType.ORIGINAL]: "Basement 2",
27
+ [StageType.WRATH_OF_THE_LAMB]: "Cellar 2",
28
+ [StageType.AFTERBIRTH]: "Burning Basement 2",
29
+ [StageType.GREED_MODE]: "Basement",
30
+ [StageType.REPENTANCE]: "Downpour 2",
31
+ [StageType.REPENTANCE_B]: "Dross 2",
32
+ },
33
+ [LevelStage.CAVES_1]: {
34
+ [StageType.ORIGINAL]: "Caves 1",
35
+ [StageType.WRATH_OF_THE_LAMB]: "Catacombs 1",
36
+ [StageType.AFTERBIRTH]: "Flooded Caves 1",
37
+ [StageType.GREED_MODE]: "Caves",
38
+ [StageType.REPENTANCE]: "Mines 1",
39
+ [StageType.REPENTANCE_B]: "Ashpit 1",
40
+ },
41
+ [LevelStage.CAVES_2]: {
42
+ [StageType.ORIGINAL]: "Caves 2",
43
+ [StageType.WRATH_OF_THE_LAMB]: "Catacombs 2",
44
+ [StageType.AFTERBIRTH]: "Flooded Caves 2",
45
+ [StageType.GREED_MODE]: "Caves",
46
+ [StageType.REPENTANCE]: "Mines 2",
47
+ [StageType.REPENTANCE_B]: "Ashpit 2",
48
+ },
49
+ [LevelStage.DEPTHS_1]: {
50
+ [StageType.ORIGINAL]: "Depths 1",
51
+ [StageType.WRATH_OF_THE_LAMB]: "Necropolis 1",
52
+ [StageType.AFTERBIRTH]: "Dank Depths 1",
53
+ [StageType.GREED_MODE]: "Depths",
54
+ [StageType.REPENTANCE]: "Mausoleum 1",
55
+ [StageType.REPENTANCE_B]: "Gehenna 1",
56
+ },
57
+ [LevelStage.DEPTHS_2]: {
58
+ [StageType.ORIGINAL]: "Depths 2",
59
+ [StageType.WRATH_OF_THE_LAMB]: "Necropolis 2",
60
+ [StageType.AFTERBIRTH]: "Dank Depths 2",
61
+ [StageType.GREED_MODE]: "Depths",
62
+ [StageType.REPENTANCE]: "Mausoleum 2",
63
+ [StageType.REPENTANCE_B]: "Gehenna 2",
64
+ },
65
+ [LevelStage.WOMB_1]: {
66
+ [StageType.ORIGINAL]: "Womb 1",
67
+ [StageType.WRATH_OF_THE_LAMB]: "Utero 1",
68
+ [StageType.AFTERBIRTH]: "Scarred Womb 1",
69
+ [StageType.GREED_MODE]: "Womb",
70
+ [StageType.REPENTANCE]: "Corpse 1",
71
+ [StageType.REPENTANCE_B]: "Mortis 1",
72
+ },
73
+ [LevelStage.WOMB_2]: {
74
+ [StageType.ORIGINAL]: "Womb 2",
75
+ [StageType.WRATH_OF_THE_LAMB]: "Utero 2",
76
+ [StageType.AFTERBIRTH]: "Scarred Womb 2",
77
+ [StageType.GREED_MODE]: "Womb",
78
+ [StageType.REPENTANCE]: "Corpse 2",
79
+ [StageType.REPENTANCE_B]: "Mortis 2",
80
+ },
81
+ [LevelStage.BLUE_WOMB]: {
82
+ [StageType.ORIGINAL]: "Blue Womb",
83
+ [StageType.WRATH_OF_THE_LAMB]: "Blue Womb",
84
+ [StageType.AFTERBIRTH]: "Blue Womb",
85
+ [StageType.GREED_MODE]: "Blue Womb",
86
+ [StageType.REPENTANCE]: "Blue Womb",
87
+ [StageType.REPENTANCE_B]: "Blue Womb",
88
+ },
89
+ [LevelStage.SHEOL_CATHEDRAL]: {
90
+ [StageType.ORIGINAL]: "Sheol",
91
+ [StageType.WRATH_OF_THE_LAMB]: "Cathedral",
92
+ [StageType.AFTERBIRTH]: "Undefined",
93
+ [StageType.GREED_MODE]: "Sheol",
94
+ [StageType.REPENTANCE]: "Undefined",
95
+ [StageType.REPENTANCE_B]: "Undefined",
96
+ },
97
+ [LevelStage.DARK_ROOM_CHEST]: {
98
+ [StageType.ORIGINAL]: "Dark Room",
99
+ [StageType.WRATH_OF_THE_LAMB]: "The Chest",
100
+ [StageType.AFTERBIRTH]: "Undefined",
101
+ [StageType.GREED_MODE]: "The Shop",
102
+ [StageType.REPENTANCE]: "Undefined",
103
+ [StageType.REPENTANCE_B]: "Undefined",
104
+ },
105
+ [LevelStage.THE_VOID]: {
106
+ [StageType.ORIGINAL]: "The Void",
107
+ [StageType.WRATH_OF_THE_LAMB]: "The Void",
108
+ [StageType.AFTERBIRTH]: "The Void",
109
+ [StageType.GREED_MODE]: "The Void",
110
+ [StageType.REPENTANCE]: "The Void",
111
+ [StageType.REPENTANCE_B]: "The Void",
112
+ },
113
+ [LevelStage.HOME]: {
114
+ [StageType.ORIGINAL]: "Home",
115
+ [StageType.WRATH_OF_THE_LAMB]: "Home",
116
+ [StageType.AFTERBIRTH]: "Home",
117
+ [StageType.GREED_MODE]: "Home",
118
+ [StageType.REPENTANCE]: "Home",
119
+ [StageType.REPENTANCE_B]: "Home",
120
+ },
121
+ } as const;
@@ -20,6 +20,6 @@
20
20
  * const value = MyEnumToString[MyEnum.Value2];
21
21
  * ```
22
22
  */
23
- export type HasAllEnumKeys<T extends string | number> = {
24
- readonly [key in T]: unknown;
23
+ export type HasAllEnumKeys<Enum extends string | number, T> = {
24
+ readonly [key in Enum]: T;
25
25
  };