isaacscript-common 15.0.0 → 15.0.2

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 (64) hide show
  1. package/dist/index.d.ts +236 -13
  2. package/dist/isaacscript-common.lua +3 -2
  3. package/dist/src/classes/callbacks/PostPlayerInitFirst.d.ts.map +1 -1
  4. package/dist/src/classes/callbacks/PostPlayerInitFirst.lua +2 -1
  5. package/dist/src/classes/features/callbackLogic/CustomGridEntities.d.ts +15 -0
  6. package/dist/src/classes/features/callbackLogic/CustomGridEntities.d.ts.map +1 -1
  7. package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.d.ts +43 -0
  8. package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.d.ts.map +1 -1
  9. package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.lua +7 -0
  10. package/dist/src/classes/features/other/CharacterHealthConversion.d.ts +3 -0
  11. package/dist/src/classes/features/other/CharacterHealthConversion.d.ts.map +1 -1
  12. package/dist/src/classes/features/other/CharacterStats.d.ts +2 -0
  13. package/dist/src/classes/features/other/CharacterStats.d.ts.map +1 -1
  14. package/dist/src/classes/features/other/CollectibleItemPoolType.d.ts +3 -0
  15. package/dist/src/classes/features/other/CollectibleItemPoolType.d.ts.map +1 -1
  16. package/dist/src/classes/features/other/CustomHotkeys.d.ts +8 -0
  17. package/dist/src/classes/features/other/CustomHotkeys.d.ts.map +1 -1
  18. package/dist/src/classes/features/other/CustomItemPools.d.ts +4 -0
  19. package/dist/src/classes/features/other/CustomItemPools.d.ts.map +1 -1
  20. package/dist/src/classes/features/other/CustomPickups.d.ts +2 -0
  21. package/dist/src/classes/features/other/CustomPickups.d.ts.map +1 -1
  22. package/dist/src/classes/features/other/CustomStages.d.ts +5 -2
  23. package/dist/src/classes/features/other/CustomStages.d.ts.map +1 -1
  24. package/dist/src/classes/features/other/CustomTrapdoors.d.ts +4 -0
  25. package/dist/src/classes/features/other/CustomTrapdoors.d.ts.map +1 -1
  26. package/dist/src/classes/features/other/DebugDisplay.d.ts +99 -9
  27. package/dist/src/classes/features/other/DebugDisplay.d.ts.map +1 -1
  28. package/dist/src/classes/features/other/DeployJSONRoom.d.ts +2 -0
  29. package/dist/src/classes/features/other/DeployJSONRoom.d.ts.map +1 -1
  30. package/dist/src/classes/features/other/DisableAllSound.d.ts +4 -0
  31. package/dist/src/classes/features/other/DisableAllSound.d.ts.map +1 -1
  32. package/dist/src/classes/features/other/SpawnCollectible.d.ts +4 -0
  33. package/dist/src/classes/features/other/SpawnCollectible.d.ts.map +1 -1
  34. package/dist/src/classes/features/other/SpawnRockAltRewards.d.ts +21 -0
  35. package/dist/src/classes/features/other/SpawnRockAltRewards.d.ts.map +1 -1
  36. package/dist/src/classes/features/other/StageHistory.d.ts +11 -1
  37. package/dist/src/classes/features/other/StageHistory.d.ts.map +1 -1
  38. package/dist/src/classes/features/other/StartAmbush.d.ts +2 -0
  39. package/dist/src/classes/features/other/StartAmbush.d.ts.map +1 -1
  40. package/dist/src/classes/features/other/TaintedLazarusPlayers.d.ts +3 -0
  41. package/dist/src/classes/features/other/TaintedLazarusPlayers.d.ts.map +1 -1
  42. package/dist/src/types/ModUpgraded.d.ts +1 -1
  43. package/dist/src/types/ModUpgraded.d.ts.map +1 -1
  44. package/package.json +1 -1
  45. package/src/classes/callbacks/PostPlayerInitFirst.ts +3 -1
  46. package/src/classes/features/callbackLogic/CustomGridEntities.ts +15 -0
  47. package/src/classes/features/callbackLogic/GameReorderedCallbacks.ts +43 -8
  48. package/src/classes/features/other/CharacterHealthConversion.ts +3 -0
  49. package/src/classes/features/other/CharacterStats.ts +2 -0
  50. package/src/classes/features/other/CollectibleItemPoolType.ts +3 -0
  51. package/src/classes/features/other/CustomHotkeys.ts +8 -0
  52. package/src/classes/features/other/CustomItemPools.ts +4 -0
  53. package/src/classes/features/other/CustomPickups.ts +2 -0
  54. package/src/classes/features/other/CustomStages.ts +5 -2
  55. package/src/classes/features/other/CustomTrapdoors.ts +4 -0
  56. package/src/classes/features/other/DebugDisplay.ts +99 -9
  57. package/src/classes/features/other/DeployJSONRoom.ts +2 -0
  58. package/src/classes/features/other/DisableAllSound.ts +4 -0
  59. package/src/classes/features/other/SpawnCollectible.ts +4 -0
  60. package/src/classes/features/other/SpawnRockAltRewards.ts +21 -0
  61. package/src/classes/features/other/StageHistory.ts +11 -1
  62. package/src/classes/features/other/StartAmbush.ts +2 -0
  63. package/src/classes/features/other/TaintedLazarusPlayers.ts +3 -0
  64. package/src/types/ModUpgraded.ts +2 -2
