isaacscript-common 6.11.2 → 6.14.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.
Files changed (189) hide show
  1. package/dist/callbacks/postGridEntityCustomRender.d.ts +2 -0
  2. package/dist/callbacks/postGridEntityCustomRender.d.ts.map +1 -0
  3. package/dist/callbacks/postGridEntityCustomRender.lua +36 -0
  4. package/dist/callbacks/postGridEntityCustomUpdate.d.ts +2 -0
  5. package/dist/callbacks/postGridEntityCustomUpdate.d.ts.map +1 -0
  6. package/dist/callbacks/postGridEntityCustomUpdate.lua +36 -0
  7. package/dist/callbacks/postNewRoomEarly.lua +2 -2
  8. package/dist/callbacks/postPickupInitFirst.lua +1 -20
  9. package/dist/callbacks/reorderedCallbacks.d.ts +5 -5
  10. package/dist/callbacks/reorderedCallbacks.d.ts.map +1 -1
  11. package/dist/callbacks/reorderedCallbacks.lua +5 -5
  12. package/dist/callbacks/subscriptions/postGridEntityCustomRender.d.ts +6 -0
  13. package/dist/callbacks/subscriptions/postGridEntityCustomRender.d.ts.map +1 -0
  14. package/dist/callbacks/subscriptions/postGridEntityCustomRender.lua +29 -0
  15. package/dist/callbacks/subscriptions/postGridEntityCustomUpdate.d.ts +6 -0
  16. package/dist/callbacks/subscriptions/postGridEntityCustomUpdate.d.ts.map +1 -0
  17. package/dist/callbacks/subscriptions/postGridEntityCustomUpdate.lua +29 -0
  18. package/dist/constants.d.ts +1 -5
  19. package/dist/constants.d.ts.map +1 -1
  20. package/dist/constants.lua +0 -7
  21. package/dist/constantsFirstLast.d.ts +5 -1
  22. package/dist/constantsFirstLast.d.ts.map +1 -1
  23. package/dist/constantsFirstLast.lua +6 -0
  24. package/dist/enums/ModCallbackCustom.d.ts +89 -66
  25. package/dist/enums/ModCallbackCustom.d.ts.map +1 -1
  26. package/dist/enums/ModCallbackCustom.lua +62 -58
  27. package/dist/enums/private/SerializationBrand.d.ts +1 -1
  28. package/dist/enums/private/SerializationBrand.lua +1 -1
  29. package/dist/features/collectibleItemPoolType.d.ts +2 -2
  30. package/dist/features/collectibleItemPoolType.lua +2 -2
  31. package/dist/features/customGridEntity.d.ts +11 -2
  32. package/dist/features/customGridEntity.d.ts.map +1 -1
  33. package/dist/features/customGridEntity.lua +22 -2
  34. package/dist/features/customTrapdoor/blackSprite.d.ts.map +1 -1
  35. package/dist/features/customTrapdoor/blackSprite.lua +6 -6
  36. package/dist/features/customTrapdoor/customTrapdoorConstants.d.ts +2 -2
  37. package/dist/features/customTrapdoor/customTrapdoorConstants.d.ts.map +1 -1
  38. package/dist/features/customTrapdoor/customTrapdoorConstants.lua +2 -2
  39. package/dist/features/customTrapdoor/init.d.ts.map +1 -1
  40. package/dist/features/customTrapdoor/init.lua +4 -3
  41. package/dist/features/customTrapdoor/touched.d.ts.map +1 -1
  42. package/dist/features/customTrapdoor/touched.lua +51 -33
  43. package/dist/features/deployJSONRoom.d.ts +2 -2
  44. package/dist/features/deployJSONRoom.lua +2 -2
  45. package/dist/features/extraConsoleCommands/exports.d.ts +4 -3
  46. package/dist/features/extraConsoleCommands/exports.d.ts.map +1 -1
  47. package/dist/features/extraConsoleCommands/exports.lua +4 -3
  48. package/dist/features/extraConsoleCommands/init.lua +12 -14
  49. package/dist/features/extraConsoleCommands/listCommands.d.ts +15 -19
  50. package/dist/features/extraConsoleCommands/listCommands.d.ts.map +1 -1
  51. package/dist/features/extraConsoleCommands/listCommands.lua +34 -42
  52. package/dist/features/pause.d.ts +1 -1
  53. package/dist/features/pause.d.ts.map +1 -1
  54. package/dist/features/pause.lua +87 -8
  55. package/dist/features/persistentEntities.d.ts.map +1 -1
  56. package/dist/features/persistentEntities.lua +7 -7
  57. package/dist/features/pickupIndex.d.ts +19 -0
  58. package/dist/features/pickupIndex.d.ts.map +1 -0
  59. package/dist/features/pickupIndex.lua +197 -0
  60. package/dist/features/roomHistory.d.ts +24 -0
  61. package/dist/features/roomHistory.d.ts.map +1 -0
  62. package/dist/features/roomHistory.lua +89 -0
  63. package/dist/functions/collectibles.d.ts +26 -13
  64. package/dist/functions/collectibles.d.ts.map +1 -1
  65. package/dist/functions/collectibles.lua +26 -13
  66. package/dist/functions/color.d.ts +10 -0
  67. package/dist/functions/color.d.ts.map +1 -1
  68. package/dist/functions/color.lua +24 -0
  69. package/dist/functions/entities.d.ts +3 -3
  70. package/dist/functions/entities.d.ts.map +1 -1
  71. package/dist/functions/entities.lua +8 -3
  72. package/dist/functions/gridEntities.d.ts +4 -22
  73. package/dist/functions/gridEntities.d.ts.map +1 -1
  74. package/dist/functions/gridEntities.lua +4 -61
  75. package/dist/functions/isaacAPIClass.d.ts +64 -0
  76. package/dist/functions/isaacAPIClass.d.ts.map +1 -1
  77. package/dist/functions/isaacAPIClass.lua +84 -1
  78. package/dist/functions/kColor.d.ts +10 -0
  79. package/dist/functions/kColor.d.ts.map +1 -1
  80. package/dist/functions/kColor.lua +24 -0
  81. package/dist/functions/map.d.ts +2 -0
  82. package/dist/functions/map.d.ts.map +1 -1
  83. package/dist/functions/map.lua +7 -0
  84. package/dist/functions/npcs.d.ts +2 -2
  85. package/dist/functions/npcs.lua +2 -2
  86. package/dist/functions/pickupVariants.d.ts +2 -2
  87. package/dist/functions/pickupVariants.d.ts.map +1 -1
  88. package/dist/functions/pickupVariants.lua +2 -2
  89. package/dist/functions/playerCenter.lua +2 -2
  90. package/dist/functions/playerIndex.d.ts +0 -3
  91. package/dist/functions/playerIndex.d.ts.map +1 -1
  92. package/dist/functions/playerIndex.lua +4 -23
  93. package/dist/functions/random.d.ts +1 -1
  94. package/dist/functions/random.lua +1 -1
  95. package/dist/functions/rockAlt.d.ts +28 -0
  96. package/dist/functions/rockAlt.d.ts.map +1 -0
  97. package/dist/functions/rockAlt.lua +140 -0
  98. package/dist/functions/roomData.d.ts +3 -2
  99. package/dist/functions/roomData.d.ts.map +1 -1
  100. package/dist/functions/roomData.lua +3 -2
  101. package/dist/functions/rooms.d.ts +6 -6
  102. package/dist/functions/rooms.lua +6 -6
  103. package/dist/functions/set.d.ts +2 -0
  104. package/dist/functions/set.d.ts.map +1 -1
  105. package/dist/functions/set.lua +6 -0
  106. package/dist/functions/stage.d.ts +1 -0
  107. package/dist/functions/stage.d.ts.map +1 -1
  108. package/dist/functions/stage.lua +4 -0
  109. package/dist/functions/vector.d.ts +11 -0
  110. package/dist/functions/vector.d.ts.map +1 -1
  111. package/dist/functions/vector.lua +23 -0
  112. package/dist/index.d.ts +4 -0
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.lua +31 -0
  115. package/dist/initCustomCallbacks.d.ts.map +1 -1
  116. package/dist/initCustomCallbacks.lua +6 -0
  117. package/dist/initFeatures.d.ts.map +1 -1
  118. package/dist/initFeatures.lua +6 -0
  119. package/dist/interfaces/AddCallbackParameterCustom.d.ts +4 -0
  120. package/dist/interfaces/AddCallbackParameterCustom.d.ts.map +1 -1
  121. package/dist/interfaces/RoomDescription.d.ts +14 -0
  122. package/dist/interfaces/RoomDescription.d.ts.map +1 -0
  123. package/dist/interfaces/RoomDescription.lua +2 -0
  124. package/dist/objects/callbackRegisterFunctions.d.ts.map +1 -1
  125. package/dist/objects/callbackRegisterFunctions.lua +6 -0
  126. package/dist/types/CollectibleIndex.d.ts +1 -1
  127. package/dist/types/PickupIndex.d.ts +17 -0
  128. package/dist/types/PickupIndex.d.ts.map +1 -0
  129. package/dist/types/PickupIndex.lua +2 -0
  130. package/dist/types/PlayerIndex.d.ts +1 -1
  131. package/dist/upgradeMod.d.ts.map +1 -1
  132. package/package.json +2 -2
  133. package/src/callbacks/postGridEntityCustomRender.ts +44 -0
  134. package/src/callbacks/postGridEntityCustomUpdate.ts +44 -0
  135. package/src/callbacks/postNewRoomEarly.ts +2 -2
  136. package/src/callbacks/postPickupInitFirst.ts +3 -32
  137. package/src/callbacks/postPlayerReorderedCallbacks.ts +3 -3
  138. package/src/callbacks/reorderedCallbacks.ts +9 -8
  139. package/src/callbacks/subscriptions/postGridEntityCustomRender.ts +41 -0
  140. package/src/callbacks/subscriptions/postGridEntityCustomUpdate.ts +41 -0
  141. package/src/constants.ts +1 -9
  142. package/src/constantsFirstLast.ts +16 -0
  143. package/src/enums/ModCallbackCustom.ts +33 -8
  144. package/src/enums/private/SerializationBrand.ts +1 -1
  145. package/src/features/collectibleItemPoolType.ts +3 -3
  146. package/src/features/customGridEntity.ts +27 -2
  147. package/src/features/customTrapdoor/blackSprite.ts +11 -5
  148. package/src/features/customTrapdoor/customTrapdoorConstants.ts +2 -2
  149. package/src/features/customTrapdoor/init.ts +7 -5
  150. package/src/features/customTrapdoor/touched.ts +59 -39
  151. package/src/features/deployJSONRoom.ts +4 -4
  152. package/src/features/extraConsoleCommands/exports.ts +4 -3
  153. package/src/features/extraConsoleCommands/init.ts +18 -14
  154. package/src/features/extraConsoleCommands/listCommands.ts +38 -43
  155. package/src/features/pause.ts +97 -7
  156. package/src/features/persistentEntities.ts +9 -8
  157. package/src/features/pickupIndex.ts +257 -0
  158. package/src/features/playerInventory.ts +2 -2
  159. package/src/features/roomHistory.ts +113 -0
  160. package/src/features/saveDataManager/main.ts +2 -2
  161. package/src/features/taintedLazarusPlayers.ts +5 -5
  162. package/src/functions/collectibles.ts +26 -13
  163. package/src/functions/color.ts +22 -0
  164. package/src/functions/entities.ts +6 -3
  165. package/src/functions/gridEntities.ts +4 -56
  166. package/src/functions/isaacAPIClass.ts +106 -1
  167. package/src/functions/kColor.ts +22 -0
  168. package/src/functions/map.ts +10 -0
  169. package/src/functions/npcs.ts +2 -2
  170. package/src/functions/pickupVariants.ts +2 -2
  171. package/src/functions/playerCenter.ts +2 -2
  172. package/src/functions/playerIndex.ts +8 -21
  173. package/src/functions/random.ts +1 -1
  174. package/src/functions/rockAlt.ts +117 -0
  175. package/src/functions/roomData.ts +3 -2
  176. package/src/functions/rooms.ts +6 -6
  177. package/src/functions/set.ts +7 -1
  178. package/src/functions/stage.ts +10 -1
  179. package/src/functions/vector.ts +23 -0
  180. package/src/index.ts +4 -0
  181. package/src/initCustomCallbacks.ts +4 -0
  182. package/src/initFeatures.ts +4 -0
  183. package/src/interfaces/AddCallbackParameterCustom.ts +4 -0
  184. package/src/interfaces/RoomDescription.ts +19 -0
  185. package/src/objects/callbackRegisterFunctions.ts +6 -0
  186. package/src/types/CollectibleIndex.ts +1 -1
  187. package/src/types/PickupIndex.ts +15 -0
  188. package/src/types/PlayerIndex.ts +1 -1
  189. package/src/upgradeMod.ts +2 -1
