isaacscript-common 36.0.0 → 36.1.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.
@@ -1675,13 +1675,13 @@ export declare function convertBinaryToDecimal(bits: int[]): number;
1675
1675
  /**
1676
1676
  * Helper function to convert a number to an array of bits.
1677
1677
  *
1678
- * @param number The number to convert.
1678
+ * @param num The number to convert.
1679
1679
  * @param minLength Optional. Equal to the minimum amount of bits that should be returned. If the
1680
1680
  * converted number of bits is below this number, 0's will be padded to the left
1681
1681
  * side until the minimum length is met. Default is undefined (which will not cause
1682
1682
  * any padding).
1683
1683
  */
1684
- export declare function convertDecimalToBinary(number: number, minLength?: int): int[];
1684
+ export declare function convertDecimalToBinary(num: number, minLength?: int): int[];
1685
1685
 
1686
1686
  /**
1687
1687
  * Helper function to convert the grid entity type found in a room XML file to the corresponding
@@ -8648,6 +8648,12 @@ export declare function isGridEntityBreakableByExplosion(gridEntity: GridEntity)
8648
8648
  */
8649
8649
  export declare function isGridEntityBroken(gridEntity: GridEntity): boolean;
8650
8650
 
8651
+ /**
8652
+ * Helper function to see if an arbitrary number is a valid `GridEntityXMLType`. This is useful in
8653
+ * the `PRE_ROOM_ENTITY_SPAWN` callback for narrowing the type of the first argument.
8654
+ */
8655
+ export declare function isGridEntityXMLType(num: number): num is GridEntityXMLType;
8656
+
8651
8657
  /** For `PickupVariant.HEART` (10). */
8652
8658
  export declare function isHeart(pickup: EntityPickup): pickup is EntityPickupHeart;
8653
8659
 
