isaacscript-common 7.17.5 → 8.0.1

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 (76) hide show
  1. package/dist/core/constantsFirstLast.d.ts +10 -85
  2. package/dist/core/constantsFirstLast.d.ts.map +1 -1
  3. package/dist/core/constantsFirstLast.lua +10 -90
  4. package/dist/enums/ModCallbackCustom.d.ts +21 -0
  5. package/dist/enums/ModCallbackCustom.d.ts.map +1 -1
  6. package/dist/features/characterStats.lua +2 -2
  7. package/dist/features/extraConsoleCommands/listCommands.d.ts.map +1 -1
  8. package/dist/features/extraConsoleCommands/listCommands.lua +9 -5
  9. package/dist/features/firstLast.d.ts +190 -0
  10. package/dist/features/firstLast.d.ts.map +1 -0
  11. package/dist/features/firstLast.lua +341 -0
  12. package/dist/functions/array.d.ts +1 -9
  13. package/dist/functions/array.d.ts.map +1 -1
  14. package/dist/functions/array.lua +0 -6
  15. package/dist/functions/cards.d.ts +0 -8
  16. package/dist/functions/cards.d.ts.map +1 -1
  17. package/dist/functions/cards.lua +9 -24
  18. package/dist/functions/{cacheFlag.d.ts → collectibleCacheFlag.d.ts} +8 -8
  19. package/dist/functions/collectibleCacheFlag.d.ts.map +1 -0
  20. package/dist/functions/{cacheFlag.lua → collectibleCacheFlag.lua} +12 -13
  21. package/dist/functions/collectibleSet.d.ts +18 -0
  22. package/dist/functions/collectibleSet.d.ts.map +1 -1
  23. package/dist/functions/collectibleSet.lua +29 -9
  24. package/dist/functions/collectibles.d.ts +0 -13
  25. package/dist/functions/collectibles.d.ts.map +1 -1
  26. package/dist/functions/collectibles.lua +0 -18
  27. package/dist/functions/flying.lua +2 -2
  28. package/dist/functions/pills.d.ts +0 -10
  29. package/dist/functions/pills.d.ts.map +1 -1
  30. package/dist/functions/pills.lua +0 -15
  31. package/dist/functions/players.lua +1 -1
  32. package/dist/functions/random.d.ts.map +1 -1
  33. package/dist/functions/random.lua +2 -0
  34. package/dist/functions/run.d.ts +5 -0
  35. package/dist/functions/run.d.ts.map +1 -1
  36. package/dist/functions/run.lua +13 -0
  37. package/dist/functions/stats.d.ts +9 -0
  38. package/dist/functions/stats.d.ts.map +1 -0
  39. package/dist/functions/stats.lua +11 -0
  40. package/dist/functions/trinketCacheFlag.d.ts +9 -1
  41. package/dist/functions/trinketCacheFlag.d.ts.map +1 -1
  42. package/dist/functions/trinketCacheFlag.lua +28 -10
  43. package/dist/functions/trinketSet.d.ts +18 -0
  44. package/dist/functions/trinketSet.d.ts.map +1 -1
  45. package/dist/functions/trinketSet.lua +29 -9
  46. package/dist/functions/trinkets.d.ts +1 -10
  47. package/dist/functions/trinkets.d.ts.map +1 -1
  48. package/dist/functions/trinkets.lua +0 -24
  49. package/dist/index.d.ts +251 -117
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.lua +14 -6
  52. package/dist/initFeatures.d.ts.map +1 -1
  53. package/dist/initFeatures.lua +3 -0
  54. package/package.json +1 -1
  55. package/src/core/constantsFirstLast.ts +12 -125
  56. package/src/enums/ModCallbackCustom.ts +21 -0
  57. package/src/features/characterStats.ts +1 -1
  58. package/src/features/extraConsoleCommands/listCommands.ts +8 -5
  59. package/src/features/firstLast.ts +429 -0
  60. package/src/functions/array.ts +1 -9
  61. package/src/functions/cards.ts +5 -28
  62. package/src/functions/{cacheFlag.ts → collectibleCacheFlag.ts} +13 -16
  63. package/src/functions/collectibleSet.ts +28 -21
  64. package/src/functions/collectibles.ts +0 -22
  65. package/src/functions/flying.ts +1 -1
  66. package/src/functions/pills.ts +0 -22
  67. package/src/functions/players.ts +2 -2
  68. package/src/functions/random.ts +3 -0
  69. package/src/functions/run.ts +23 -1
  70. package/src/functions/stats.ts +12 -0
  71. package/src/functions/trinketCacheFlag.ts +29 -7
  72. package/src/functions/trinketSet.ts +28 -21
  73. package/src/functions/trinkets.ts +0 -34
  74. package/src/index.ts +2 -1
  75. package/src/initFeatures.ts +2 -0
  76. package/dist/functions/cacheFlag.d.ts.map +0 -1
package/dist/index.d.ts CHANGED
@@ -613,6 +613,12 @@ export declare function calculateStageTypeRepentance(stage: LevelStage): StageTy
613
613
  */
614
614
  export declare function canPlayerCrushRocks(player: EntityPlayer): boolean;
615
615
 