package/dist/index.d.ts CHANGED
@@ -1036,6 +1036,9 @@ declare class CharacterHealthConversion extends Feature {
1036
1036
  * containers --> soul hearts) or Dark Judas (red heart containers --> black hearts).
1037
1037
  *
1038
1038
  * Call this function once at the beginning of your mod to declare the health conversion type.
1039
+ *
1040
+ * In order to use this function, you must upgrade your mod with
1041
+ * `ISCFeature.CHARACTER_HEALTH_CONVERSION`.
1039
1042
  */
1040
1043
  registerCharacterHealthConversion(playerType: PlayerType, conversionHeartSubType: ConversionHeartSubType): void;
1041
1044
  }
@@ -1068,6 +1071,8 @@ declare class CharacterStats extends Feature {
1068
1071
  *
1069
1072
  * Note that the format for the `CacheFlag.FIRE_DELAY` value should be in the tears stat format,
1070
1073
  * not the `MaxFireDelay` format.
1074
+ *
1075
+ * In order to use this function, you must upgrade your mod with `ISCFeature.CHARACTER_STATS`.
1071
1076
  */
1072
1077
  registerCharacterStats(playerType: PlayerType, statMap: Map<CacheFlag, number> | ReadonlyMap<CacheFlag, number>): void;
1073
1078
  }
@@ -1228,6 +1233,9 @@ declare class CollectibleItemPoolType extends Feature {
1228
1233
  * Helper function to get the item pool type that a given collectible came from. Since there is no
1229
1234
  * native method in the API to get this, we listen in the `PRE_GET_COLLECTIBLE` callback for item
1230
1235
  * pool types, and then assume that the next spawned collectible will match.
1236
+ *
1237
+ * In order to use this function, you must upgrade your mod with
1238
+ * `ISCFeature.COLLECTIBLE_ITEM_POOL_TYPE`.
1231
1239
  */
1232
1240
  getCollectibleItemPoolType(collectible: EntityPickup): ItemPoolType;
1233
1241
  }