@@ -12543,6 +12549,9 @@ export declare enum ModCallbackCustom {
12543
12549
  * - You can provide an optional fifth argument that will make the callback only fire if it
12544
12550
  * matches the sub-type provided.
12545
12551
  *
12552
+ * You can use the `isGridEntityXMLType` helper function to convert the
12553
+ * `entityTypeOrGridEntityXMLType` argument to an `EntityType` or `GridEntityXMLType`, if needed.
12554
+ *
12546
12555
  * ```ts
12547
12556
  * function preRoomEntitySpawnFilter(
12548
12557
  * entityTypeOrGridEntityXMLType: EntityType | GridEntityXMLType,
@@ -1,6 +1,6 @@
1
1
  --[[
2
2
 
3
- isaacscript-common 36.0.0
3
+ isaacscript-common 36.1.0
4
4
 
5
5
  This is the "isaacscript-common" library, which was created with the IsaacScript tool.
6
6
 
@@ -22930,15 +22930,15 @@ function ____exports.convertBinaryToDecimal(self, bits)
22930
22930
  local bitsString = table.concat(bits, "")
22931
22931
  return __TS__ParseInt(bitsString, 2)
22932
22932
  end
22933
- function ____exports.convertDecimalToBinary(self, number, minLength)
22933
+ function ____exports.convertDecimalToBinary(self, num, minLength)
22934
22934
  local bits = {}
22935
- local bitsString = __TS__NumberToString(number, 2)
22935
+ local bitsString = __TS__NumberToString(num, 2)
22936
22936
  for ____, bitString in __TS__Iterator(bitsString) do
22937
22937
  local bit = tonumber(bitString)
22938
22938
  assertDefined(
22939
22939
  nil,
22940
22940
  bit,
22941
- "Failed to convert the following number to binary: " .. tostring(number)
22941
+ "Failed to convert the following number to binary: " .. tostring(num)
22942
22942
  )
22943
22943
  bits[#bits + 1] = bit
22944
22944
  end
@@ -28015,6 +28015,8 @@ local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
28015
28015
  local PoopGridEntityVariant = ____isaac_2Dtypescript_2Ddefinitions.PoopGridEntityVariant
28016
28016
  local StatueVariant = ____isaac_2Dtypescript_2Ddefinitions.StatueVariant
28017
28017
  local TrapdoorVariant = ____isaac_2Dtypescript_2Ddefinitions.TrapdoorVariant
28018
+ local ____cachedEnumValues = require("src.arrays.cachedEnumValues")
28019
+ local GRID_ENTITY_XML_TYPE_VALUES = ____cachedEnumValues.GRID_ENTITY_XML_TYPE_VALUES
28018
28020
  local ____cachedClasses = require("src.core.cachedClasses")
28019
28021
  local game = ____cachedClasses.game
28020
28022
  local ____constants = require("src.core.constants")
@@ -28133,6 +28135,7 @@ function ____exports.spawnGridEntityWithVariant(self, gridEntityType, variant, g
28133
28135
  end
28134
28136
  return gridEntity
28135
28137
  end
28138
+ local GRID_ENTITY_TYPES_THAT_KEEP_GRID_ENTITY_XML_VARIANT = __TS__New(ReadonlySet, {GridEntityType.SPIKES_ON_OFF, GridEntityType.PRESSURE_PLATE, GridEntityType.TELEPORTER})
28136
28139
  local BREAKABLE_GRID_ENTITY_TYPES_BY_EXPLOSIONS = __TS__New(ReadonlySet, {
28137
28140
  GridEntityType.ROCK,
28138
28141
  GridEntityType.ROCK_TINTED,
@@ -28150,6 +28153,7 @@ local BREAKABLE_GRID_ENTITY_TYPES_VARIANTS_BY_EXPLOSIONS = __TS__New(
28150
28153
  ReadonlySet,
28151
28154
  {(tostring(GridEntityType.STATUE) .. ".") .. tostring(StatueVariant.ANGEL)}
28152
28155
  )
28156
+ local GRID_ENTITY_XML_TYPES_SET = __TS__New(ReadonlySet, GRID_ENTITY_XML_TYPE_VALUES)
28153
28157
  function ____exports.convertXMLGridEntityType(self, gridEntityXMLType, gridEntityXMLVariant)
28154
28158
  local gridEntityArray = GRID_ENTITY_XML_MAP:get(gridEntityXMLType)
28155
28159
  assertDefined(
@@ -28158,10 +28162,7 @@ function ____exports.convertXMLGridEntityType(self, gridEntityXMLType, gridEntit
28158
28162
  "Failed to find an entry in the grid entity map for XML entity type: " .. tostring(gridEntityXMLType)
28159
28163
  )
28160
28164
  local gridEntityType = gridEntityArray[1]
28161
- local variant = gridEntityArray[2]
28162
- if gridEntityType == GridEntityType.SPIKES_ON_OFF or gridEntityType == GridEntityType.PRESSURE_PLATE or gridEntityType == GridEntityType.TELEPORTER then
28163
- variant = gridEntityXMLVariant
28164
- end
28165
+ local variant = GRID_ENTITY_TYPES_THAT_KEEP_GRID_ENTITY_XML_VARIANT:has(gridEntityType) and gridEntityXMLVariant or gridEntityArray[2]
28165
28166
  return {gridEntityType, variant}
28166
28167
  end
28167
28168
  function ____exports.doesGridEntityExist(self, gridEntityType, variant)
@@ -28266,7 +28267,7 @@ function ____exports.getGridEntitiesInRadius(self, targetPosition, radius)
28266
28267
  local gridIndex = room:GetGridIndex(position)
28267
28268
  local gridEntity = room:GetGridEntityFromPos(position)
28268
28269
  if gridEntity == nil or registeredGridIndexes:has(gridIndex) then
28269
- goto __continue24
28270
+ goto __continue23
28270
28271
  end
28271
28272
  registeredGridIndexes:add(gridIndex)
28272
28273
  local ____exports_getGridEntityCollisionPoints_result_1 = ____exports.getGridEntityCollisionPoints(nil, gridEntity)
@@ -28282,7 +28283,7 @@ function ____exports.getGridEntitiesInRadius(self, targetPosition, radius)
28282
28283
  gridEntities[#gridEntities + 1] = gridEntity
28283
28284
  end
28284
28285
  end
28285
- ::__continue24::
28286
+ ::__continue23::
28286
28287
  end
28287
28288
  end
28288
28289
  return gridEntities
@@ -28350,6 +28351,9 @@ function ____exports.isGridEntityBroken(self, gridEntity)
28350
28351
  local brokenState = GRID_ENTITY_TYPE_TO_BROKEN_STATE_MAP:get(gridEntityType)
28351
28352
  return gridEntity.State == brokenState
28352
28353
  end
28354
+ function ____exports.isGridEntityXMLType(self, num)
28355
+ return GRID_ENTITY_XML_TYPES_SET:has(num)
28356
+ end
28353
28357
  function ____exports.isPoopGridEntityXMLType(self, gridEntityXMLType)
28354
28358
  return POOP_GRID_ENTITY_XML_TYPES_SET:has(gridEntityXMLType)
28355
28359
  end
@@ -2437,6 +2437,9 @@ export declare enum ModCallbackCustom {
2437
2437
  * - You can provide an optional fifth argument that will make the callback only fire if it
2438
2438
  * matches the sub-type provided.
2439
2439
  *
2440
+ * You can use the `isGridEntityXMLType` helper function to convert the
2441
+ * `entityTypeOrGridEntityXMLType` argument to an `EntityType` or `GridEntityXMLType`, if needed.
2442
+ *
2440
2443
  * ```ts
2441
2444
  * function preRoomEntitySpawnFilter(
2442
2445
  * entityTypeOrGridEntityXMLType: EntityType | GridEntityXMLType,
@@ -1 +1 @@
1
- {"version":3,"file":"ModCallbackCustom.d.ts","sourceRoot":"","sources":["../../../src/enums/ModCallbackCustom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModCallbackCustom.d.ts","sourceRoot":"","sources":["../../../src/enums/ModCallbackCustom.ts"],"names":[],"mappings":"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"}
@@ -9,13 +9,13 @@ export declare function convertBinaryToDecimal(bits: int[]): number;
9
9
  /**
10
10
  * Helper function to convert a number to an array of bits.
11
11
  *
12
- * @param number The number to convert.
12
+ * @param num The number to convert.
13
13
  * @param minLength Optional. Equal to the minimum amount of bits that should be returned. If the
14
14
  * converted number of bits is below this number, 0's will be padded to the left
15
15
  * side until the minimum length is met. Default is undefined (which will not cause
16
16
  * any padding).
17
17
  */
18
- export declare function convertDecimalToBinary(number: number, minLength?: int): int[];
18
+ export declare function convertDecimalToBinary(num: number, minLength?: int): int[];
19
19
  /**
20
20
  * Helper function to count the number of bits that are set to 1 in a binary representation of a
21
21
  * number.
@@ -1 +1 @@
1
- {"version":3,"file":"bitwise.d.ts","sourceRoot":"","sources":["../../../src/functions/bitwise.ts"],"names":[],"mappings":";;;;AAGA,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,CAAC,SAAS,OAAO,GAAG,UAAU,EAC5D,KAAK,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,GACxB,QAAQ,CAAC,CAAC,CAAC,CAOb;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAG1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,CAqB7E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CASxC;AAED,iGAAiG;AACjG,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAE9C;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAQzC;AAED,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,GAAG,UAAU,EAC1D,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAC3B,QAAQ,CAAC,CAAC,CAAC,CAOb"}
1
+ {"version":3,"file":"bitwise.d.ts","sourceRoot":"","sources":["../../../src/functions/bitwise.ts"],"names":[],"mappings":";;;;AAGA,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,CAAC,SAAS,OAAO,GAAG,UAAU,EAC5D,KAAK,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,GACxB,QAAQ,CAAC,CAAC,CAAC,CAOb;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAG1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,CAqB1E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CASxC;AAED,iGAAiG;AACjG,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAE9C;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAQzC;AAED,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,GAAG,UAAU,EAC1D,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAC3B,QAAQ,CAAC,CAAC,CAAC,CAOb"}
@@ -23,20 +23,20 @@ function ____exports.convertBinaryToDecimal(self, bits)
23
23
  end
24
24
  --- Helper function to convert a number to an array of bits.
25
25
  --
26
- -- @param number The number to convert.
26
+ -- @param num The number to convert.
27
27
  -- @param minLength Optional. Equal to the minimum amount of bits that should be returned. If the
28
28
  -- converted number of bits is below this number, 0's will be padded to the left
29
29
  -- side until the minimum length is met. Default is undefined (which will not cause
30
30
  -- any padding).
31
- function ____exports.convertDecimalToBinary(self, number, minLength)
31
+ function ____exports.convertDecimalToBinary(self, num, minLength)
32
32
  local bits = {}
33
- local bitsString = __TS__NumberToString(number, 2)
33
+ local bitsString = __TS__NumberToString(num, 2)
34
34
  for ____, bitString in __TS__Iterator(bitsString) do
35
35
  local bit = tonumber(bitString)
36
36
  assertDefined(
37
37
  nil,
38
38
  bit,
39
- "Failed to convert the following number to binary: " .. tostring(number)
39
+ "Failed to convert the following number to binary: " .. tostring(num)
40
40
  )
41
41
  bits[#bits + 1] = bit
42
42
  end
@@ -135,6 +135,11 @@ export declare function isGridEntityBreakableByExplosion(gridEntity: GridEntity)
135
135
  * the actual collision for the entity is removed.
136
136
  */
137
137
  export declare function isGridEntityBroken(gridEntity: GridEntity): boolean;
138
+ /**
139
+ * Helper function to see if an arbitrary number is a valid `GridEntityXMLType`. This is useful in
140
+ * the `PRE_ROOM_ENTITY_SPAWN` callback for narrowing the type of the first argument.
141
+ */
142
+ export declare function isGridEntityXMLType(num: number): num is GridEntityXMLType;
138
143
  /** Helper function to see if a `GridEntityXMLType` is some kind of poop. */
139
144
  export declare function isPoopGridEntityXMLType(gridEntityXMLType: GridEntityXMLType): boolean;
140
145
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"gridEntities.d.ts","sourceRoot":"","sources":["../../../src/functions/gridEntities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gridEntities.d.ts","sourceRoot":"","sources":["../../../src/functions/gridEntities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAGL,cAAc,EAIf,MAAM,8BAA8B,CAAC;AAWtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AA0C1D;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,iBAAiB,EAAE,iBAAiB,EACpC,oBAAoB,EAAE,GAAG,GACxB,CAAC,cAAc,EAAE,GAAG,CAAC,GAAG,SAAS,CAenC;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,cAAc,EAC9B,OAAO,SAAK,GACX,OAAO,CAiBT;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,EAAE,CAKzC;AAED;;;;;;;;;GASG;AACH,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,UAAU,GACrB,MAAM,EAAE,CAoBV;AAED,qFAAqF;AACrF,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,YAAY,GACzB,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,CAAC,CAuBhD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,eAAe,CAC7B,GAAG,eAAe,EAAE,cAAc,EAAE,GACnC,UAAU,EAAE,CAYd;AAgBD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,eAAe,EAAE,cAAc,EAAE,GACnC,UAAU,EAAE,CAYd;AAED,uFAAuF;AACvF,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,GACb,UAAU,EAAE,CAyCd;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,eAAe,EAAE,cAAc,EAAE,GACnC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAUtB;AAED,2FAA2F;AAC3F,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,UAAU,GAAG;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAWA;AAED,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,YAAY,CAIpE;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,GAAG,GACX,YAAY,CAEd;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,GAAG,GACX,UAAU,EAAE,CAKd;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,UAAU,GACrB,UAAU,EAAE,CA2Bd;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,UAAU,GAAG,SAAS,CAIvD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,GAAG,CAO7C;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,UAAU,GACrB,OAAO,CAWT;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAIlE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAEzE;AAED,4EAA4E;AAC5E,wBAAgB,uBAAuB,CACrC,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAET;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAKpE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,eAAe,EAAE,cAAc,EAAE,GACnC,UAAU,EAAE,CAiBd;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,cAAc,EAAE,cAAc,EAAE,GAClC,UAAU,EAAE,CAYd;AAED;;;;;;GAMG;AACH,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,MAAM,EAAE,EAClB,UAAU,EAAE,UAAU,GACrB,IAAI,CAON;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACxD,YAAY,EAAE,CAAC,EAAE,EACjB,UAAU,EAAE,OAAO,EACnB,GAAG,CAAC,EAAE,GAAG,GACR,CAAC,EAAE,CAoBL;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,qBAAqB,EAAE,UAAU,GAAG,GAAG,EACvC,UAAU,EAAE,OAAO,GAClB,IAAI,CAqCN;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAGnE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,gBAAgB,EAAE,GAAG,GAAG,OAAO,CAwD7D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,cAAc,EAAE,cAAc,EAC9B,mBAAmB,EAAE,GAAG,GAAG,MAAM,GAChC,UAAU,GAAG,SAAS,CAExB;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,GAAG,EACZ,mBAAmB,EAAE,GAAG,GAAG,MAAM,GAChC,UAAU,GAAG,SAAS,CAgCxB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,GAAG,GAAG,UAAU,GAAG,SAAS,CAkBtE"}
@@ -14,6 +14,8 @@ local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
14
14
  local PoopGridEntityVariant = ____isaac_2Dtypescript_2Ddefinitions.PoopGridEntityVariant
15
15
  local StatueVariant = ____isaac_2Dtypescript_2Ddefinitions.StatueVariant
16
16
  local TrapdoorVariant = ____isaac_2Dtypescript_2Ddefinitions.TrapdoorVariant
17
+ local ____cachedEnumValues = require("src.arrays.cachedEnumValues")
18
+ local GRID_ENTITY_XML_TYPE_VALUES = ____cachedEnumValues.GRID_ENTITY_XML_TYPE_VALUES
17
19
  local ____cachedClasses = require("src.core.cachedClasses")
18
20
  local game = ____cachedClasses.game
19
21
  local ____constants = require("src.core.constants")
@@ -158,6 +160,9 @@ function ____exports.spawnGridEntityWithVariant(self, gridEntityType, variant, g
158
160
  end
159
161
  return gridEntity
160
162
  end
163
+ --- For some specific grid entities, the variant defined in the XML is what is used by the actual
164
+ -- game (which is not the case for e.g. poops).
165
+ local GRID_ENTITY_TYPES_THAT_KEEP_GRID_ENTITY_XML_VARIANT = __TS__New(ReadonlySet, {GridEntityType.SPIKES_ON_OFF, GridEntityType.PRESSURE_PLATE, GridEntityType.TELEPORTER})
161
166
  local BREAKABLE_GRID_ENTITY_TYPES_BY_EXPLOSIONS = __TS__New(ReadonlySet, {
162
167
  GridEntityType.ROCK,
163
168
  GridEntityType.ROCK_TINTED,
@@ -175,6 +180,7 @@ local BREAKABLE_GRID_ENTITY_TYPES_VARIANTS_BY_EXPLOSIONS = __TS__New(
175
180
  ReadonlySet,
176
181
  {(tostring(GridEntityType.STATUE) .. ".") .. tostring(StatueVariant.ANGEL)}
177
182
  )
183
+ local GRID_ENTITY_XML_TYPES_SET = __TS__New(ReadonlySet, GRID_ENTITY_XML_TYPE_VALUES)
178
184
  --- Helper function to convert the grid entity type found in a room XML file to the corresponding
179
185
  -- grid entity type and variant normally used by the game. For example, `GridEntityXMLType.ROCK` is
180
186
  -- 1000 (in a room XML file), but `GridEntityType.ROCK` is equal to 2 (in-game).
@@ -186,10 +192,7 @@ function ____exports.convertXMLGridEntityType(self, gridEntityXMLType, gridEntit
186
192
  "Failed to find an entry in the grid entity map for XML entity type: " .. tostring(gridEntityXMLType)
187
193
  )
188
194
  local gridEntityType = gridEntityArray[1]
189
- local variant = gridEntityArray[2]
190
- if gridEntityType == GridEntityType.SPIKES_ON_OFF or gridEntityType == GridEntityType.PRESSURE_PLATE or gridEntityType == GridEntityType.TELEPORTER then
191
- variant = gridEntityXMLVariant
192
- end
195
+ local variant = GRID_ENTITY_TYPES_THAT_KEEP_GRID_ENTITY_XML_VARIANT:has(gridEntityType) and gridEntityXMLVariant or gridEntityArray[2]
193
196
  return {gridEntityType, variant}
194
197
  end
195
198
  --- Helper function to check if one or more of a specific kind of grid entity is present in the
@@ -337,7 +340,7 @@ function ____exports.getGridEntitiesInRadius(self, targetPosition, radius)
337
340
  local gridIndex = room:GetGridIndex(position)
338
341
  local gridEntity = room:GetGridEntityFromPos(position)
339
342
  if gridEntity == nil or registeredGridIndexes:has(gridIndex) then
340
- goto __continue24
343
+ goto __continue23
341
344
  end
342
345
  registeredGridIndexes:add(gridIndex)
343
346
  local ____exports_getGridEntityCollisionPoints_result_1 = ____exports.getGridEntityCollisionPoints(nil, gridEntity)
@@ -353,7 +356,7 @@ function ____exports.getGridEntitiesInRadius(self, targetPosition, radius)
353
356
  gridEntities[#gridEntities + 1] = gridEntity
354
357
  end
355
358
  end
356
- ::__continue24::
359
+ ::__continue23::
357
360
  end
358
361
  end
359
362
  return gridEntities
@@ -451,6 +454,11 @@ function ____exports.isGridEntityBroken(self, gridEntity)
451
454
  local brokenState = GRID_ENTITY_TYPE_TO_BROKEN_STATE_MAP:get(gridEntityType)
452
455
  return gridEntity.State == brokenState
453
456
  end
457
+ --- Helper function to see if an arbitrary number is a valid `GridEntityXMLType`. This is useful in
458
+ -- the `PRE_ROOM_ENTITY_SPAWN` callback for narrowing the type of the first argument.
459
+ function ____exports.isGridEntityXMLType(self, num)
460
+ return GRID_ENTITY_XML_TYPES_SET:has(num)
461
+ end
454
462
  --- Helper function to see if a `GridEntityXMLType` is some kind of poop.
455
463
  function ____exports.isPoopGridEntityXMLType(self, gridEntityXMLType)
456
464
  return POOP_GRID_ENTITY_XML_TYPES_SET:has(gridEntityXMLType)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "36.0.0",
3
+ "version": "36.1.0",
4
4
  "description": "Helper functions and features for IsaacScript mods.",
5
5
  "keywords": [
6
6
  "isaac",
@@ -2576,6 +2576,9 @@ export enum ModCallbackCustom {
2576
2576
  * - You can provide an optional fifth argument that will make the callback only fire if it
2577
2577
  * matches the sub-type provided.
2578
2578
  *
2579
+ * You can use the `isGridEntityXMLType` helper function to convert the
2580
+ * `entityTypeOrGridEntityXMLType` argument to an `EntityType` or `GridEntityXMLType`, if needed.
2581
+ *
2579
2582
  * ```ts
2580
2583
  * function preRoomEntitySpawnFilter(
2581
2584
  * entityTypeOrGridEntityXMLType: EntityType | GridEntityXMLType,
@@ -22,21 +22,21 @@ export function convertBinaryToDecimal(bits: int[]): number {
22
22
  /**
23
23
  * Helper function to convert a number to an array of bits.
24
24
  *
25
- * @param number The number to convert.
25
+ * @param num The number to convert.
26
26
  * @param minLength Optional. Equal to the minimum amount of bits that should be returned. If the
27
27
  * converted number of bits is below this number, 0's will be padded to the left
28
28
  * side until the minimum length is met. Default is undefined (which will not cause
29
29
  * any padding).
30
30
  */
31
- export function convertDecimalToBinary(number: number, minLength?: int): int[] {
31
+ export function convertDecimalToBinary(num: number, minLength?: int): int[] {
32
32
  const bits: int[] = [];
33
33
 
34
- const bitsString = number.toString(2);
34
+ const bitsString = num.toString(2);
35
35
  for (const bitString of bitsString) {
36
36
  const bit = tonumber(bitString);
37
37
  assertDefined(
38
38
  bit,
39
- `Failed to convert the following number to binary: ${number}`,
39
+ `Failed to convert the following number to binary: ${num}`,
40
40
  );
41
41
 
42
42
  bits.push(bit);
@@ -7,6 +7,7 @@ import {
7
7
  StatueVariant,
8
8
  TrapdoorVariant,
9
9
  } from "isaac-typescript-definitions";
10
+ import { GRID_ENTITY_XML_TYPE_VALUES } from "../arrays/cachedEnumValues";
10
11
  import { game } from "../core/cachedClasses";
11
12
  import { DISTANCE_OF_GRID_TILE, VectorOne } from "../core/constants";
12
13
  import { GRID_ENTITY_TYPE_TO_BROKEN_STATE_MAP } from "../maps/gridEntityTypeToBrokenStateMap";
@@ -27,6 +28,16 @@ import { asNumber, isNumber } from "./types";
27
28
  import { assertDefined, eRange, iRange } from "./utils";
28
29
  import { isVector, vectorEquals } from "./vector";
29
30
 
31
+ /**
32
+ * For some specific grid entities, the variant defined in the XML is what is used by the actual
33
+ * game (which is not the case for e.g. poops).
34
+ */
35
+ const GRID_ENTITY_TYPES_THAT_KEEP_GRID_ENTITY_XML_VARIANT = new ReadonlySet([
36
+ GridEntityType.SPIKES_ON_OFF, // 9
37
+ GridEntityType.PRESSURE_PLATE, // 20
38
+ GridEntityType.TELEPORTER, // 23
39
+ ]);
40
+
30
41
  const BREAKABLE_GRID_ENTITY_TYPES_BY_EXPLOSIONS =
31
42
  new ReadonlySet<GridEntityType>([
32
43
  GridEntityType.ROCK, // 2
@@ -47,6 +58,8 @@ const BREAKABLE_GRID_ENTITY_TYPES_BY_EXPLOSIONS =
47
58
  const BREAKABLE_GRID_ENTITY_TYPES_VARIANTS_BY_EXPLOSIONS =
48
59
  new ReadonlySet<string>([`${GridEntityType.STATUE}.${StatueVariant.ANGEL}`]);
49
60
 
61
+ const GRID_ENTITY_XML_TYPES_SET = new ReadonlySet(GRID_ENTITY_XML_TYPE_VALUES);
62
+
50
63
  /**
51
64
  * Helper function to convert the grid entity type found in a room XML file to the corresponding
52
65
  * grid entity type and variant normally used by the game. For example, `GridEntityXMLType.ROCK` is
@@ -63,17 +76,11 @@ export function convertXMLGridEntityType(
63
76
  );
64
77
 
65
78
  const gridEntityType = gridEntityArray[0];
66
- let variant = gridEntityArray[1];
67
-
68
- // For some specific grid entities, the variant defined in the XML is what is used by the actual
69
- // game (which is not the case for e.g. poops).
70
- if (
71
- gridEntityType === GridEntityType.SPIKES_ON_OFF || // 9
72
- gridEntityType === GridEntityType.PRESSURE_PLATE || // 20
73
- gridEntityType === GridEntityType.TELEPORTER // 23
74
- ) {
75
- variant = gridEntityXMLVariant;
76
- }
79
+ const variant = GRID_ENTITY_TYPES_THAT_KEEP_GRID_ENTITY_XML_VARIANT.has(
80
+ gridEntityType,
81
+ )
82
+ ? gridEntityXMLVariant
83
+ : gridEntityArray[1];
77
84
 
78
85
  return [gridEntityType, variant];
79
86
  }
@@ -477,6 +484,14 @@ export function isGridEntityBroken(gridEntity: GridEntity): boolean {
477
484
  return gridEntity.State === brokenState;
478
485
  }
479
486
 
487
+ /**
488
+ * Helper function to see if an arbitrary number is a valid `GridEntityXMLType`. This is useful in
489
+ * the `PRE_ROOM_ENTITY_SPAWN` callback for narrowing the type of the first argument.
490
+ */
491
+ export function isGridEntityXMLType(num: number): num is GridEntityXMLType {
492
+ return GRID_ENTITY_XML_TYPES_SET.has(num); // eslint-disable-line isaacscript/strict-enums
493
+ }
494
+
480
495
  /** Helper function to see if a `GridEntityXMLType` is some kind of poop. */
481
496
  export function isPoopGridEntityXMLType(
482
497
  gridEntityXMLType: GridEntityXMLType,