616
+ /**
617
+ * Helper function to see if the current run can unlock achievements. For example, if playing on a
618
+ * set seed or in a victory lap, achievements are disabled.
619
+ */
620
+ export declare function canRunUnlockAchievements(): boolean;
621
+
616
622
  export declare function capitalizeFirstLetter(string: string): string;
617
623
 
618
624
  /** Maps card names to card sub-types. */
@@ -786,6 +792,7 @@ export declare function closeDoorFast(door: GridEntityDoor): void;
786
792
  /** This is the initial value of the `EntityPickup.Wait` field after a collectible is spawned. */
787
793
  export declare const COLLECTIBLE_INITIAL_WAIT = 20;
788
794
 
795
+ /** Helper function to check in the item config if a given collectible has a given cache flag. */
789
796
  export declare function collectibleHasCacheFlag(collectibleType: CollectibleType, cacheFlag: CacheFlag): boolean;
790
797
 
791
798
  export declare function collectibleHasTag(collectibleType: CollectibleType, tag: ItemConfigTag): boolean;
@@ -2135,33 +2142,6 @@ export declare const FIRST_GLITCHED_COLLECTIBLE_TYPE: CollectibleType;
2135
2142
  /** Equal to `PillColor.HORSE_BLUE_BLUE`. */
2136
2143
  export declare const FIRST_HORSE_PILL_COLOR = PillColor.HORSE_BLUE_BLUE;
2137
2144
 
2138
- /** If there are no modded cards, this constant will represent a card that does not exist. */
2139
- export declare const FIRST_MODDED_CARD: Card;
2140
-
2141
- /**
2142
- * If there are no modded characters, this constant will represent a character that does not exist.
2143
- * (There is no way to determine the amount of modded characters at run-time, since there is no
2144
- * exposed player config.)
2145
- */
2146
- export declare const FIRST_MODDED_CHARACTER: PlayerType;
2147
-
2148
- /**
2149
- * If there are no modded collectibles, this constant will represent a collectible type that does
2150
- * not exist.
2151
- */
2152
- export declare const FIRST_MODDED_COLLECTIBLE_TYPE: CollectibleType;
2153
-
2154
- /**
2155
- * If there are no modded pill effects, this constant will represent a pill effect that does not
2156
- * exist.
2157
- */
2158
- export declare const FIRST_MODDED_PILL_EFFECT: PillEffect;
2159
-
2160
- /**
2161
- * If there are no modded trinkets, this constant will represent a trinket type that does not exist.
2162
- */
2163
- export declare const FIRST_MODDED_TRINKET_TYPE: TrinketType;
2164
-
2165
2145
  /** Equal to `PillColor.BLUE_BLUE`. */
2166
2146
  export declare const FIRST_PILL_COLOR = PillColor.BLUE_BLUE;
2167
2147
 