@@ -1434,6 +1442,9 @@ declare class CustomGridEntities extends Feature {
1434
1442
  * will reappear if the player leaves and re-enters the room. (It will be manually respawned in
1435
1443
  * the `POST_NEW_ROOM` callback.)
1436
1444
  *
1445
+ * In order to use this function, you must upgrade your mod with
1446
+ * `ISCFeature.CUSTOM_GRID_ENTITIES`.
1447
+ *
1437
1448
  * Custom grid entities are built on top of real grid entities. You can use any existing grid
1438
1449
  * entity type as a base. For example, if you want to create a custom rock that would be breakable
1439
1450
  * like a normal rock, then you should specify `GridEntityType.ROCK` as the base grid entity type.
@@ -1510,6 +1521,9 @@ declare class CustomGridEntities extends Feature {
1510
1521
  /**
1511
1522
  * Helper function to remove a custom grid entity created by the `spawnCustomGrid` function.
1512
1523
  *
1524
+ * In order to use this function, you must upgrade your mod with
1525
+ * `ISCFeature.CUSTOM_GRID_ENTITIES`.
1526
+ *
1513
1527
  * @param gridIndexOrPositionOrGridEntity You can specify the custom grid entity to remove by
1514
1528
  * providing the grid index, the room position, or the grid entity
1515
1529
  * itself.
@@ -1526,6 +1540,9 @@ declare class CustomGridEntities extends Feature {
1526
1540
  /**
1527
1541
  * Helper function to get the custom grid entities in the current room. Returns an array of tuples
1528
1542
  * containing the raw decoration grid entity and the associated entity data.
1543
+ *
1544
+ * In order to use this function, you must upgrade your mod with
1545
+ * `ISCFeature.CUSTOM_GRID_ENTITIES`.
1529
1546
  */
1530
1547
  getCustomGridEntities(): Array<[
1531
1548
  gridEntity: GridEntity,
@@ -1535,11 +1552,17 @@ declare class CustomGridEntities extends Feature {
1535
1552
  * Helper function to get the custom `GridEntityType` from a `GridEntity` or grid index. Returns
1536
1553
  * undefined if the provided `GridEntity` is not a custom grid entity, or if there was not a grid
1537
1554
  * entity on the provided grid index.
1555
+ *
1556
+ * In order to use this function, you must upgrade your mod with
1557
+ * `ISCFeature.CUSTOM_GRID_ENTITIES`.
1538
1558
  */
1539
1559
  getCustomGridEntityType(gridEntityOrGridIndex: GridEntity | int): GridEntityType | undefined;
1540
1560
  /**
1541
1561
  * Helper function to check if a `GridEntity` is a custom grid entity or if a grid index has a
1542
1562
  * custom grid entity.
1563
+ *
1564
+ * In order to use this function, you must upgrade your mod with
1565
+ * `ISCFeature.CUSTOM_GRID_ENTITIES`.
1543
1566
  */
1544
1567
  isCustomGridEntity(gridEntityOrGridIndex: GridEntity | int): boolean;
1545
1568
  }
@@ -1568,6 +1591,8 @@ declare class CustomHotkeys extends Feature {
1568
1591
  * hardcoded and is instead the return value of a provided function. This is useful for situations
1569
1592
  * where the key can change (like if end-users can specify a custom hotkey using Mod Config Menu).
1570
1593
  *
1594
+ * In order to use this function, you must upgrade your mod with `ISCFeature.CUSTOM_HOTKEYS`.
1595
+ *
1571
1596
  * @param getKeyFunc The function that returns the key that will trigger the hotkey.
1572
1597
  * @param triggerFunc A function containing the arbitrary code that you want to execute when the
1573
1598
  * hotkey is triggered.
@@ -1579,6 +1604,8 @@ declare class CustomHotkeys extends Feature {
1579
1604
  * This can be used to easily set up custom hotkeys to facilitate custom game features or to
1580
1605
  * assist in debugging.
1581
1606
  *
1607
+ * In order to use this function, you must upgrade your mod with `ISCFeature.CUSTOM_HOTKEYS`.
1608
+ *
1582
1609
  * @param keyboard The key that you want to trigger the hotkey.
1583
1610
  * @param triggerFunc A function containing the arbitrary code that you want to execute when the
1584
1611
  * hotkey is triggered.
@@ -1587,6 +1614,8 @@ declare class CustomHotkeys extends Feature {
1587
1614
  /**
1588
1615
  * Helper function to remove a hotkey created with the `setConditionalHotkey` function.
1589
1616
  *
1617
+ * In order to use this function, you must upgrade your mod with `ISCFeature.CUSTOM_HOTKEYS`.
1618
+ *
1590
1619
  * @param getKeyFunc Equal to the `getKeyFunc` that you passed when initially registering the
1591
1620
  * hotkey.
1592
1621
  */
@@ -1594,6 +1623,8 @@ declare class CustomHotkeys extends Feature {
1594
1623
  /**
1595
1624
  * Helper function to remove a hotkey created with the `setHotkey` function.
1596
1625
  *
1626
+ * In order to use this function, you must upgrade your mod with `ISCFeature.CUSTOM_HOTKEYS`.
1627
+ *
1597
1628
  * @param keyboard Equal to the keyboard value that you passed when initially registering the
1598
1629
  * hotkey.
1599
1630
  */
@@ -1625,6 +1656,8 @@ declare class CustomItemPools extends Feature {
1625
1656
  *
1626
1657
  * Note that custom item pools do not currently support partial weight decrementation on sight.
1627
1658
  *
1659
+ * In order to use this function, you must upgrade your mod with `ISCFeature.CUSTOM_ITEM_POOLS`.
1660
+ *
1628
1661
  * @param itemPoolTypeCustom An integer that identifies what kind of item pool you are creating.
1629
1662
  * It should correspond to a local `ItemPoolTypeCustom` enum in your
1630
1663
  * mod. The integer can be any unique value and can safely overlap with
@@ -1643,6 +1676,8 @@ declare class CustomItemPools extends Feature {
1643
1676
  * By default, a collectible will not be removed from the pool once it is selected, unless the
1644
1677
  * `decrease` argument is set to true (similar to how a vanilla item pool works).
1645
1678
  *
1679
+ * In order to use this function, you must upgrade your mod with `ISCFeature.CUSTOM_ITEM_POOLS`.
1680
+ *
1646
1681
  * @param itemPoolTypeCustom An integer representing the custom item pool to use.
1647
1682
  * @param decrease Optional. Whether or not to remove the selected collectible from the item pool.
1648
1683
  * Default is true.
@@ -1674,6 +1709,8 @@ declare class CustomPickups extends Feature {
1674
1709
  * Note that when you specify your custom pickup in the "entities2.xml" file, it should have a
1675
1710
  * type of "5" and be associated with an anm2 file that has a "Collect" animation.
1676
1711
  *
1712
+ * In order to use this function, you must upgrade your mod with `ISCFeature.CUSTOM_PICKUPS`.
1713
+ *
1677
1714
  * @param pickupVariantCustom The variant for the corresponding custom pickup.
1678
1715
  * @param subType The sub-type for the corresponding custom pickup.
1679
1716
  * @param collectFunc The function to run when the player collects this pickup.
@@ -1832,8 +1869,9 @@ declare class CustomStages extends Feature {
1832
1869
  * Helper function to warp to a custom stage/level.
1833
1870
  *
1834
1871
  * Custom stages/levels must first be defined in the "tsconfig.json" file. See the documentation
1835
- * for
1836
- * more details: https://isaacscript.github.io/main/custom-stages/
1872
+ * for more details: https://isaacscript.github.io/main/custom-stages/
1873
+ *
1874
+ * In order to use this function, you must upgrade your mod with `ISCFeature.CUSTOM_STAGES`.
1837
1875
  *
1838
1876
  * @param name The name of the custom stage, corresponding to what is in the "tsconfig.json" file.
1839
1877
  * @param firstFloor Optional. Whether to go to the first floor or the second floor. For example,
@@ -1848,6 +1886,8 @@ declare class CustomStages extends Feature {
1848
1886
  /**
1849
1887
  * Helper function to disable the custom stage. This is typically called before taking the player
1850
1888
  * to a vanilla floor.
1889
+ *
1890
+ * In order to use this function, you must upgrade your mod with `ISCFeature.CUSTOM_STAGES`.
1851
1891
  */
1852
1892
  disableCustomStage(): void;
1853
1893
  }
@@ -2340,6 +2380,8 @@ declare class CustomTrapdoors extends Feature {
2340
2380
  * Registration is needed so that custom trapdoors can be serializable when the player saves and
2341
2381
  * quits.
2342
2382
  *
2383
+ * In order to use this function, you must upgrade your mod with `ISCFeature.CUSTOM_TRAPDOORS`.
2384
+ *
2343
2385
  * @param destinationName The integer that identifies the type of custom trapdoor. It should
2344
2386
  * correspond to a local `CustomTrapdoorType` enum in your mod. The integer
2345
2387
  * can be any unique value and can safely overlap with values chosen by
@@ -2363,6 +2405,8 @@ declare class CustomTrapdoors extends Feature {
2363
2405
  * Under the hood, the custom trapdoor is represented by a decoration grid entity and is manually
2364
2406
  * respawned every time the player re-enters the room.
2365
2407
  *
2408
+ * In order to use this function, you must upgrade your mod with `ISCFeature.CUSTOM_TRAPDOORS`.
2409
+ *
2366
2410
  * @param gridIndexOrPosition The location in the room to spawn the trapdoor.
2367
2411
  * @param destinationName Optional. A string representing the name of the of destination that the
2368
2412
  * custom trapdoor will take the player to. Default is undefined, which
@@ -2412,166 +2456,256 @@ declare class DebugDisplay extends Feature {
2412
2456
  * If the "togglePlayerDisplay" function is called, text will be drawn on the screen next to each
2413
2457
  * player. Use this function to specify a callback function that returns the string that should be
2414
2458
  * drawn.
2459
+ *
2460
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2415
2461
  */
2416
2462
  setPlayerDisplay(textCallback: (player: EntityPlayer) => string): void;
2417
2463
  /**
2418
2464
  * If the "toggleTearDisplay" function is called, text will be drawn on the screen next to each
2419
2465
  * tear. Use this function to specify a callback function that returns the string that should be
2420
2466
  * drawn.
2467
+ *
2468
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2421
2469
  */
2422
2470
  setTearDisplay(textCallback: (tear: EntityTear) => string): void;
2423
2471
  /**
2424
2472
  * If the "toggleFamiliarDisplay" function is called, text will be drawn on the screen next to
2425
2473
  * each familiar. Use this function to specify a callback function that returns the string that
2426
2474
  * should be drawn.
2475
+ *
2476
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2427
2477
  */
2428
2478
  setFamiliarDisplay(textCallback: (familiar: EntityFamiliar) => string): void;
2429
2479
  /**
2430
2480
  * If the "toggleBombDisplay" function is called, text will be drawn on the screen next to each
2431
2481
  * bomb. Use this function to specify a callback function that returns the string that should be
2432
2482
  * drawn.
2483
+ *
2484
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2433
2485
  */
2434
2486
  setBombDisplay(textCallback: (bomb: EntityBomb) => string): void;
2435
2487
  /**
2436
2488
  * If the "togglePickupDisplay" function is called, text will be drawn on the screen next to each
2437
2489
  * pickup. Use this function to specify a callback function that returns the string that should be
2438
2490
  * drawn.
2491
+ *
2492
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2439
2493
  */
2440
2494
  setPickupDisplay(textCallback: (pickup: EntityPickup) => string): void;
2441
2495
  /**
2442
2496
  * If the "toggleSlotDisplay" function is called, text will be drawn on the screen next to each
2443
2497
  * slot. Use this function to specify a callback function that returns the string that should be
2444
2498
  * drawn.
2499
+ *
2500
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2445
2501
  */
2446
2502
  setSlotDisplay(textCallback: (slot: Entity) => string): void;
2447
2503
  /**
2448
2504
  * If the "toggleLaserDisplay" function is called, text will be drawn on the screen next to each
2449
2505
  * laser. Use this function to specify a callback function that returns the string that should be
2450
2506
  * drawn.
2507
+ *
2508
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2451
2509
  */
2452
2510
  setLaserDisplay(textCallback: (laser: EntityLaser) => string): void;
2453
2511
  /**
2454
2512
  * If the "toggleKnifeDisplay" function is called, text will be drawn on the screen next to each
2455
2513
  * knife. Use this function to specify a callback function that returns the string that should be
2456
2514
  * drawn.
2515
+ *
2516
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2457
2517
  */
2458
2518
  setKnifeDisplay(textCallback: (knife: EntityKnife) => string): void;
2459
2519
  /**
2460
2520
  * If the "toggleProjectileDisplay" function is called, text will be drawn on the screen next to
2461
2521
  * each projectile. Use this function to specify a callback function that returns the string that
2462
2522
  * should be drawn.
2523
+ *
2524
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2463
2525
  */
2464
2526
  setProjectileDisplay(textCallback: (projectile: EntityProjectile) => string): void;
2465
2527
  /**
2466
2528
  * If the "extra console commands" feature is specified, the "effectDisplay" console command will
2467
2529
  * draw text on the screen next to each effect. Use this function to specify a callback function
2468
2530
  * that returns the string that should be drawn.
2531
+ *
2532
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2469
2533
  */
2470
2534
  setEffectDisplay(textCallback: (effect: EntityEffect) => string): void;
2471
2535
  /**
2472
2536
  * If the "toggleNPCDisplay" function is called, text will be drawn on the screen next to each
2473
2537
  * NPC. Use this function to specify a callback function that returns the string that should be
2474
2538
  * drawn.
2539
+ *
2540
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2475
2541
  */
2476
2542
  setNPCDisplay(textCallback: (npc: EntityNPC) => string): void;
2477
2543
  /**
2478
2544
  * If the "toggleRockDisplay" function is called, text will be drawn on the screen next to each
2479
2545
  * rock. Use this function to specify a callback function that returns the string that should be
2480
2546
  * drawn.
2547
+ *
2548
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2481
2549
  */
2482
2550
  setRockDisplay(textCallback: (rock: GridEntityRock) => string): void;
2483
2551
  /**
2484
2552
  * If the "togglePitDisplay" function is called, text will be drawn on the screen next to each
2485
2553
  * pit. Use this function to specify a callback function that returns the string that should be
2486
2554
  * drawn.
2555
+ *
2556
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2487
2557
  */
2488
2558
  setPitDisplay(textCallback: (pit: GridEntityPit) => string): void;
2489
2559
  /**
2490
2560
  * If the "toggleSpikesDisplay" function is called, text will be drawn on the screen next to each
2491
2561
  * spikes. Use this function to specify a callback function that returns the string that should be
2492
2562
  * drawn.
2563
+ *
2564
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2493
2565
  */
2494
2566
  setSpikesDisplay(textCallback: (spikes: GridEntitySpikes) => string): void;
2495
2567
  /**
2496
2568
  * If the "toggleTNTDisplay" function is called, text will be drawn on the screen next to each
2497
2569
  * TNT. Use this function to specify a callback function that returns the string that should be
2498
2570
  * drawn.
2571
+ *
2572
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2499
2573
  */
2500
2574
  setTNTDisplay(textCallback: (tnt: GridEntityTNT) => string): void;
2501
2575
  /**
2502
2576
  * If the "togglePoopDisplay" function is called, text will be drawn on the screen next to each
2503
2577
  * poop. Use this function to specify a callback function that returns the string that should be
2504
2578
  * drawn.
2579
+ *
2580
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2505
2581
  */
2506
2582
  setPoopDisplay(textCallback: (poop: GridEntityPoop) => string): void;
2507
2583
  /**
2508
2584
  * If the "toggleDoorDisplay" function is called, text will be drawn on the screen next to each
2509
2585
  * door. Use this function to specify a callback function that returns the string that should be
2510
2586
  * drawn.
2587
+ *
2588
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2511
2589
  */
2512
2590
  setDoorDisplay(textCallback: (door: GridEntityDoor) => string): void;
2513
2591
  /**
2514
2592
  * If the "togglePressurePlateDisplay" function is called, text will be drawn on the screen next
2515
2593
  * to each pressure plate. Use this function to specify a callback function that returns the
2516
2594
  * string that should be drawn.
2595
+ *
2596
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2517
2597
  */
2518
2598
  setPressurePlateDisplay(textCallback: (pressurePlate: GridEntityPressurePlate) => string): void;
2519
2599
  private toggleFeature;
2520
2600
  /**
2521
2601
  * Toggles the debug display for players, which will draw text on the screen next to each player.
2602
+ *
2603
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2522
2604
  */
2523
2605
  togglePlayerDisplay(): void;
2524
- /** Toggles the debug display for tears, which will draw text on the screen next to each tear. */
2606
+ /**
2607
+ * Toggles the debug display for tears, which will draw text on the screen next to each tear.
2608
+ *
2609
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2610
+ */
2525
2611
  toggleTearDisplay(): void;
2526
2612
  /**
2527
2613
  * Toggles the debug display for familiars, which will draw text on the screen next to each
2528
2614
  * familiar.
2615
+ *
2616
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2529
2617
  */
2530
2618
  toggleFamiliarDisplay(): void;
2531
- /** Toggles the debug display for bombs, which will draw text on the screen next to each bomb. */
2619
+ /**
2620
+ * Toggles the debug display for bombs, which will draw text on the screen next to each bomb.
2621
+ *
2622
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2623
+ */
2532
2624
  toggleBombDisplay(): void;
2533
2625
  /**
2534
2626
  * Toggles the debug display for pickups, which will draw text on the screen next to each pickup.
2627
+ *
2628
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2535
2629
  */
2536
2630
  togglePickupDisplay(): void;
2537
- /** Toggles the debug display for slots, which will draw text on the screen next to each slot. */
2631
+ /**
2632
+ * Toggles the debug display for slots, which will draw text on the screen next to each slot.
2633
+ *
2634
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2635
+ */
2538
2636
  toggleSlotDisplay(): void;
2539
2637
  /**
2540
2638
  * Toggles the debug display for lasers, which will draw text on the screen next to each laser.
2639
+ *
2640
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2541
2641
  */
2542
2642
  toggleLaserDisplay(): void;
2543
2643
  /**
2544
2644
  * Toggles the debug display for knives, which will draw text on the screen next to each knife.
2645
+ *
2646
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2545
2647
  */
2546
2648
  toggleKnifeDisplay(): void;
2547
2649
  /**
2548
2650
  * Toggles the debug display for projectiles, which will draw text on the screen next to each
2549
2651
  * projectile.
2652
+ *
2653
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2550
2654
  */
2551
2655
  toggleProjectileDisplay(): void;
2552
2656
  /**
2553
2657
  * Toggles the debug display for effects, which will draw text on the screen next to each effect.
2658
+ *
2659
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2554
2660
  */
2555
2661
  toggleEffectDisplay(): void;
2556
- /** Toggles the debug display for NPCs, which will draw text on the screen next to each NPC. */
2662
+ /**
2663
+ * Toggles the debug display for NPCs, which will draw text on the screen next to each NPC.
2664
+ *
2665
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2666
+ */
2557
2667
  toggleNPCDisplay(): void;
2558
- /** Toggles the debug display for rocks, which will draw text on the screen next to each rock. */
2668
+ /**
2669
+ * Toggles the debug display for rocks, which will draw text on the screen next to each rock.
2670
+ *
2671
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2672
+ */
2559
2673
  toggleRockDisplay(): void;
2560
- /** Toggles the debug display for pits, which will draw text on the screen next to each pit. */
2674
+ /**
2675
+ * Toggles the debug display for pits, which will draw text on the screen next to each pit.
2676
+ *
2677
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2678
+ */
2561
2679
  togglePitDisplay(): void;
2562
2680
  /**
2563
2681
  * Toggles the debug display for spikes, which will draw text on the screen next to each spike.
2682
+ *
2683
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2564
2684
  */
2565
2685
  toggleSpikesDisplay(): void;
2566
- /** Toggles the debug display for TNT, which will draw text on the screen next to each TNT. */
2686
+ /**
2687
+ * Toggles the debug display for TNT, which will draw text on the screen next to each TNT.
2688
+ *
2689
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2690
+ */
2567
2691
  toggleTNTDisplay(): void;
2568
- /** Toggles the debug display for poops, which will draw text on the screen next to each poop. */
2692
+ /**
2693
+ * Toggles the debug display for poops, which will draw text on the screen next to each poop.
2694
+ *
2695
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2696
+ */
2569
2697
  togglePoopDisplay(): void;
2570
- /** Toggles the debug display for doors, which will draw text on the screen next to each door. */
2698
+ /**
2699
+ * Toggles the debug display for doors, which will draw text on the screen next to each door.
2700
+ *
2701
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2702
+ */
2571
2703
  toggleDoorDisplay(): void;
2572
2704
  /**
2573
2705
  * Toggles the debug display for pressure plates, which will draw text on the screen next to each
2574
2706
  * pressure plate.
2707
+ *
2708
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEBUG_DISPLAY`.
2575
2709
  */
2576
2710
  togglePressurePlateDisplay(): void;
2577
2711
  }
@@ -2807,6 +2941,8 @@ declare class DeployJSONRoom extends Feature {
2807
2941
  * }
2808
2942
  * ```
2809
2943
  *
2944
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DEPLOY_JSON_ROOM`.
2945
+ *
2810
2946
  * @param jsonRoom The JSON room to deploy.
2811
2947
  * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
2812
2948
  * the `RNG.Next` method will be called. Default is `getRandomSeed()`.
@@ -2870,6 +3006,8 @@ declare class DisableAllSound extends Feature {
2870
3006
  *
2871
3007
  * Use this function to set things back to normal after having used `disableAllSounds`.
2872
3008
  *
3009
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DISABLE_ALL_SOUND`.
3010
+ *
2873
3011
  * @param key The name of the mod feature that is requesting the enable/disable. This is needed so
2874
3012
  * that multiple mod features can work in tandem.
2875
3013
  */
@@ -2879,6 +3017,8 @@ declare class DisableAllSound extends Feature {
2879
3017
  *
2880
3018
  * Use the `enableAllSounds` helper function to set things back to normal.
2881
3019
  *
3020
+ * In order to use this function, you must upgrade your mod with `ISCFeature.DISABLE_ALL_SOUND`.
3021
+ *
2882
3022
  * @param key The name of the mod feature that is requesting the enable/disable. This is needed so
2883
3023
  * that multiple mod features can work in tandem.
2884
3024
  */
@@ -3569,6 +3709,15 @@ export declare const game: Game;
3569
3709
  /** Game frames are what is returned by the `Game.GetFrameCount` method. */
3570
3710
  export declare const GAME_FRAMES_PER_SECOND = 30;
3571
3711
 
3712
+ /**
3713
+ * By default, callbacks fire in the following order:
3714
+ * - `POST_NEW_ROOM` --> `POST_NEW_LEVEL` --> `POST_GAME_STARTED`
3715
+ *
3716
+ * It is easier to write mod code if the callbacks run in a more logical order:
3717
+ * - `POST_GAME_STARTED` --> `POST_NEW_LEVEL` --> `POST_NEW_ROOM`
3718
+ *
3719
+ * Manually reorganize the callback execution so that this is the case.
3720
+ */
3572
3721
  declare class GameReorderedCallbacks extends Feature {
3573
3722
  private currentStage;
3574
3723
  private currentStageType;
@@ -3584,8 +3733,42 @@ declare class GameReorderedCallbacks extends Feature {
3584
3733
  private postNewLevel;
3585
3734
  private postNewRoom;
3586
3735
  private recordCurrentStage;
3736
+ /**
3737
+ * Helper function to tell the `POST_NEW_LEVEL_REORDERED` callback that it should always fire on
3738
+ * the next `POST_NEW_LEVEL`.
3739
+ *
3740
+ * If some specific cases, mods can change the current level during run initialization on the 0th
3741
+ * frame. However, due to how the callback reordering works, the custom `POST_NEW_LEVEL` callback
3742
+ * will never fire on the 0th frame. To get around this, call this function before changing levels
3743
+ * to temporarily force the callback to fire.
3744
+ *
3745
+ * In order to use this function, you must upgrade your mod with
3746
+ * `ISCFeature.CUSTOM_GRID_ENTITIES`.
3747
+ */
3587
3748
  forceNewLevelCallback(): void;
3749
+ /**
3750
+ * Helper function to tell the `POST_NEW_ROOM_REORDERED` callback that it should always fire on
3751
+ * the next `POST_NEW_ROOM`.
3752
+ *
3753
+ * If some specific cases, mods can change the current room during run initialization on the 0th
3754
+ * frame. However, due to how the callback reordering works, the custom `POST_NEW_ROOM` callback
3755
+ * will never fire on the 0th frame. To get around this, call this function before changing rooms
3756
+ * to temporarily force the callback to fire.
3757
+ *
3758
+ * In order to use this function, you must upgrade your mod with
3759
+ * `ISCFeature.CUSTOM_GRID_ENTITIES`.
3760
+ */
3588
3761
  forceNewRoomCallback(): void;
3762
+ /**
3763
+ * Helper function to manually set the variable that the reordered callback logic uses to track
3764
+ * the current stage and stage type.
3765
+ *
3766
+ * This is useful because if the stage is changed with the `Game.SetStage` method, the reordered
3767
+ * callbacks will stop working.
3768
+ *
3769
+ * In order to use this function, you must upgrade your mod with
3770
+ * `ISCFeature.CUSTOM_GRID_ENTITIES`.
3771
+ */
3589
3772
  reorderedCallbacksSetStage(stage: LevelStage, stageType: StageType): void;
3590
3773
  }
3591
3774
 
@@ -10276,7 +10459,7 @@ export declare class ModFeature {
10276
10459
  * By specifying one or more optional features, end-users will get a version of `ModUpgraded` that
10277
10460
  * has extra methods corresponding to the features that were specified.
10278
10461
  */
10279
- export declare type ModUpgraded<T extends readonly ISCFeature[]> = ModUpgradedBase & ISCFeaturesToKeys<T>;
10462
+ export declare type ModUpgraded<T extends readonly ISCFeature[] = []> = ModUpgradedBase & ISCFeaturesToKeys<T>;
10280
10463
 
10281
10464
  /**
10282
10465
  * `isaacscript-common` has many custom callbacks that you can use in your mods. Instead of
@@ -12958,6 +13141,8 @@ declare class SpawnCollectible extends Feature {
12958
13141
  * to be a quest item), then you can use the `spawnCollectibleUnsafe` helper function instead
12959
13142
  * (which does not require an upgraded mod).
12960
13143
  *
13144
+ * In order to use this function, you must upgrade your mod with `ISCFeature.SPAWN_COLLECTIBLE`.
13145
+ *
12961
13146
  * @param collectibleType The collectible type to spawn.
12962
13147
  * @param position The position to spawn the collectible at.
12963
13148
  * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
@@ -12976,6 +13161,8 @@ declare class SpawnCollectible extends Feature {
12976
13161
  * collectibles costing coins and preventing quest items from being rotated by Tainted Isaac's
12977
13162
  * rotation mechanic.
12978
13163
  *
13164
+ * In order to use this function, you must upgrade your mod with `ISCFeature.SPAWN_COLLECTIBLE`.
13165
+ *
12979
13166
  * @param itemPoolType The item pool to draw the collectible type from.
12980
13167
  * @param position The position to spawn the collectible at.
12981
13168
  * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
@@ -13185,6 +13372,9 @@ declare class SpawnRockAltRewards extends Feature {
13185
13372
  * The logic in this function is based on the rewards listed on the wiki:
13186
13373
  * https://bindingofisaacrebirth.fandom.com/wiki/Rocks
13187
13374
  *
13375
+ * In order to use this function, you must upgrade your mod with
13376
+ * `ISCFeature.SPAWN_ALT_ROCK_REWARDS`.
13377
+ *
13188
13378
  * @param position The place to spawn the reward.
13189
13379
  * @param rockAltType The type of reward to spawn. For example, `RockAltType.URN` will have a
13190
13380
  * chance at spawning coins and spiders.
@@ -13199,6 +13389,9 @@ declare class SpawnRockAltRewards extends Feature {
13199
13389
  * breaks of `RockAltType.URN`.
13200
13390
  *
13201
13391
  * For more information, see the documentation for the `spawnRockAltReward` function.
13392
+ *
13393
+ * In order to use this function, you must upgrade your mod with
13394
+ * `ISCFeature.SPAWN_ALT_ROCK_REWARDS`.
13202
13395
  */
13203
13396
  spawnRockAltRewardUrn(position: Vector, rng: RNG): boolean;
13204
13397
  /**
@@ -13206,6 +13399,9 @@ declare class SpawnRockAltRewards extends Feature {
13206
13399
  * breaks of `RockAltType.MUSHROOM`.
13207
13400
  *
13208
13401
  * For more information, see the documentation for the `spawnRockAltReward` function.
13402
+ *
13403
+ * In order to use this function, you must upgrade your mod with
13404
+ * `ISCFeature.SPAWN_ALT_ROCK_REWARDS`.
13209
13405
  */
13210
13406
  spawnRockAltRewardMushroom(position: Vector, rng: RNG): boolean;
13211
13407
  /**
@@ -13213,6 +13409,9 @@ declare class SpawnRockAltRewards extends Feature {
13213
13409
  * breaks of `RockAltType.SKULL`.
13214
13410
  *
13215
13411
  * For more information, see the documentation for the `spawnRockAltReward` function.
13412
+ *
13413
+ * In order to use this function, you must upgrade your mod with
13414
+ * `ISCFeature.SPAWN_ALT_ROCK_REWARDS`.
13216
13415
  */
13217
13416
  spawnRockAltRewardSkull(position: Vector, rng: RNG): boolean;
13218
13417
  /**
@@ -13220,6 +13419,9 @@ declare class SpawnRockAltRewards extends Feature {
13220
13419
  * breaks of `RockAltType.POLYP`.
13221
13420
  *
13222
13421
  * For more information, see the documentation for the `spawnRockAltReward` function.
13422
+ *
13423
+ * In order to use this function, you must upgrade your mod with
13424
+ * `ISCFeature.SPAWN_ALT_ROCK_REWARDS`.
13223
13425
  */
13224
13426
  spawnRockAltRewardPolyp(position: Vector, rng: RNG): boolean;
13225
13427
  /**
@@ -13227,6 +13429,9 @@ declare class SpawnRockAltRewards extends Feature {
13227
13429
  * breaks of `RockAltType.BUCKET_DOWNPOUR`.
13228
13430
  *
13229
13431
  * For more information, see the documentation for the `spawnRockAltReward` function.
13432
+ *
13433
+ * In order to use this function, you must upgrade your mod with
13434
+ * `ISCFeature.SPAWN_ALT_ROCK_REWARDS`.
13230
13435
  */
13231
13436
  spawnRockAltRewardBucketDownpour(position: Vector, rng: RNG): boolean;
13232
13437
  /**
@@ -13234,6 +13439,9 @@ declare class SpawnRockAltRewards extends Feature {
13234
13439
  * breaks of `RockAltType.BUCKET_DROSS`.
13235
13440
  *
13236
13441
  * For more information, see the documentation for the `spawnRockAltReward` function.
13442
+ *
13443
+ * In order to use this function, you must upgrade your mod with
13444
+ * `ISCFeature.SPAWN_ALT_ROCK_REWARDS`.
13237
13445
  */
13238
13446
  spawnRockAltRewardBucketDross(position: Vector, rng: RNG): boolean;
13239
13447
  }
@@ -13328,6 +13536,8 @@ declare class StageHistory extends Feature {
13328
13536
  * that the next stage type can be properly calculated on The Ascent (which makes it unlike the
13329
13537
  * `getNextStageType` function).
13330
13538
  *
13539
+ * In order to use this function, you must upgrade your mod with `ISCFeature.STAGE_HISTORY`.
13540
+ *
13331
13541
  * @param upwards Whether or not the player should go up to Cathedral in the case of being on Womb
13332
13542
  * 2. Default is false.
13333
13543
  */
@@ -13339,9 +13549,15 @@ declare class StageHistory extends Feature {
13339
13549
  * This function accounts for the previous floors that a player has visited thus far on the run so
13340
13550
  * that the next stage can be properly calculated on The Ascent (which makes it unlike the
13341
13551
  * `getNextStage` function).
13552
+ *
13553
+ * In order to use this function, you must upgrade your mod with `ISCFeature.STAGE_HISTORY`.
13342
13554
  */
13343
13555
  getNextStageWithHistory(): LevelStage;
13344
- /** Helper function to get all of the stages that a player has visited thus far on this run. */
13556
+ /**
13557
+ * Helper function to get all of the stages that a player has visited thus far on this run.
13558
+ *
13559
+ * In order to use this function, you must upgrade your mod with `ISCFeature.STAGE_HISTORY`.
13560
+ */
13345
13561
  getStageHistory(): ReadonlyArray<[
13346
13562
  stage: LevelStage,
13347
13563
  stageType: StageType
@@ -13350,6 +13566,8 @@ declare class StageHistory extends Feature {
13350
13566
  * Helper function to check if a player has previous visited a particular stage (or stage + stage
13351
13567
  * type combination) on this run.
13352
13568
  *
13569
+ * In order to use this function, you must upgrade your mod with `ISCFeature.STAGE_HISTORY`.
13570
+ *
13353
13571
  * @param stage The stage to check for.
13354
13572
  * @param stageType Optional. If provided, will check for a specific stage and stage type
13355
13573
  * combination.
@@ -13372,6 +13590,8 @@ declare class StartAmbush extends Feature {
13372
13590
  *
13373
13591
  * Specifically, this is performed by spawning a sack on top of the player, waiting a game frame,
13374
13592
  * and then removing the sack and the pickups that the sack dropped.
13593
+ *
13594
+ * In order to use this function, you must upgrade your mod with `ISCFeature.START_AMBUSH`.
13375
13595
  */
13376
13596
  startAmbush(): void;
13377
13597
  }
@@ -13496,6 +13716,9 @@ declare class TaintedLazarusPlayers extends Feature {
13496
13716
  * If you call the `EntityPlayer.Exists` method on the returned object, it will return false.
13497
13717
  * However, you can still call the other methods like you normally would (e.g.
13498
13718
  * `EntityPlayer.AddCollectible`).
13719
+ *
13720
+ * In order to use this function, you must upgrade your mod with
13721
+ * `ISCFeature.CHARACTER_HEALTH_CONVERSION`.
13499
13722
  */
13500
13723
  getTaintedLazarusSubPlayer(player: EntityPlayer): EntityPlayer | undefined;
13501
13724
  }