@@ -20,6 +20,9 @@ local isRNG = ____rng.isRNG
20
20
  local newRNG = ____rng.newRNG
21
21
  local ____types = require("functions.types")
22
22
  local isPrimitive = ____types.isPrimitive
23
+ local ____vector = require("functions.vector")
24
+ local isVector = ____vector.isVector
25
+ local vectorToString = ____vector.vectorToString
23
26
  function setPrimitiveEntityFields(self, entity, metatable, entityFields)
24
27
  local propGetTable = metatable.__propget
25
28
  if propGetTable == nil then
@@ -30,6 +33,8 @@ function setPrimitiveEntityFields(self, entity, metatable, entityFields)
30
33
  local value = entity[indexKey]
31
34
  if isPrimitive(nil, value) then
32
35
  entityFields[indexKey] = value
36
+ elseif isVector(nil, value) then
37
+ entityFields[indexKey] = vectorToString(nil, value)
33
38
  end
34
39
  end
35
40
  end
@@ -180,10 +185,10 @@ function ____exports.getEntities(self, entityType, variant, subType, ignoreFrien
180
185
  return Isaac.FindByType(entityType, variant, subType, ignoreFriendly)
181
186
  end
182
187
  --- Helper function to get all the fields on an entity. For example, this is useful for comparing it
183
- -- to another entity later.
188
+ -- to another entity later. (One option is to use the `logTableDifferences` function for this.)
184
189
  --
185
- -- This function will only get fields that are equal to booleans, numbers, or strings, as comparing
186
- -- other types is non-trivial.
190
+ -- This function will only get fields that are equal to booleans, numbers, or strings, or Vectors,
191
+ -- as comparing other types is non-trivial.
187
192
  function ____exports.getEntityFields(self, entity)
188
193
  local entityFields = {}
189
194
  local metatable = getmetatable(entity)
@@ -17,8 +17,8 @@ export declare function getAllGridIndexes(): int[];
17
17
  * Gets the entities that have a hitbox that overlaps with any part of the square that the grid
18
18
  * entity is on.
19
19
  *
20
- * Note that this function will not work properly in the PostNewRoom callback, since entities do not
21
- * have collision yet in that callback.
20
+ * Note that this function will not work properly in the `POST_NEW_ROOM` callback, since entities do
21
+ * not have collision yet in that callback.
22
22
  */
23
23
  export declare function getCollidingEntitiesWithGridEntity(gridEntity: GridEntity): Entity[];
24
24
  /**
@@ -175,7 +175,7 @@ export declare function removeAllMatchingGridEntities(...gridEntityType: GridEnt
175
175
  * generally a good idea because if the room is not updated, you will be unable to
176
176
  * spawn another grid entity on the same tile until a frame has passed. However,
177
177
  * doing this is expensive, since it involves a call to `Isaac.GetRoomEntities`,
178
- * so set this to false if you need to invoke this function multiple times.
178
+ * so set this to false if you need to run this function multiple times.
179
179
  * @param cap Optional. If specified, will only remove the given amount of entities.
180
180
  * @returns An array of the entities that were removed.
181
181
  */
@@ -189,7 +189,7 @@ export declare function removeGridEntities<T extends AnyGridEntity>(gridEntities
189
189
  * generally a good idea because if the room is not updated, you will be unable to
190
190
  * spawn another grid entity on the same tile until a frame has passed. However,
191
191
  * doing this is expensive, since it involves a call to `Isaac.GetRoomEntities`,
192
- * so set this to false if you need to invoke this function multiple times.
192
+ * so set this to false if you need to run this function multiple times.
193
193
  */
194
194
  export declare function removeGridEntity(gridEntityOrGridIndex: GridEntity | int, updateRoom: boolean): void;
195
195
  /**
@@ -225,24 +225,6 @@ export declare function spawnGridEntity(gridEntityType: GridEntityType, gridInde
225
225
  * - allows you to specify the grid index or the position
226
226
  */
227
227
  export declare function spawnGridEntityWithVariant(gridEntityType: GridEntityType, variant: int, gridIndexOrPosition: int | Vector): GridEntity | undefined;
228
- /**
229
- * Helper function for emulating what happens when a vanilla `GridEntityType.ROCK_ALT` grid entity
230
- * breaks.
231
- *
232
- * Note that most of the time, this function will do nothing, similar to how most of the time, when
233
- * an individual urn is destroyed, nothing will spawn.
234
- *
235
- * The logic in this function is based on the rewards listed on the wiki:
236
- * https://bindingofisaacrebirth.fandom.com/wiki/Rocks
237
- *
238
- * @param rockAltType The type of reward to spawn. For example, `RockAltType.URN` will have a chance
239
- * at spawning coins and spiders.
240
- * @param _seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
241
- * the `RNG.Next` method will be called. Default is `getRandomSeed()`. Normally,
242
- * you should pass the `InitSeed` of the grid entity that was broken.
243
- * @returns Whether or not this function spawned something.
244
- */
245
- export declare function spawnRockAltReward(rockAltType: RockAltType, _seedOrRNG?: Seed | RNG): boolean;
246
228
  /**
247
229
  * Helper function to spawn a Void Portal. This is more complicated than simply spawning a trapdoor
248
230
  * with the appropriate variant, as the game does not give it the correct sprite automatically.
@@ -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,EACL,iBAAiB,EAEjB,cAAc,EACd,iBAAiB,EAGjB,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAQnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA8BvD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,iBAAiB,EAAE,iBAAiB,EACpC,oBAAoB,EAAE,GAAG,GACxB,CAAC,cAAc,EAAE,GAAG,CAAC,GAAG,SAAS,CAqBnC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,EAAE,CAKzC;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,UAAU,GACrB,MAAM,EAAE,CA4BV;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,iBAAiB,GAAE,iBAAsB,GACxC,UAAU,EAAE,CAMd;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;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;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,eAAe,EAAE,cAAc,EAAE,GACnC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAUtB;AAED,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAI9D;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,GAAG,GACX,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,GAAG,GACX,UAAU,EAAE,CAKd;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAK5C;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,UAAU,GACrB,UAAU,EAAE,CA2Bd;AAED,wBAAgB,cAAc,IAAI,UAAU,GAAG,SAAS,CAIvD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,GAAG,CAS7C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,eAAe,CAAC,EAAE,eAAe,GAAG,UAAU,EAAE,CAM5E;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,UAAU,GACrB,OAAO,CAWT;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAIlE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAKpE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,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;;;;;;;;;;;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;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,qBAAqB,EAAE,UAAU,GAAG,GAAG,EACvC,UAAU,EAAE,OAAO,GAClB,IAAI,CAWN;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAGnE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,gBAAgB,EAAE,GAAG,GAAG,IAAI,CA4B1D;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"}
@@ -15,8 +15,6 @@ local ____cachedClasses = require("cachedClasses")
15
15
  local game = ____cachedClasses.game
16
16
  local ____constants = require("constants")
17
17
  local DISTANCE_OF_GRID_TILE = ____constants.DISTANCE_OF_GRID_TILE
18
- local ____RockAltType = require("enums.RockAltType")
19
- local RockAltType = ____RockAltType.RockAltType
20
18
  local ____gridEntityTypeToBrokenStateMap = require("maps.gridEntityTypeToBrokenStateMap")
21
19
  local GRID_ENTITY_TYPE_TO_BROKEN_STATE_MAP = ____gridEntityTypeToBrokenStateMap.GRID_ENTITY_TYPE_TO_BROKEN_STATE_MAP
22
20
  local ____gridEntityXMLMap = require("maps.gridEntityXMLMap")
@@ -28,8 +26,6 @@ local ____backdropTypeToRockAltType = require("objects.backdropTypeToRockAltType
28
26
  local BACKDROP_TYPE_TO_ROCK_ALT_TYPE = ____backdropTypeToRockAltType.BACKDROP_TYPE_TO_ROCK_ALT_TYPE
29
27
  local ____math = require("functions.math")
30
28
  local isCircleIntersectingRectangle = ____math.isCircleIntersectingRectangle
31
- local ____rng = require("functions.rng")
32
- local getRandomSeed = ____rng.getRandomSeed
33
29
  local ____rooms = require("functions.rooms")
34
30
  local roomUpdateSafe = ____rooms.roomUpdateSafe
35
31
  local ____sprites = require("functions.sprites")
@@ -123,7 +119,7 @@ end
123
119
  -- generally a good idea because if the room is not updated, you will be unable to
124
120
  -- spawn another grid entity on the same tile until a frame has passed. However,
125
121
  -- doing this is expensive, since it involves a call to `Isaac.GetRoomEntities`,
126
- -- so set this to false if you need to invoke this function multiple times.
122
+ -- so set this to false if you need to run this function multiple times.
127
123
  function ____exports.removeGridEntity(self, gridEntityOrGridIndex, updateRoom)
128
124
  local room = game:GetRoom()
129
125
  local gridIndex = isNumber(nil, gridEntityOrGridIndex) and gridEntityOrGridIndex or gridEntityOrGridIndex:GetGridIndex()
@@ -200,8 +196,8 @@ end
200
196
  --- Gets the entities that have a hitbox that overlaps with any part of the square that the grid
201
197
  -- entity is on.
202
198
  --
203
- -- Note that this function will not work properly in the PostNewRoom callback, since entities do not
204
- -- have collision yet in that callback.
199
+ -- Note that this function will not work properly in the `POST_NEW_ROOM` callback, since entities do
200
+ -- not have collision yet in that callback.
205
201
  function ____exports.getCollidingEntitiesWithGridEntity(self, gridEntity)
206
202
  local gridEntityCollisionTopLeft = Vector(gridEntity.Position.X - DISTANCE_OF_GRID_TILE / 2, gridEntity.Position.Y - DISTANCE_OF_GRID_TILE / 2)
207
203
  local gridEntityCollisionBottomRight = Vector(gridEntity.Position.X + DISTANCE_OF_GRID_TILE / 2, gridEntity.Position.Y + DISTANCE_OF_GRID_TILE / 2)
@@ -420,7 +416,7 @@ end
420
416
  -- generally a good idea because if the room is not updated, you will be unable to
421
417
  -- spawn another grid entity on the same tile until a frame has passed. However,
422
418
  -- doing this is expensive, since it involves a call to `Isaac.GetRoomEntities`,
423
- -- so set this to false if you need to invoke this function multiple times.
419
+ -- so set this to false if you need to run this function multiple times.
424
420
  -- @param cap Optional. If specified, will only remove the given amount of entities.
425
421
  -- @returns An array of the entities that were removed.
426
422
  function ____exports.removeGridEntities(self, gridEntities, updateRoom, cap)
@@ -473,59 +469,6 @@ end
473
469
  function ____exports.spawnGridEntity(self, gridEntityType, gridIndexOrPosition)
474
470
  return ____exports.spawnGridEntityWithVariant(nil, gridEntityType, 0, gridIndexOrPosition)
475
471
  end
476
- --- Helper function for emulating what happens when a vanilla `GridEntityType.ROCK_ALT` grid entity
477
- -- breaks.
478
- --
479
- -- Note that most of the time, this function will do nothing, similar to how most of the time, when
480
- -- an individual urn is destroyed, nothing will spawn.
481
- --
482
- -- The logic in this function is based on the rewards listed on the wiki:
483
- -- https://bindingofisaacrebirth.fandom.com/wiki/Rocks
484
- --
485
- -- @param rockAltType The type of reward to spawn. For example, `RockAltType.URN` will have a chance
486
- -- at spawning coins and spiders.
487
- -- @param _seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
488
- -- the `RNG.Next` method will be called. Default is `getRandomSeed()`. Normally,
489
- -- you should pass the `InitSeed` of the grid entity that was broken.
490
- -- @returns Whether or not this function spawned something.
491
- function ____exports.spawnRockAltReward(self, rockAltType, _seedOrRNG)
492
- if _seedOrRNG == nil then
493
- _seedOrRNG = getRandomSeed(nil)
494
- end
495
- repeat
496
- local ____switch66 = rockAltType
497
- local ____cond66 = ____switch66 == RockAltType.URN
498
- if ____cond66 then
499
- do
500
- return false
501
- end
502
- end
503
- ____cond66 = ____cond66 or ____switch66 == RockAltType.MUSHROOM
504
- if ____cond66 then
505
- do
506
- return false
507
- end
508
- end
509
- ____cond66 = ____cond66 or ____switch66 == RockAltType.SKULL
510
- if ____cond66 then
511
- do
512
- return false
513
- end
514
- end
515
- ____cond66 = ____cond66 or ____switch66 == RockAltType.POLYP
516
- if ____cond66 then
517
- do
518
- return false
519
- end
520
- end
521
- ____cond66 = ____cond66 or ____switch66 == RockAltType.BUCKET
522
- if ____cond66 then
523
- do
524
- return false
525
- end
526
- end
527
- until true
528
- end
529
472
  --- Helper function to spawn a Void Portal. This is more complicated than simply spawning a trapdoor
530
473
  -- with the appropriate variant, as the game does not give it the correct sprite automatically.
531
474
  function ____exports.spawnVoidPortal(self, gridIndex)
@@ -1,3 +1,22 @@
1
+ /// <reference types="isaac-typescript-definitions" />
2
+ /// <reference types="isaac-typescript-definitions" />
3
+ /// <reference types="isaac-typescript-definitions" />
4
+ /// <reference types="isaac-typescript-definitions" />
5
+ /// <reference types="isaac-typescript-definitions" />
6
+ /// <reference types="isaac-typescript-definitions" />
7
+ /// <reference types="isaac-typescript-definitions" />
8
+ /// <reference types="isaac-typescript-definitions" />
9
+ /// <reference types="isaac-typescript-definitions" />
10
+ /// <reference types="isaac-typescript-definitions" />
11
+ /// <reference types="isaac-typescript-definitions" />
12
+ /// <reference types="isaac-typescript-definitions" />
13
+ /// <reference types="isaac-typescript-definitions" />
14
+ /// <reference types="isaac-typescript-definitions" />
15
+ /// <reference types="isaac-typescript-definitions" />
16
+ /// <reference types="isaac-typescript-definitions" />
17
+ /// <reference types="isaac-typescript-definitions" />
18
+ /// <reference types="isaac-typescript-definitions" />
19
+ /// <reference types="isaac-typescript-definitions" />
1
20
  import { IsaacAPIClass } from "../types/private/IsaacAPIClass";
2
21
  /**
3
22
  * Helper function to get the name of a class from the Isaac API. This is contained within the
@@ -7,8 +26,27 @@ import { IsaacAPIClass } from "../types/private/IsaacAPIClass";
7
26
  *
8
27
  * Returns undefined if the object is not of type `userdata` or if the "__type" metatable key does
9
28
  * not exist.
29
+ *
30
+ * In some cases, Isaac classes can be a read-only. If this is the case, the "__type" field will be
31
+ * prepended with "const ". This function will always strip this prefix, if it exists. For example,
32
+ * the class name returned for "const Vector" will be "Vector".
10
33
  */
11
34
  export declare function getIsaacAPIClassName(object: unknown): string | undefined;
35
+ /** Helper function to detect if a variable is of type `EntityBomb`. */
36
+ export declare function isBomb(variable: unknown): variable is EntityBomb;
37
+ /** Helper function to detect if a variable is of type `GridEntityDoor`. */
38
+ export declare function isDoor(variable: unknown): variable is GridEntityDoor;
39
+ /** Helper function to detect if a variable is of type `EntityEffect`. */
40
+ export declare function isEffect(variable: unknown): variable is EntityEffect;
41
+ /**
42
+ * Helper function to detect if a variable is of type `Entity`. This will return false for child
43
+ * classes such as `EntityPlayer` or `EntityTear`.
44
+ */
45
+ export declare function isEntity(variable: unknown): variable is Entity;
46
+ /** Helper function to detect if a variable is of type `EntityEffect`. */
47
+ export declare function isFamiliar(variable: unknown): variable is EntityFamiliar;
48
+ /** Helper function to detect if a variable is of type `GridEntity`. */
49
+ export declare function isGridEntity(variable: unknown): variable is GridEntity;
12
50
  /**
13
51
  * Helper function to check if something is an instantiated class from the Isaac API. (All classes
14
52
  * from the Isaac API have a type of "userdata" in Lua with a metatable key of "__type" equal to the
@@ -16,6 +54,32 @@ export declare function getIsaacAPIClassName(object: unknown): string | undefine
16
54
  */
17
55
  export declare function isIsaacAPIClass(object: unknown): object is IsaacAPIClass;
18
56
  export declare function isIsaacAPIClassOfType(object: unknown, classType: string): boolean;
57
+ /** Helper function to detect if a variable is of type `EntityKnife`. */
58
+ export declare function isKnife(variable: unknown): variable is EntityKnife;
59
+ /** Helper function to detect if a variable is of type `EntityLaser`. */
60
+ export declare function isLaser(variable: unknown): variable is EntityLaser;
61
+ /** Helper function to detect if a variable is of type `EntityNPC`. */
62
+ export declare function isNPC(variable: unknown): variable is EntityNPC;
63
+ /** Helper function to detect if a variable is of type `EntityPickup`. */
64
+ export declare function isPickup(variable: unknown): variable is EntityPickup;
65
+ /** Helper function to detect if a variable is of type `GridEntityPit`. */
66
+ export declare function isPit(variable: unknown): variable is GridEntityPit;
67
+ /** Helper function to detect if a variable is of type `EntityPlayer`. */
68
+ export declare function isPlayer(variable: unknown): variable is EntityPlayer;
69
+ /** Helper function to detect if a variable is of type `GridEntityPoop`. */
70
+ export declare function isPoop(variable: unknown): variable is GridEntityPoop;
71
+ /** Helper function to detect if a variable is of type `GridEntityPressurePlate`. */
72
+ export declare function isPressurePlate(variable: unknown): variable is GridEntityPressurePlate;
73
+ /** Helper function to detect if a variable is of type `EntityProjectile`. */
74
+ export declare function isProjectile(variable: unknown): variable is EntityProjectile;
75
+ /** Helper function to detect if a variable is of type `GridEntityRock`. */
76
+ export declare function isRock(variable: unknown): variable is GridEntityRock;
77
+ /** Helper function to detect if a variable is of type `GridEntitySpikes`. */
78
+ export declare function isSpikes(variable: unknown): variable is GridEntitySpikes;
79
+ /** Helper function to detect if a variable is of type `GridEntityTNT`. */
80
+ export declare function isTNT(variable: unknown): variable is GridEntityTNT;
81
+ /** Helper function to detect if a variable is of type `EntityTear`. */
82
+ export declare function isTear(variable: unknown): variable is EntityTear;
19
83
  /**
20
84
  * Helper function to check if an instantiated Isaac API class is equal to another one of the same
21
85
  * type. You must provide the list of keys to check for.
@@ -1 +1 @@
1
- {"version":3,"file":"isaacAPIClass.d.ts","sourceRoot":"","sources":["../../src/functions/isaacAPIClass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAkBxE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,aAAa,CAGxE;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAMT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAKT"}
1
+ {"version":3,"file":"isaacAPIClass.d.ts","sourceRoot":"","sources":["../../src/functions/isaacAPIClass.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAI/D;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAkBxE;AAED,uEAAuE;AACvE,wBAAgB,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,UAAU,CAEhE;AAED,2EAA2E;AAC3E,wBAAgB,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,cAAc,CAEpE;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAEpE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,MAAM,CAE9D;AAED,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,cAAc,CAExE;AAED,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,UAAU,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,aAAa,CAGxE;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAMT;AAED,wEAAwE;AACxE,wBAAgB,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,WAAW,CAElE;AAED,wEAAwE;AACxE,wBAAgB,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,WAAW,CAElE;AAED,sEAAsE;AACtE,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,SAAS,CAE9D;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAEpE;AAED,0EAA0E;AAC1E,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,aAAa,CAElE;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAEpE;AAED,2EAA2E;AAC3E,wBAAgB,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,cAAc,CAEpE;AAED,oFAAoF;AACpF,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,OAAO,GAChB,QAAQ,IAAI,uBAAuB,CAErC;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,gBAAgB,CAE5E;AAED,2EAA2E;AAC3E,wBAAgB,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,cAAc,CAEpE;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,gBAAgB,CAExE;AAED,0EAA0E;AAC1E,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,aAAa,CAElE;AAED,uEAAuE;AACvE,wBAAgB,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,UAAU,CAEhE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAKT"}
@@ -1,6 +1,8 @@
1
1
  local ____lualib = require("lualib_bundle")
2
2
  local __TS__ArrayEvery = ____lualib.__TS__ArrayEvery
3
3
  local ____exports = {}
4
+ local ____string = require("functions.string")
5
+ local trimPrefix = ____string.trimPrefix
4
6
  local ____types = require("functions.types")
5
7
  local isString = ____types.isString
6
8
  local isUserdata = ____types.isUserdata
@@ -11,6 +13,10 @@ local isUserdata = ____types.isUserdata
11
13
  --
12
14
  -- Returns undefined if the object is not of type `userdata` or if the "__type" metatable key does
13
15
  -- not exist.
16
+ --
17
+ -- In some cases, Isaac classes can be a read-only. If this is the case, the "__type" field will be
18
+ -- prepended with "const ". This function will always strip this prefix, if it exists. For example,
19
+ -- the class name returned for "const Vector" will be "Vector".
14
20
  function ____exports.getIsaacAPIClassName(self, object)
15
21
  if not isUserdata(nil, object) then
16
22
  return nil
@@ -23,7 +29,32 @@ function ____exports.getIsaacAPIClassName(self, object)
23
29
  if not isString(nil, classType) then
24
30
  return nil
25
31
  end
26
- return classType
32
+ return trimPrefix(nil, classType, "const ")
33
+ end
34
+ --- Helper function to detect if a variable is of type `EntityBomb`.
35
+ function ____exports.isBomb(self, variable)
36
+ return ____exports.getIsaacAPIClassName(nil, variable) == "EntityBomb"
37
+ end
38
+ --- Helper function to detect if a variable is of type `GridEntityDoor`.
39
+ function ____exports.isDoor(self, variable)
40
+ return ____exports.getIsaacAPIClassName(nil, variable) == "GridEntityDoor"
41
+ end
42
+ --- Helper function to detect if a variable is of type `EntityEffect`.
43
+ function ____exports.isEffect(self, variable)
44
+ return ____exports.getIsaacAPIClassName(nil, variable) == "EntityEffect"
45
+ end
46
+ --- Helper function to detect if a variable is of type `Entity`. This will return false for child
47
+ -- classes such as `EntityPlayer` or `EntityTear`.
48
+ function ____exports.isEntity(self, variable)
49
+ return ____exports.getIsaacAPIClassName(nil, variable) == "Entity"
50
+ end
51
+ --- Helper function to detect if a variable is of type `EntityEffect`.
52
+ function ____exports.isFamiliar(self, variable)
53
+ return ____exports.getIsaacAPIClassName(nil, variable) == "EntityEffect"
54
+ end
55
+ --- Helper function to detect if a variable is of type `GridEntity`.
56
+ function ____exports.isGridEntity(self, variable)
57
+ return ____exports.getIsaacAPIClassName(nil, variable) == "GridEntity"
27
58
  end
28
59
  --- Helper function to check if something is an instantiated class from the Isaac API. (All classes
29
60
  -- from the Isaac API have a type of "userdata" in Lua with a metatable key of "__type" equal to the
@@ -36,6 +67,58 @@ function ____exports.isIsaacAPIClassOfType(self, object, classType)
36
67
  local isaacAPIClassType = ____exports.getIsaacAPIClassName(nil, object)
37
68
  return isaacAPIClassType == classType or isaacAPIClassType == "const " .. classType
38
69
  end
70
+ --- Helper function to detect if a variable is of type `EntityKnife`.
71
+ function ____exports.isKnife(self, variable)
72
+ return ____exports.getIsaacAPIClassName(nil, variable) == "EntityKnife"
73
+ end
74
+ --- Helper function to detect if a variable is of type `EntityLaser`.
75
+ function ____exports.isLaser(self, variable)
76
+ return ____exports.getIsaacAPIClassName(nil, variable) == "EntityLaser"
77
+ end
78
+ --- Helper function to detect if a variable is of type `EntityNPC`.
79
+ function ____exports.isNPC(self, variable)
80
+ return ____exports.getIsaacAPIClassName(nil, variable) == "EntityNPC"
81
+ end
82
+ --- Helper function to detect if a variable is of type `EntityPickup`.
83
+ function ____exports.isPickup(self, variable)
84
+ return ____exports.getIsaacAPIClassName(nil, variable) == "EntityPickup"
85
+ end
86
+ --- Helper function to detect if a variable is of type `GridEntityPit`.
87
+ function ____exports.isPit(self, variable)
88
+ return ____exports.getIsaacAPIClassName(nil, variable) == "GridEntityPit"
89
+ end
90
+ --- Helper function to detect if a variable is of type `EntityPlayer`.
91
+ function ____exports.isPlayer(self, variable)
92
+ return ____exports.getIsaacAPIClassName(nil, variable) == "EntityPlayer"
93
+ end
94
+ --- Helper function to detect if a variable is of type `GridEntityPoop`.
95
+ function ____exports.isPoop(self, variable)
96
+ return ____exports.getIsaacAPIClassName(nil, variable) == "GridEntityPoop"
97
+ end
98
+ --- Helper function to detect if a variable is of type `GridEntityPressurePlate`.
99
+ function ____exports.isPressurePlate(self, variable)
100
+ return ____exports.getIsaacAPIClassName(nil, variable) == "GridEntityPressurePlate"
101
+ end
102
+ --- Helper function to detect if a variable is of type `EntityProjectile`.
103
+ function ____exports.isProjectile(self, variable)
104
+ return ____exports.getIsaacAPIClassName(nil, variable) == "EntityProjectile"
105
+ end
106
+ --- Helper function to detect if a variable is of type `GridEntityRock`.
107
+ function ____exports.isRock(self, variable)
108
+ return ____exports.getIsaacAPIClassName(nil, variable) == "GridEntityRock"
109
+ end
110
+ --- Helper function to detect if a variable is of type `GridEntitySpikes`.
111
+ function ____exports.isSpikes(self, variable)
112
+ return ____exports.getIsaacAPIClassName(nil, variable) == "GridEntitySpikes"
113
+ end
114
+ --- Helper function to detect if a variable is of type `GridEntityTNT`.
115
+ function ____exports.isTNT(self, variable)
116
+ return ____exports.getIsaacAPIClassName(nil, variable) == "GridEntityTNT"
117
+ end
118
+ --- Helper function to detect if a variable is of type `EntityTear`.
119
+ function ____exports.isTear(self, variable)
120
+ return ____exports.getIsaacAPIClassName(nil, variable) == "EntityTear"
121
+ end
39
122
  --- Helper function to check if an instantiated Isaac API class is equal to another one of the same
40
123
  -- type. You must provide the list of keys to check for.
41
124
  function ____exports.isaacAPIClassEquals(self, object1, object2, keys)
@@ -1,5 +1,7 @@
1
1
  /// <reference types="typescript-to-lua/language-extensions" />
2
2
  /// <reference types="isaac-typescript-definitions" />
3
+ /// <reference types="isaac-typescript-definitions" />
4
+ /// <reference types="isaac-typescript-definitions" />
3
5
  import { SerializationType } from "../enums/SerializationType";
4
6
  declare type SerializedKColor = LuaMap<string, unknown> & {
5
7
  readonly __serializedKColorBrand: symbol;
@@ -18,6 +20,14 @@ interface CopyKColorReturn {
18
20
  */
19
21
  export declare function copyKColor<K extends KColor | SerializedKColor, S extends SerializationType>(kColor: K, serializationType: S): CopyKColorReturn[S];
20
22
  export declare function copyKColor<K extends KColor | SerializedKColor>(kColor: K): CopyKColorReturn[SerializationType.NONE];
23
+ /**
24
+ * Helper function to get a random color.
25
+ *
26
+ * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
27
+ * `RNG.Next` method will be called. Default is `getRandomSeed()`.
28
+ * @param alpha Optional. The alpha value to use. Default is 1.
29
+ */
30
+ export declare function getRandomKColor(seedOrRNG?: Seed | RNG, alpha?: number): KColor;
21
31
  /** Helper function to check if something is an instantiated KColor object. */
22
32
  export declare function isKColor(object: unknown): object is KColor;
23
33
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"kColor.d.ts","sourceRoot":"","sources":["../../src/functions/kColor.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAK/D,aAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAChD,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;CAC1C,CAAC;AAEF,UAAU,gBAAgB;IACxB,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACjC,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAChD,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CACzC;AAKD;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,CAAC,SAAS,MAAM,GAAG,gBAAgB,EACnC,CAAC,SAAS,iBAAiB,EAC3B,MAAM,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACxD,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,gBAAgB,EAC5D,MAAM,EAAE,CAAC,GACR,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAoE5C,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,MAAM,CAE1D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,GACd,MAAM,IAAI,gBAAgB,CAQ5B;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtE"}
1
+ {"version":3,"file":"kColor.d.ts","sourceRoot":"","sources":["../../src/functions/kColor.ts"],"names":[],"mappings":";;;;AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAO/D,aAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAChD,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;CAC1C,CAAC;AAEF,UAAU,gBAAgB;IACxB,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACjC,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAChD,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CACzC;AAKD;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,CAAC,SAAS,MAAM,GAAG,gBAAgB,EACnC,CAAC,SAAS,iBAAiB,EAC3B,MAAM,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACxD,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,gBAAgB,EAC5D,MAAM,EAAE,CAAC,GACR,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAoE5C;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,SAAS,GAAE,IAAI,GAAG,GAAqB,EACvC,KAAK,SAAI,GACR,MAAM,CAQR;AAED,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,MAAM,CAE1D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,GACd,MAAM,IAAI,gBAAgB,CAQ5B;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtE"}
@@ -7,6 +7,12 @@ local SerializationType = ____SerializationType.SerializationType
7
7
  local ____isaacAPIClass = require("functions.isaacAPIClass")
8
8
  local isaacAPIClassEquals = ____isaacAPIClass.isaacAPIClassEquals
9
9
  local isIsaacAPIClassOfType = ____isaacAPIClass.isIsaacAPIClassOfType
10
+ local ____random = require("functions.random")
11
+ local getRandom = ____random.getRandom
12
+ local ____rng = require("functions.rng")
13
+ local getRandomSeed = ____rng.getRandomSeed
14
+ local isRNG = ____rng.isRNG
15
+ local newRNG = ____rng.newRNG
10
16
  local ____table = require("functions.table")
11
17
  local copyValuesToTable = ____table.copyValuesToTable
12
18
  local getNumbersFromTable = ____table.getNumbersFromTable
@@ -80,6 +86,24 @@ function ____exports.copyKColor(self, kColor, serializationType)
80
86
  end
81
87
  until true
82
88
  end
89
+ --- Helper function to get a random color.
90
+ --
91
+ -- @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
92
+ -- `RNG.Next` method will be called. Default is `getRandomSeed()`.
93
+ -- @param alpha Optional. The alpha value to use. Default is 1.
94
+ function ____exports.getRandomKColor(self, seedOrRNG, alpha)
95
+ if seedOrRNG == nil then
96
+ seedOrRNG = getRandomSeed(nil)
97
+ end
98
+ if alpha == nil then
99
+ alpha = 1
100
+ end
101
+ local rng = isRNG(nil, seedOrRNG) and seedOrRNG or newRNG(nil, seedOrRNG)
102
+ local r = getRandom(nil, rng)
103
+ local g = getRandom(nil, rng)
104
+ local b = getRandom(nil, rng)
105
+ return KColor(r, g, b, alpha)
106
+ end
83
107
  --- Used to determine is the given table is a serialized `KColor` object created by the save data
84
108
  -- manager and/or the `deepCopy` function.
85
109
  function ____exports.isSerializedKColor(self, object)
@@ -20,4 +20,6 @@ export declare function copyMap<K, V>(oldMap: Map<K, V>): Map<K, V>;
20
20
  * ```
21
21
  */
22
22
  export declare function getMapPartialMatch<T>(searchText: string, map: ReadonlyMap<string, T>): [string, T] | undefined;
23
+ /** Helper function to sum every value in a map together. */
24
+ export declare function sumMap(map: Map<unknown, number> | ReadonlyMap<unknown, number>): number;
23
25
  //# sourceMappingURL=map.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/functions/map.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAO1D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAC1B,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAuBzB"}
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/functions/map.ts"],"names":[],"mappings":"AAEA,mGAAmG;AACnG,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAO1D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAC1B,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAuBzB;AAED,4DAA4D;AAC5D,wBAAgB,MAAM,CACpB,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,GACvD,MAAM,CAGR"}
@@ -8,6 +8,8 @@ local __TS__StringReplaceAll = ____lualib.__TS__StringReplaceAll
8
8
  local __TS__StringStartsWith = ____lualib.__TS__StringStartsWith
9
9
  local __TS__ArrayFilter = ____lualib.__TS__ArrayFilter
10
10
  local ____exports = {}
11
+ local ____array = require("functions.array")
12
+ local sumArray = ____array.sumArray
11
13
  --- Helper function to copy a map. (You can also use a Map constructor to accomplish this task.)
12
14
  function ____exports.copyMap(self, oldMap)
13
15
  local newMap = __TS__New(Map)
@@ -58,4 +60,9 @@ function ____exports.getMapPartialMatch(self, searchText, map)
58
60
  end
59
61
  return {matchingKey, value}
60
62
  end
63
+ --- Helper function to sum every value in a map together.
64
+ function ____exports.sumMap(self, map)
65
+ local values = {__TS__Spread(map:values())}
66
+ return sumArray(nil, values)
67
+ end
61
68
  return ____exports
@@ -48,8 +48,8 @@ export declare function isDyingEggyWithNoSpidersLeft(npc: EntityNPC): boolean;
48
48
  export declare function isRaglingDeathPatch(npc: EntityNPC): boolean;
49
49
  /**
50
50
  * The base game `EntityNPC.FireProjectiles` method does not return anything, which is a problem in
51
- * situations where you need to work with the fired projectiles. This function invokes that method,
52
- * and then returns the projectiles that were spawned.
51
+ * situations where you need to work with the fired projectiles. This function runs that method, and
52
+ * then returns the projectiles that were spawned.
53
53
  *
54
54
  * @param npc The EntityNPC firing projectiles.
55
55
  * @param position The starting position of the projectiles.
@@ -143,8 +143,8 @@ function ____exports.getAliveNPCs(self, entityType, variant, subType, ignoreFrie
143
143
  )
144
144
  end
145
145
  --- The base game `EntityNPC.FireProjectiles` method does not return anything, which is a problem in
146
- -- situations where you need to work with the fired projectiles. This function invokes that method,
147
- -- and then returns the projectiles that were spawned.
146
+ -- situations where you need to work with the fired projectiles. This function runs that method, and
147
+ -- then returns the projectiles that were spawned.
148
148
  --
149
149
  -- @param npc The EntityNPC firing projectiles.
150
150
  -- @param position The starting position of the projectiles.
@@ -6,9 +6,9 @@ export declare function isCoin(pickup: EntityPickup): pickup is EntityPickupCoin
6
6
  /** For `PickupVariant.KEY` (30) */
7
7
  export declare function isKey(pickup: EntityPickup): pickup is EntityPickupKey;
8
8
  /** For `PickupVariant.BOMB` (40) */
9
- export declare function isBomb(pickup: EntityPickup): pickup is EntityPickupBomb;
9
+ export declare function isBombPickup(pickup: EntityPickup): pickup is EntityPickupBomb;
10
10
  /** For `PickupVariant.POOP` (42) */
11
- export declare function isPoop(pickup: EntityPickup): pickup is EntityPickupPoop;
11
+ export declare function isPoopPickup(pickup: EntityPickup): pickup is EntityPickupPoop;
12
12
  /** For `PickupVariant.SACK` (69) */
13
13
  export declare function isSack(pickup: EntityPickup): pickup is EntityPickupSack;
14
14
  /** For `PickupVariant.PILL` (70) */
@@ -1 +1 @@
1
- {"version":3,"file":"pickupVariants.d.ts","sourceRoot":"","sources":["../../src/functions/pickupVariants.ts"],"names":[],"mappings":";AAIA,qCAAqC;AACrC,wBAAgB,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,iBAAiB,CAEzE;AAED,oCAAoC;AACpC,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAEvE;AAED,mCAAmC;AACnC,wBAAgB,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,eAAe,CAErE;AAED,oCAAoC;AACpC,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAEvE;AAED,oCAAoC;AACpC,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAEvE;AAED,oCAAoC;AACpC,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAEvE;AAED,oCAAoC;AACpC,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAEvE;AAED,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,mBAAmB,CAE7E;AAED,4CAA4C;AAC5C,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,GACnB,MAAM,IAAI,uBAAuB,CAEnC;AAED,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAE7E;AAED,wCAAwC;AACxC,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,mBAAmB,CAE7E"}
1
+ {"version":3,"file":"pickupVariants.d.ts","sourceRoot":"","sources":["../../src/functions/pickupVariants.ts"],"names":[],"mappings":";AAIA,qCAAqC;AACrC,wBAAgB,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,iBAAiB,CAEzE;AAED,oCAAoC;AACpC,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAEvE;AAED,mCAAmC;AACnC,wBAAgB,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,eAAe,CAErE;AAED,oCAAoC;AACpC,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAE7E;AAED,oCAAoC;AACpC,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAE7E;AAED,oCAAoC;AACpC,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAEvE;AAED,oCAAoC;AACpC,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAEvE;AAED,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,mBAAmB,CAE7E;AAED,4CAA4C;AAC5C,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,GACnB,MAAM,IAAI,uBAAuB,CAEnC;AAED,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAE7E;AAED,wCAAwC;AACxC,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,mBAAmB,CAE7E"}
@@ -14,11 +14,11 @@ function ____exports.isKey(self, pickup)
14
14
  return pickup.Variant == PickupVariant.KEY
15
15
  end
16
16
  --- For `PickupVariant.BOMB` (40)
17
- function ____exports.isBomb(self, pickup)
17
+ function ____exports.isBombPickup(self, pickup)
18
18
  return pickup.Variant == PickupVariant.BOMB
19
19
  end
20
20
  --- For `PickupVariant.POOP` (42)
21
- function ____exports.isPoop(self, pickup)
21
+ function ____exports.isPoopPickup(self, pickup)
22
22
  return pickup.Variant == PickupVariant.POOP
23
23
  end
24
24
  --- For `PickupVariant.SACK` (69)
@@ -12,7 +12,7 @@ local getPlayerFamiliars = ____familiars.getPlayerFamiliars
12
12
  local ____math = require("functions.math")
13
13
  local getCircleDiscretizedPoints = ____math.getCircleDiscretizedPoints
14
14
  local ____playerIndex = require("functions.playerIndex")
15
- local getPlayers = ____playerIndex.getPlayers
15
+ local getAllPlayers = ____playerIndex.getAllPlayers
16
16
  function movePlayerAndTheirFamiliars(self, player, position)
17
17
  player.Position = position
18
18
  local familiars = getPlayerFamiliars(nil, player)
@@ -31,7 +31,7 @@ local CIRCLE_RADIUS_BETWEEN_PLAYERS = 50
31
31
  function ____exports.movePlayersToCenter(self)
32
32
  local isGreedMode = game:IsGreedMode()
33
33
  local startingPosition = isGreedMode and NEW_FLOOR_STARTING_POSITION_GREED_MODE or NEW_FLOOR_STARTING_POSITION_NORMAL_MODE
34
- local players = getPlayers(nil)
34
+ local players = getAllPlayers(nil)
35
35
  local firstPlayer = players[1]
36
36
  if firstPlayer == nil then
37
37
  return
@@ -41,9 +41,6 @@ export declare function getPlayerFromIndex(playerIndex: PlayerIndex): EntityPlay
41
41
  * Instead, we use the `EntityPlayer.GetCollectibleRNG` method with an arbitrary value of Sad Onion
42
42
  * (1). This works even if the player does not have any Sad Onions.
43
43
  *
44
- * Since the RNG value is the same for both Tainted Lazarus and Dead Tainted Lazarus, we revert to
45
- * using the RNG of The Inner Eye (2) for Dead Tainted Lazarus.
46
- *
47
44
  * Note that by default, this returns the same index for both The Forgotten and The Soul. (Even
48
45
  * though they are technically different characters, they share the same inventory and InitSeed.) If
49
46
  * this is not desired, pass true for the `differentiateForgottenAndSoul` argument, and the RNG of
@@ -1 +1 @@
1
- {"version":3,"file":"playerIndex.d.ts","sourceRoot":"","sources":["../../src/functions/playerIndex.ts"],"names":[],"mappings":";;;AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASnD;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,YAAY,EAAE,CAU9C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,EAAE,CAMpE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,GACvB,YAAY,GAAG,SAAS,CAG1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,6BAA6B,UAAQ,GACpC,WAAW,CA4Bb;AA2BD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,YAAY,GACzB,GAAG,GAAG,SAAS,CAajB;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,0BAA0B,UAAQ,GAAG,YAAY,EAAE,CAS7E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,eAAe,GACzB,YAAY,GAAG,SAAS,CAa1B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAE3D"}
1
+ {"version":3,"file":"playerIndex.d.ts","sourceRoot":"","sources":["../../src/functions/playerIndex.ts"],"names":[],"mappings":";;;AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASnD;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,YAAY,EAAE,CAU9C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,EAAE,CAMpE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,GACvB,YAAY,GAAG,SAAS,CAG1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,6BAA6B,UAAQ,GACpC,WAAW,CA4Bb;AAiBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,YAAY,GACzB,GAAG,GAAG,SAAS,CAajB;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,0BAA0B,UAAQ,GAAG,YAAY,EAAE,CAS7E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,eAAe,GACzB,YAAY,GAAG,SAAS,CAa1B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAE3D"}