@@ -2321,7 +2301,12 @@ export declare function getAliveNPCs(entityType?: EntityType, variant?: number,
2321
2301
  */
2322
2302
  export declare function getAllBossesSet(): Set<string>;
2323
2303
 
2324
- /** Helper function to get an array with every valid card sub-type. This includes modded cards. */
2304
+ /**
2305
+ * Helper function to get an array with every valid card sub-type. This includes modded cards.
2306
+ *
2307
+ * This function can only be called if at least one callback has been executed. This is because not
2308
+ * all cards will necessarily be present when a mod first loads (due to mod load order).
2309
+ */
2325
2310
  export declare function getAllCards(): Card[];
2326
2311
 
2327
2312
  /**
@@ -2344,6 +2329,9 @@ export declare function getAllPillColors(): PillColor[];
2344
2329
 
2345
2330
  /**
2346
2331
  * Helper function to get an array with every valid pill effect. This includes modded pill effects.
2332
+ *
2333
+ * This function can only be called if at least one callback has been executed. This is because not
2334
+ * all pill effects will necessarily be present when a mod first loads (due to mod load order).
2347
2335
  */
2348
2336
  export declare function getAllPillEffects(): PillEffect[];
2349
2337
 
@@ -2593,6 +2581,9 @@ export declare function getCoinValue(coinSubType: CoinSubType): int;
2593
2581
  *
2594
2582
  * Use this if you need to iterate over the collectibles in order. If you need to do O(1) lookups,
2595
2583
  * then use the `getCollectibleSet` helper function instead.
2584
+ *
2585
+ * This function can only be called if at least one callback has been executed. This is because not
2586
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
2596
2587
  */
2597
2588
  export declare function getCollectibleArray(): readonly CollectibleType[];
2598
2589
 
@@ -2735,12 +2726,18 @@ export declare function getCollectibles(collectibleType?: CollectibleType): Enti
2735
2726
  *
2736
2727
  * Use this if you need to do O(1) lookups. If you need to iterate over the collectibles in order,
2737
2728
  * then use the `getCollectibleArray` helper function instead.
2729
+ *
2730
+ * This function can only be called if at least one callback has been executed. This is because not
2731
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
2738
2732
  */
2739
2733
  export declare function getCollectibleSet(): ReadonlySet<CollectibleType>;
2740
2734
 
2741
2735
  /**
2742
2736
  * Returns a set containing every collectible type with the given cache flag, including modded
2743
2737
  * collectibles.
2738
+ *
2739
+ * This function can only be called if at least one callback has been executed. This is because not
2740
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
2744
2741
  */
2745
2742
  export declare function getCollectiblesForCacheFlag(cacheFlag: CacheFlag): Set<CollectibleType>;
2746
2743
 
@@ -2844,14 +2841,6 @@ export declare function getDebugPrependString(msg: string, numParentFunctions?:
2844
2841
  */
2845
2842
  export declare function getDefaultGlobals(): ReadonlySet<string>;
2846
2843
 
2847
- /**
2848
- * Returns the starting stat that Isaac (the default character) starts with. For example, if you
2849
- * pass this function `CacheFlag.DAMAGE`, it will return 3.5.
2850
- *
2851
- * Note that the default fire delay is represented in the tear stat, not the `MaxFireDelay` value.
2852
- */
2853
- export declare function getDefaultPlayerStat(cacheFlag: CacheFlag): number | undefined;
2854
-
2855
2844
  export declare function getDevilRoomDoor(): GridEntityDoor | undefined;
2856
2845
 
2857
2846
  /**
@@ -3123,6 +3112,38 @@ export declare function getFireDelay(tearsStat: float): float;
3123
3112
 
3124
3113
  export declare function getFirstCardOrPill(player: EntityPlayer): PocketItemDescription | undefined;
3125
3114
 
3115
+ /**
3116
+ * Returns the first modded card sub-type, or undefined if there are no modded cards.
3117
+ *
3118
+ * This function can only be called if at least one callback has been executed. This is because not
3119
+ * all cards will necessarily be present when a mod first loads (due to mod load order).
3120
+ */
3121
+ export declare function getFirstModdedCard(): Card | undefined;
3122
+
3123
+ /**
3124
+ * Returns the first modded collectible type, or undefined if there are no modded collectibles.
3125
+ *
3126
+ * This function can only be called if at least one callback has been executed. This is because not
3127
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
3128
+ */
3129
+ export declare function getFirstModdedCollectibleType(): CollectibleType | undefined;
3130
+
3131
+ /**
3132
+ * Returns the first modded pill effect, or undefined if there are no modded pill effects.
3133
+ *
3134
+ * This function can only be called if at least one callback has been executed. This is because not
3135
+ * all pill effects will necessarily be present when a mod first loads (due to mod load order).
3136
+ */
3137
+ export declare function getFirstModdedPillEffect(): PillEffect | undefined;
3138
+
3139
+ /**
3140
+ * Returns the first modded trinket type, or undefined if there are no modded trinkets.
3141
+ *
3142
+ * This function can only be called if at least one callback has been executed. This is because not
3143
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3144
+ */
3145
+ export declare function getFirstModdedTrinketType(): TrinketType | undefined;
3146
+
3126
3147
  /**
3127
3148
  * Helper function to get the key associated with a particular flag.
3128
3149
  *
@@ -3370,6 +3391,28 @@ export declare function getLanguageName(): string;
3370
3391
  */
3371
3392
  export declare function getLasers(laserVariant?: LaserVariant, subType?: number): EntityLaser[];
3372
3393
 
3394
+ /**
3395
+ * Will change depending on how many modded cards there are.
3396
+ *
3397
+ * This is equal to the number of cards, since all card sub-types are contiguous (unlike
3398
+ * collectibles).
3399
+ *
3400
+ * This function can only be called if at least one callback has been executed. This is because not
3401
+ * all cards will necessarily be present when a mod first loads (due to mod load order).
3402
+ */
3403
+ export declare function getLastCard(): Card;
3404
+
3405
+ /**
3406
+ * Will change depending on how many modded collectibles there are.
3407
+ *
3408
+ * Equal to `itemConfig.GetCollectibles().Size - 1`. (`Size` includes invalid collectibles, like
3409
+ * 666. We subtract one to account for `CollectibleType.NULL`.)
3410
+ *
3411
+ * This function can only be called if at least one callback has been executed. This is because not
3412
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
3413
+ */
3414
+ export declare function getLastCollectibleType(): CollectibleType;
3415
+
3373
3416
  /**
3374
3417
  * Helper function to return the last element of an array.
3375
3418
  *
@@ -3398,6 +3441,28 @@ export declare function getLastEnumValue<T>(transpiledEnum: T): T[keyof T];
3398
3441
  */
3399
3442
  export declare function getLastFrameOfAnimation(sprite: Sprite, animation?: string): int;
3400
3443
 
3444
+ /**
3445
+ * Will change depending on how many modded pill effects there are.
3446
+ *
3447
+ * This is equal to the number of pill effects, since all pill effects are contiguous (unlike
3448
+ * collectibles).
3449
+ *
3450
+ * This function can only be called if at least one callback has been executed. This is because not
3451
+ * all pill effects will necessarily be present when a mod first loads (due to mod load order).
3452
+ */
3453
+ export declare function getLastPillEffect(): PillEffect;
3454
+
3455
+ /**
3456
+ * Will change depending on how many modded cards there are.
3457
+ *
3458
+ * This is equal to the number of trinket types, since all trinket types are contiguous (unlike
3459
+ * collectibles).
3460
+ *
3461
+ * This function can only be called if at least one callback has been executed. This is because not
3462
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3463
+ */
3464
+ export declare function getLastTrinketType(): TrinketType;
3465
+
3401
3466
  /**
3402
3467
  * Helper function to get information about the most recent room that is stored in the room history
3403
3468
  * array.
@@ -3439,6 +3504,9 @@ export declare function getMatchingGridEntities(gridEntityType: GridEntityType,
3439
3504
  * Helper function to get an array with every modded card sub-type.
3440
3505
  *
3441
3506
  * Returns an empty array if there are no modded cards.
3507
+ *
3508
+ * This function can only be called if at least one callback has been executed. This is because not
3509
+ * all cards will necessarily be present when a mod first loads (due to mod load order).
3442
3510
  */
3443
3511
  export declare function getModdedCards(): Card[];
3444
3512
 
@@ -3447,6 +3515,9 @@ export declare function getModdedCards(): Card[];
3447
3515
  *
3448
3516
  * Use this if you need to iterate over the collectibles in order. If you need to do O(1) lookups,
3449
3517
  * then use the `getModdedCollectibleSet` helper function instead.
3518
+ *
3519
+ * This function can only be called if at least one callback has been executed. This is because not
3520
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
3450
3521
  */
3451
3522
  export declare function getModdedCollectibleArray(): readonly CollectibleType[];
3452
3523
 
@@ -3455,6 +3526,9 @@ export declare function getModdedCollectibleArray(): readonly CollectibleType[];
3455
3526
  *
3456
3527
  * Use this if you need to do O(1) lookups. If you need to iterate over the collectibles in order,
3457
3528
  * then use the `getModdedCollectibleArray` helper function instead.
3529
+ *
3530
+ * This function can only be called if at least one callback has been executed. This is because not
3531
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
3458
3532
  */
3459
3533
  export declare function getModdedCollectibleSet(): ReadonlySet<CollectibleType>;
3460
3534
 
@@ -3469,6 +3543,9 @@ export declare function getModdedCollectibleSet(): ReadonlySet<CollectibleType>;
3469
3543
  * (This function is named differently from the `getVanillaCollectibleTypeRange` function because
3470
3544
  * all modded collectible types are contiguous. Thus, each value represents a real
3471
3545
  * `CollectibleType`.)
3546
+ *
3547
+ * This function can only be called if at least one callback has been executed. This is because not
3548
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
3472
3549
  */
3473
3550
  export declare function getModdedCollectibleTypes(): CollectibleType[];
3474
3551
 
@@ -3476,6 +3553,9 @@ export declare function getModdedCollectibleTypes(): CollectibleType[];
3476
3553
  * Helper function to get an array with every modded pill effect.
3477
3554
  *
3478
3555
  * Returns an empty array if there are no modded pill effects.
3556
+ *
3557
+ * This function can only be called if at least one callback has been executed. This is because not
3558
+ * all pill effects will necessarily be present when a mod first loads (due to mod load order).
3479
3559
  */
3480
3560
  export declare function getModdedPillEffects(): PillEffect[];
3481
3561
 
@@ -3484,6 +3564,9 @@ export declare function getModdedPillEffects(): PillEffect[];
3484
3564
  *
3485
3565
  * Use this if you need to iterate over the trinkets in order. If you need to do O(1) lookups, then
3486
3566
  * use the `getTrinketSet` helper function instead.
3567
+ *
3568
+ * This function can only be called if at least one callback has been executed. This is because not
3569
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3487
3570
  */
3488
3571
  export declare function getModdedTrinketArray(): readonly TrinketType[];
3489
3572
 
@@ -3492,6 +3575,9 @@ export declare function getModdedTrinketArray(): readonly TrinketType[];
3492
3575
  *
3493
3576
  * Use this if you need to do O(1) lookups. If you need to iterate over the trinkets in order, then
3494
3577
  * use the `getTrinketArray` helper function instead.
3578
+ *
3579
+ * This function can only be called if at least one callback has been executed. This is because not
3580
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3495
3581
  */
3496
3582
  export declare function getModdedTrinketSet(): ReadonlySet<TrinketType>;
3497
3583
 
@@ -3499,6 +3585,9 @@ export declare function getModdedTrinketSet(): ReadonlySet<TrinketType>;
3499
3585
  * Helper function to get an array that represents every modded trinket type.
3500
3586
  *
3501
3587
  * Returns an empty array if there are no modded trinket types.
3588
+ *
3589
+ * This function can only be called if at least one callback has been executed. This is because not
3590
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3502
3591
  */
3503
3592
  export declare function getModdedTrinketTypes(): TrinketType[];
3504
3593
 
@@ -3607,12 +3696,76 @@ export declare function getNumbersFromTable(luaMap: LuaMap<string, unknown>, obj
3607
3696
  /** Helper function to get the number of bits in a binary representation of a number. */
3608
3697
  export declare function getNumBitsOfN(n: int): int;
3609
3698
 
3699
+ /**
3700
+ * Will change depending on how many modded cards there are.
3701
+ *
3702
+ * Equal to `itemConfig.GetCards().Size - 1`. (We subtract one to account for `Card.NULL`.)
3703
+ *
3704
+ * This function can only be called if at least one callback has been executed. This is because not
3705
+ * all cards will necessarily be present when a mod first loads (due to mod load order).
3706
+ */
3707
+ export declare function getNumCards(): int;
3708
+
3709
+ /**
3710
+ * This function can only be called if at least one callback has been executed. This is because not
3711
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
3712
+ */
3713
+ export declare function getNumCollectibleTypes(): int;
3714
+
3715
+ /**
3716
+ * This function can only be called if at least one callback has been executed. This is because not
3717
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3718
+ */
3719
+ export declare function getNumModdedCards(): int;
3720
+
3721
+ /**
3722
+ * Unlike vanilla collectible types, modded collectible types are always contiguous.
3723
+ *
3724
+ * This function can only be called if at least one callback has been executed. This is because not
3725
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
3726
+ */
3727
+ export declare function getNumModdedCollectibleTypes(): int;
3728
+
3729
+ /**
3730
+ * This function can only be called if at least one callback has been executed. This is because not
3731
+ * all pill effects will necessarily be present when a mod first loads (due to mod load order).
3732
+ */
3733
+ export declare function getNumModdedPillEffects(): int;
3734
+
3735
+ /**
3736
+ * This function can only be called if at least one callback has been executed. This is because not
3737
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3738
+ */
3739
+ export declare function getNumModdedTrinketTypes(): int;
3740
+
3741
+ /**
3742
+ * Will change depending on how many modded pill effects there are.
3743
+ *
3744
+ * Equal to `itemConfig.GetPillEffects().Size`. (We do not have to subtract one, because the first
3745
+ * pill effect has an ID of 0 and there is no `PillEffect.NULL`.)
3746
+ *
3747
+ * This function can only be called if at least one callback has been executed. This is because not
3748
+ * all pill effects will necessarily be present when a mod first loads (due to mod load order).
3749
+ */
3750
+ export declare function getNumPillEffects(): int;
3751
+
3610
3752
  /**
3611
3753
  * Helper function to get the number of rooms that are currently on the floor layout. This does not
3612
3754
  * include off-grid rooms, like the Devil Room.
3613
3755
  */
3614
3756
  export declare function getNumRooms(): int;
3615
3757
 
3758
+ /**
3759
+ * Will change depending on how many modded cards there are.
3760
+ *
3761
+ * Equal to `itemConfig.GetTrinkets().Size - 1`. (We subtract one to account for
3762
+ * `TrinketType.NULL`.)
3763
+ *
3764
+ * This function can only be called if at least one callback has been executed. This is because not
3765
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3766
+ */
3767
+ export declare function getNumTrinketTypes(): int;
3768
+
3616
3769
  /**
3617
3770
  * Returns the slot number corresponding to where a trinket can be safely inserted.
3618
3771
  *
@@ -3778,6 +3931,9 @@ export declare function getPlayerCollectibleMap(player: EntityPlayer): Map<Colle
3778
3931
  * CollectibleType.DEAD_DOVE,
3779
3932
  * ]
3780
3933
  * ```
3934
+ *
3935
+ * This function can only be called if at least one callback has been executed. This is because not
3936
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
3781
3937
  */
3782
3938
  export declare function getPlayerCollectiblesForCacheFlag(player: EntityPlayer, cacheFlag: CacheFlag): CollectibleType[];
3783
3939
 
@@ -3968,7 +4124,10 @@ export declare function getPlayerTransformations(player: EntityPlayer): Set<Play
3968
4124
 
3969
4125
  /**
3970
4126
  * Returns a map containing every trinket type that the player has that matches the provided
3971
- * CacheFlag. The values of the map correspond to the multiplier for that trinket.
4127
+ * `CacheFlag`. The values of the map correspond to the multiplier for that trinket.
4128
+ *
4129
+ * This function can only be called if at least one callback has been executed. This is because not
4130
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
3972
4131
  */
3973
4132
  export declare function getPlayerTrinketsForCacheFlag(player: EntityPlayer, cacheFlag: CacheFlag): Map<TrinketType, int>;
3974
4133
 
@@ -4838,6 +4997,9 @@ export declare function getTraversalDescription(key: unknown, traversalDescripti
4838
4997
  *
4839
4998
  * Use this if you need to iterate over the trinkets in order. If you need to do O(1) lookups, then
4840
4999
  * use the `getModdedTrinketSet` helper function instead.
5000
+ *
5001
+ * This function can only be called if at least one callback has been executed. This is because not
5002
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
4841
5003
  */
4842
5004
  export declare function getTrinketArray(): readonly TrinketType[];
4843
5005
 
@@ -4873,15 +5035,26 @@ export declare function getTrinkets(trinketType?: TrinketType): EntityPickupTrin
4873
5035
  *
4874
5036
  * Use this if you need to do O(1) lookups. If you need to iterate over the trinkets in order, then
4875
5037
  * use the `getModdedTrinketArray` helper function instead.
5038
+ *
5039
+ * This function can only be called if at least one callback has been executed. This is because not
5040
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
4876
5041
  */
4877
5042
  export declare function getTrinketSet(): ReadonlySet<TrinketType>;
4878
5043
 
4879
5044
  /**
4880
5045
  * Returns a set containing every trinket type with the given cache flag, including modded trinkets.
5046
+ *
5047
+ * This function can only be called if at least one callback has been executed. This is because not
5048
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
4881
5049
  */
4882
5050
  export declare function getTrinketsForCacheFlag(cacheFlag: CacheFlag): Set<TrinketType>;
4883
5051
 
4884
- /** Helper function to get an array that contains every trinket type. */
5052
+ /**
5053
+ * Helper function to get an array that contains every trinket type.
5054
+ *
5055
+ * This function can only be called if at least one callback has been executed. This is because not
5056
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
5057
+ */
4885
5058
  export declare function getTrinketTypes(): TrinketType[];
4886
5059
 
4887
5060
  /**
@@ -4907,6 +5080,9 @@ export declare function getVanillaCards(): Card[];
4907
5080
  *
4908
5081
  * Use this if you need to iterate over the collectibles in order. If you need to do O(1) lookups,
4909
5082
  * then use the `getVanillaCollectibleSet` helper function instead.
5083
+ *
5084
+ * This function can only be called if at least one callback has been executed. This is because not
5085
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
4910
5086
  */
4911
5087
  export declare function getVanillaCollectibleArray(): readonly CollectibleType[];
4912
5088
 
@@ -4915,6 +5091,9 @@ export declare function getVanillaCollectibleArray(): readonly CollectibleType[]
4915
5091
  *
4916
5092
  * Use this if you need to do O(1) lookups. If you need to iterate over the collectibles in order,
4917
5093
  * then use the `getVanillaCollectibleArray` helper function instead.
5094
+ *
5095
+ * This function can only be called if at least one callback has been executed. This is because not
5096
+ * all collectibles will necessarily be present when a mod first loads (due to mod load order).
4918
5097
  */
4919
5098
  export declare function getVanillaCollectibleSet(): ReadonlySet<CollectibleType>;
4920
5099
 
@@ -4936,6 +5115,9 @@ export declare function getVanillaPillEffects(): PillEffect[];
4936
5115
  *
4937
5116
  * Use this if you need to iterate over the trinkets in order. If you need to do O(1) lookups, then
4938
5117
  * use the `getVanillaTrinketSet` helper function instead.
5118
+ *
5119
+ * This function can only be called if at least one callback has been executed. This is because not
5120
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
4939
5121
  */
4940
5122
  export declare function getVanillaTrinketArray(): readonly TrinketType[];
4941
5123
 
@@ -4944,6 +5126,9 @@ export declare function getVanillaTrinketArray(): readonly TrinketType[];
4944
5126
  *
4945
5127
  * Use this if you need to do O(1) lookups. If you need to iterate over the trinkets in order, then
4946
5128
  * use the `getVanillaTrinketArray` helper function instead.
5129
+ *
5130
+ * This function can only be called if at least one callback has been executed. This is because not
5131
+ * all trinkets will necessarily be present when a mod first loads (due to mod load order).
4947
5132
  */
4948
5133
  export declare function getVanillaTrinketSet(): ReadonlySet<TrinketType>;
4949
5134
 
@@ -5184,15 +5369,7 @@ export declare function inDoubleTrouble(): boolean;
5184
5369
 
5185
5370
  export declare function inGenesisRoom(): boolean;
5186
5371
 
5187
- /**
5188
- * Initializes an array with all elements containing the specified default value.
5189
- *
5190
- * For example:
5191
- *
5192
- * ```ts
5193
- * const playerTransformations = initArray(false, PlayerForm.NUM_PLAYER_FORMS - 1);
5194
- * ```
5195
- */
5372
+ /** Initializes an array with all elements containing the specified default value. */
5196
5373
  export declare function initArray<T>(defaultValue: T, size: int): T[];
5197
5374
 
5198
5375
  /**
@@ -6183,21 +6360,6 @@ export declare function kColorEquals(kColor1: KColor, kColor2: KColor): boolean;
6183
6360
  */
6184
6361
  export declare function keyboardToString(keyboard: Keyboard, uppercase: boolean): string | undefined;
6185
6362
 
6186
- /**
6187
- * Will change depending on how many modded cards there are.
6188
- *
6189
- * Equal to `itemConfig.GetCards().Size - 1`. (We subtract one to account for `Card.NULL`.)
6190
- */
6191
- export declare const LAST_CARD: Card;
6192
-
6193
- /**
6194
- * Will change depending on how many modded collectibles there are.
6195
- *
6196
- * Equal to `itemConfig.GetCollectibles().Size - 1`. (`Size` includes invalid collectibles, like
6197
- * 666. We subtract one to account for `CollectibleType.NULL`.)
6198
- */
6199
- export declare const LAST_COLLECTIBLE_TYPE: CollectibleType;
6200
-
6201
6363
  /**
6202
6364
  * Equal to `PillColor.HORSE_WHITE_YELLOW`.
6203
6365
  *
@@ -6214,25 +6376,12 @@ export declare const LAST_HORSE_PILL_COLOR = PillColor.HORSE_WHITE_YELLOW;
6214
6376
  */
6215
6377
  export declare const LAST_NORMAL_PILL_COLOR = PillColor.WHITE_YELLOW;
6216
6378
 
6217
- /**
6218
- * Will change depending on how many modded pill effects there are.
6219
- *
6220
- * Equal to `itemConfig.GetPillEffects().Size - 1`. (We subtract one to account for
6221
- * `PillEffect.NULL`.)
6222
- */
6223
- export declare const LAST_PILL_EFFECT: PillEffect;
6224
-
6225
6379
  export declare const LAST_ROOM_TYPE: RoomType;
6226
6380
 
6227
6381
  export declare const LAST_STAGE: LevelStage;
6228
6382
 
6229
- /**
6230
- * Will change depending on how many modded cards there are.
6231
- *
6232
- * Equal to `itemConfig.GetTrinkets().Size - 1`. (We subtract one to account for
6233
- * `TrinketType.NULL`.)
6234
- */
6235
- export declare const LAST_TRINKET_TYPE: TrinketType;
6383
+ /** Calculated from the `Card` enum. */
6384
+ export declare const LAST_VANILLA_CARD: Card;
6236
6385
 
6237
6386
  /** Calculated from the `PlayerType` enum. */
6238
6387
  export declare const LAST_VANILLA_CHARACTER: PlayerType;
@@ -6486,9 +6635,6 @@ export declare const MAX_SPEED_STAT = 2;
6486
6635
  /** Corresponds to the maximum value for `EntityPlayer.SamsonBerserkCharge`. */
6487
6636
  export declare const MAX_TAINTED_SAMSON_BERSERK_CHARGE = 100000;
6488
6637
 
6489
- /** Calculated from the `Card` enum. */
6490
- export declare const MAX_VANILLA_CARD: Card;
6491
-
6492
6638
  /** If you set `EntityPlayer.ShotSpeed` lower than this value, it will have no effect. */
6493
6639
  export declare const MIN_PLAYER_SHOT_SPEED_STAT = 0.6;
6494
6640
 
@@ -6819,6 +6965,9 @@ export declare enum ModCallbackCustom {
6819
6965
  * the broken state for the respective grid entity type. (For example, this will fire for a
6820
6966
  * `GridEntityType.ROCK` (2) when its state changes to `RockState.BROKEN` (2).)
6821
6967
  *
6968
+ * For grid entities created with `spawnCustomGridEntity`, use the
6969
+ * `POST_GRID_ENTITY_CUSTOM_BROKEN` callback instead.
6970
+ *
6822
6971
  * When registering the callback, takes an optional second argument that will make the callback
6823
6972
  * only fire if it matches the `GridEntityType` provided.
6824
6973
  *
@@ -6832,6 +6981,9 @@ export declare enum ModCallbackCustom {
6832
6981
  * this, the callback will not continue to fire. It will only fire again once the entity moves out
6833
6982
  * of range and then moves back into range.)
6834
6983
  *
6984
+ * For grid entities created with `spawnCustomGridEntity`, use the
6985
+ * `POST_GRID_ENTITY_CUSTOM_COLLISION` callback instead.
6986
+ *
6835
6987
  * When registering the callback, takes an optional second argument that will make the callback
6836
6988
  * only fire if it matches the `GridEntityType` provided.
6837
6989
  *
@@ -6959,6 +7111,9 @@ export declare enum ModCallbackCustom {
6959
7111
  * - in the `POST_UPDATE` callback (if the entity appeared mid-way through the room, like when the
6960
7112
  * trapdoor appears after defeating It Lives!)
6961
7113
  *
7114
+ * For grid entities created with `spawnCustomGridEntity`, use the `POST_GRID_ENTITY_CUSTOM_INIT`
7115
+ * callback instead.
7116
+ *
6962
7117
  * When registering the callback, takes an optional second argument that will make the callback
6963
7118
  * only fire if it matches the `GridEntityType` provided.
6964
7119
  *
@@ -6975,6 +7130,9 @@ export declare enum ModCallbackCustom {
6975
7130
  *
6976
7131
  * This will fire when a Polty/Kineti picks up a grid entity.
6977
7132
  *
7133
+ * For grid entities created with `spawnCustomGridEntity`, use the
7134
+ * `POST_GRID_ENTITY_CUSTOM_REMOVE` callback instead.
7135
+ *
6978
7136
  * When registering the callback, takes an optional second argument that will make the callback
6979
7137
  * only fire if it matches the `GridEntityType` provided.
6980
7138
  *
@@ -6994,6 +7152,9 @@ export declare enum ModCallbackCustom {
6994
7152
  * - When registering the callback, takes an optional third argument that will make the callback
6995
7153
  * only fire if it matches the variant provided.
6996
7154
  *
7155
+ * For grid entities created with `spawnCustomGridEntity`, use the
7156
+ * `POST_GRID_ENTITY_CUSTOM_RENDER` callback instead.
7157
+ *
6997
7158
  * ```ts
6998
7159
  * function postGridEntityRender(gridEntity: GridEntity): void {}
6999
7160
  * ```
@@ -7006,6 +7167,9 @@ export declare enum ModCallbackCustom {
7006
7167
  * When registering the callback, takes an optional second argument that will make the callback
7007
7168
  * only fire if it matches the `GridEntityType` provided.
7008
7169
  *
7170
+ * For grid entities created with `spawnCustomGridEntity`, use the
7171
+ * `POST_GRID_ENTITY_CUSTOM_STATE_CHANGED` callback instead.
7172
+ *
7009
7173
  * ```ts
7010
7174
  * function postGridEntityStateChanged(
7011
7175
  * gridEntity: GridEntity,
@@ -7023,6 +7187,9 @@ export declare enum ModCallbackCustom {
7023
7187
  * - When registering the callback, takes an optional third argument that will make the callback
7024
7188
  * only fire if it matches the variant provided.
7025
7189
  *
7190
+ * For grid entities created with `spawnCustomGridEntity`, use the
7191
+ * `POST_GRID_ENTITY_CUSTOM_UPDATE` callback instead.
7192
+ *
7026
7193
  * ```ts
7027
7194
  * function postGridEntityUpdate(gridEntity: GridEntity): void {}
7028
7195
  * ```
@@ -7982,64 +8149,30 @@ export declare function newTSTLClass(oldClass: TSTLClass): TSTLClass;
7982
8149
  */
7983
8150
  export declare function nextSeed(seed: Seed): Seed;
7984
8151
 
7985
- /**
7986
- * Will change depending on how many modded cards there are.
7987
- *
7988
- * Equal to `itemConfig.GetCards().Size - 1`. (We subtract one to account for `Card.NULL`.)
7989
- */
7990
- export declare const NUM_CARDS: number;
7991
-
7992
- export declare const NUM_COLLECTIBLE_TYPES: number;
7993
-
7994
8152
  export declare const NUM_DIMENSIONS: number;
7995
8153
 
7996
- export declare const NUM_MODDED_CARDS: number;
7997
-
7998
- /** Unlike vanilla collectible types, modded collectible types are always contiguous. */
7999
- export declare const NUM_MODDED_COLLECTIBLE_TYPES: number;
8000
-
8001
- export declare const NUM_MODDED_PILL_EFFECTS: number;
8002
-
8003
- export declare const NUM_MODDED_TRINKET_TYPES: number;
8004
-
8005
8154
  export declare const NUM_NORMAL_PILL_COLORS: number;
8006
8155
 
8007
- /**
8008
- * Will change depending on how many modded pill effects there are.
8009
- *
8010
- * Equal to `itemConfig.GetPillEffects().Size - 1`. (We subtract one to account for
8011
- * `PillEffect.NULL`.)
8012
- */
8013
- export declare const NUM_PILL_EFFECTS: number;
8014
-
8015
8156
  /**
8016
8157
  * The pill pool for each run is comprised of one effect for each unique pill color (minus gold and
8017
8158
  * horse pills.)
8018
8159
  */
8019
8160
  export declare const NUM_PILLS_IN_POOL: number;
8020
8161
 
8021
- /**
8022
- * Will change depending on how many modded cards there are.
8023
- *
8024
- * Equal to `itemConfig.GetTrinkets().Size - 1`. (We subtract one to account for
8025
- * `TrinketType.NULL`.)
8026
- */
8027
- export declare const NUM_TRINKET_TYPES: number;
8028
-
8029
8162
  /** Calculated from the `Card` enum. `Card.NULL` is not included. */
8030
8163
  export declare const NUM_VANILLA_CARDS: number;
8031
8164
 
8032
- /** Calculated from the `CollectibleType` enum. `CollectibleType.NULL` is not included. */
8165
+ /** Calculated from the `CollectibleType` enum. (`CollectibleType.NULL` is not included.) */
8033
8166
  export declare const NUM_VANILLA_COLLECTIBLE_TYPES: number;
8034
8167
 
8035
8168
  /**
8036
8169
  * Calculated from the `PillEffect` enum.
8037
8170
  *
8038
- * (There is no `PillEffect.NULL` in the custom enum, so we don't have to subtract one here.)
8171
+ * (There is no `PillEffect.NULL` in the custom enum, so we do not have to subtract one here.)
8039
8172
  */
8040
8173
  export declare const NUM_VANILLA_PILL_EFFECTS: number;
8041
8174
 
8042
- /** Calculated from the `TrinketType` enum. `TrinketType.NULL` is not included. */
8175
+ /** Calculated from the `TrinketType` enum. (`TrinketType.NULL` is not included.) */
8043
8176
  export declare const NUM_VANILLA_TRINKET_TYPES: number;
8044
8177
 
8045
8178
  export declare function onAscent(): boolean;
@@ -11254,6 +11387,7 @@ export declare function trimPrefix(string: string, prefix: string): string;
11254
11387
  /** Helper function to trim a suffix from a string, if it exists. Returns the trimmed string. */
11255
11388
  export declare function trimSuffix(string: string, prefix: string): string;
11256
11389
 
11390
+ /** Helper function to check in the item config if a given trinket has a given cache flag. */
11257
11391
  export declare function trinketHasCacheFlag(trinketType: TrinketType, cacheFlag: CacheFlag): boolean;
11258
11392
 
11259
11393
  /** This is used by the `temporarilyRemoveTrinkets` and related helper functions. */