isaacscript-common 17.2.1 → 17.4.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 (38) hide show
  1. package/dist/index.d.ts +67 -55
  2. package/dist/isaacscript-common.lua +124 -110
  3. package/dist/src/classes/features/other/CustomHotkeys.d.ts +4 -0
  4. package/dist/src/classes/features/other/CustomHotkeys.d.ts.map +1 -1
  5. package/dist/src/classes/features/other/SpawnCollectible.d.ts +4 -4
  6. package/dist/src/classes/features/other/SpawnCollectible.d.ts.map +1 -1
  7. package/dist/src/classes/features/other/SpawnCollectible.lua +4 -4
  8. package/dist/src/classes/features/other/SpawnRockAltRewards.d.ts +3 -2
  9. package/dist/src/classes/features/other/SpawnRockAltRewards.d.ts.map +1 -1
  10. package/dist/src/classes/features/other/SpawnRockAltRewards.lua +4 -1
  11. package/dist/src/functions/bosses.d.ts +2 -2
  12. package/dist/src/functions/bosses.d.ts.map +1 -1
  13. package/dist/src/functions/bosses.lua +5 -5
  14. package/dist/src/functions/entities.d.ts +5 -5
  15. package/dist/src/functions/entities.d.ts.map +1 -1
  16. package/dist/src/functions/entities.lua +10 -8
  17. package/dist/src/functions/entitiesSpecific.d.ts +20 -20
  18. package/dist/src/functions/entitiesSpecific.d.ts.map +1 -1
  19. package/dist/src/functions/entitiesSpecific.lua +40 -40
  20. package/dist/src/functions/pickupsSpecific.d.ts +18 -18
  21. package/dist/src/functions/pickupsSpecific.d.ts.map +1 -1
  22. package/dist/src/functions/pickupsSpecific.lua +36 -36
  23. package/dist/src/functions/players.d.ts +7 -0
  24. package/dist/src/functions/players.d.ts.map +1 -1
  25. package/dist/src/functions/players.lua +26 -13
  26. package/dist/src/functions/spawnCollectible.d.ts +4 -4
  27. package/dist/src/functions/spawnCollectible.d.ts.map +1 -1
  28. package/dist/src/functions/spawnCollectible.lua +6 -6
  29. package/package.json +2 -2
  30. package/src/classes/features/other/CustomHotkeys.ts +4 -0
  31. package/src/classes/features/other/SpawnCollectible.ts +6 -6
  32. package/src/classes/features/other/SpawnRockAltRewards.ts +7 -3
  33. package/src/functions/bosses.ts +13 -5
  34. package/src/functions/entities.ts +14 -8
  35. package/src/functions/entitiesSpecific.ts +40 -40
  36. package/src/functions/pickupsSpecific.ts +84 -36
  37. package/src/functions/players.ts +21 -0
  38. package/src/functions/spawnCollectible.ts +6 -6
@@ -157,7 +157,7 @@ export function spawnBoss(
157
157
  entityType: EntityType,
158
158
  variant: int,
159
159
  subType: int,
160
- position: Vector,
160
+ positionOrGridIndex: Vector | int,
161
161
  velocity: Vector = VectorZero,
162
162
  spawner: Entity | undefined = undefined,
163
163
  seedOrRNG: Seed | RNG | undefined = undefined,
@@ -168,7 +168,7 @@ export function spawnBoss(
168
168
  entityType,
169
169
  variant,
170
170
  subType,
171
- position,
171
+ positionOrGridIndex,
172
172
  velocity,
173
173
  spawner,
174
174
  seed,
@@ -182,7 +182,15 @@ export function spawnBoss(
182
182
  );
183
183
  const remainingSegmentsToSpawn = numBossSegments - 1;
184
184
  repeat(remainingSegmentsToSpawn, () => {
185
- spawnNPC(entityType, variant, subType, position, velocity, spawner, seed);
185
+ spawnNPC(
186
+ entityType,
187
+ variant,
188
+ subType,
189
+ positionOrGridIndex,
190
+ velocity,
191
+ spawner,
192
+ seed,
193
+ );
186
194
  });
187
195
  }
188
196
 
@@ -231,7 +239,7 @@ export function spawnBossWithSeed(
231
239
  entityType: EntityType,
232
240
  variant: int,
233
241
  subType: int,
234
- position: Vector,
242
+ positionOrGridIndex: Vector | int,
235
243
  seedOrRNG: Seed | RNG,
236
244
  velocity: Vector = VectorZero,
237
245
  spawner: Entity | undefined = undefined,
@@ -242,7 +250,7 @@ export function spawnBossWithSeed(
242
250
  entityType,
243
251
  variant,
244
252
  subType,
245
- position,
253
+ positionOrGridIndex,
246
254
  velocity,
247
255
  spawner,
248
256
  seed,
@@ -488,7 +488,7 @@ export function setEntityRandomColor(entity: Entity): void {
488
488
  * @param entityType The `EntityType` of the entity to spawn.
489
489
  * @param variant The variant of the entity to spawn.
490
490
  * @param subType The sub-type of the entity to spawn.
491
- * @param position The position of the entity to spawn.
491
+ * @param positionOrGridIndex The position or grid index of the entity to spawn.
492
492
  * @param velocity Optional. The velocity of the entity to spawn. Default is `VectorZero`.
493
493
  * @param spawner Optional. The entity that will be the `SpawnerEntity`. Default is undefined.
494
494
  * @param seedOrRNG Optional. The seed or RNG object to use to generate the `InitSeed` of the
@@ -499,13 +499,15 @@ export function spawn(
499
499
  entityType: EntityType,
500
500
  variant: int,
501
501
  subType: int,
502
- position: Vector,
502
+ positionOrGridIndex: Vector | int,
503
503
  velocity: Vector = VectorZero,
504
504
  spawner: Entity | undefined = undefined,
505
505
  seedOrRNG: Seed | RNG | undefined = undefined,
506
506
  ): Entity {
507
+ const room = game.GetRoom();
508
+
507
509
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
508
- if (position === undefined) {
510
+ if (positionOrGridIndex === undefined) {
509
511
  const entityID = getEntityIDFromConstituents(entityType, variant, subType);
510
512
  error(
511
513
  `Failed to spawn entity ${entityID} since an undefined position was passed to the "spawn" function.`,
@@ -520,6 +522,10 @@ export function spawn(
520
522
  );
521
523
  }
522
524
 
525
+ const position = isVector(positionOrGridIndex)
526
+ ? positionOrGridIndex
527
+ : room.GetGridPosition(positionOrGridIndex);
528
+
523
529
  if (seedOrRNG === undefined) {
524
530
  return Isaac.Spawn(
525
531
  entityType,
@@ -547,7 +553,7 @@ export function spawn(
547
553
  * Helper function to spawn the entity corresponding to an `EntityID`.
548
554
  *
549
555
  * @param entityID The `EntityID` of the entity to spawn.
550
- * @param position The position of the entity to spawn.
556
+ * @param positionOrGridIndex The position or grid index of the entity to spawn.
551
557
  * @param velocity Optional. The velocity of the entity to spawn. Default is `VectorZero`.
552
558
  * @param spawner Optional. The entity that will be the `SpawnerEntity`. Default is undefined.
553
559
  * @param seedOrRNG Optional. The seed or RNG object to use to generate the `InitSeed` of the
@@ -556,7 +562,7 @@ export function spawn(
556
562
  */
557
563
  export function spawnEntityID(
558
564
  entityID: EntityID,
559
- position: Vector,
565
+ positionOrGridIndex: Vector | int,
560
566
  velocity: Vector = VectorZero,
561
567
  spawner: Entity | undefined = undefined,
562
568
  seedOrRNG: Seed | RNG | undefined = undefined,
@@ -566,7 +572,7 @@ export function spawnEntityID(
566
572
  entityType,
567
573
  variant,
568
574
  subType,
569
- position,
575
+ positionOrGridIndex,
570
576
  velocity,
571
577
  spawner,
572
578
  seedOrRNG,
@@ -581,7 +587,7 @@ export function spawnWithSeed(
581
587
  entityType: EntityType,
582
588
  variant: int,
583
589
  subType: int,
584
- position: Vector,
590
+ positionOrGridIndex: Vector | int,
585
591
  seedOrRNG: Seed | RNG,
586
592
  velocity: Vector = VectorZero,
587
593
  spawner: Entity | undefined = undefined,
@@ -590,7 +596,7 @@ export function spawnWithSeed(
590
596
  entityType,
591
597
  variant,
592
598
  subType,
593
- position,
599
+ positionOrGridIndex,
594
600
  velocity,
595
601
  spawner,
596
602
  seedOrRNG,
@@ -546,7 +546,7 @@ export function removeAllTears(
546
546
  export function spawnBomb(
547
547
  bombVariant: BombVariant,
548
548
  subType: int,
549
- position: Vector,
549
+ positionOrGridIndex: Vector | int,
550
550
  velocity: Vector = VectorZero,
551
551
  spawner: Entity | undefined = undefined,
552
552
  seedOrRNG: Seed | RNG | undefined = undefined,
@@ -555,7 +555,7 @@ export function spawnBomb(
555
555
  EntityType.BOMB,
556
556
  bombVariant,
557
557
  subType,
558
- position,
558
+ positionOrGridIndex,
559
559
  velocity,
560
560
  spawner,
561
561
  seedOrRNG,
@@ -573,7 +573,7 @@ export function spawnBomb(
573
573
  export function spawnBombWithSeed(
574
574
  bombVariant: BombVariant,
575
575
  subType: int,
576
- position: Vector,
576
+ positionOrGridIndex: Vector | int,
577
577
  seedOrRNG: Seed | RNG,
578
578
  velocity: Vector = VectorZero,
579
579
  spawner: Entity | undefined = undefined,
@@ -581,7 +581,7 @@ export function spawnBombWithSeed(
581
581
  return spawnBomb(
582
582
  bombVariant,
583
583
  subType,
584
- position,
584
+ positionOrGridIndex,
585
585
  velocity,
586
586
  spawner,
587
587
  seedOrRNG,
@@ -592,7 +592,7 @@ export function spawnBombWithSeed(
592
592
  export function spawnEffect(
593
593
  effectVariant: EffectVariant,
594
594
  subType: int,
595
- position: Vector,
595
+ positionOrGridIndex: Vector | int,
596
596
  velocity: Vector = VectorZero,
597
597
  spawner: Entity | undefined = undefined,
598
598
  seedOrRNG: Seed | RNG | undefined = undefined,
@@ -601,7 +601,7 @@ export function spawnEffect(
601
601
  EntityType.EFFECT,
602
602
  effectVariant,
603
603
  subType,
604
- position,
604
+ positionOrGridIndex,
605
605
  velocity,
606
606
  spawner,
607
607
  seedOrRNG,
@@ -619,7 +619,7 @@ export function spawnEffect(
619
619
  export function spawnEffectWithSeed(
620
620
  effectVariant: EffectVariant,
621
621
  subType: int,
622
- position: Vector,
622
+ positionOrGridIndex: Vector | int,
623
623
  seedOrRNG: Seed | RNG,
624
624
  velocity: Vector = VectorZero,
625
625
  spawner: Entity | undefined = undefined,
@@ -627,7 +627,7 @@ export function spawnEffectWithSeed(
627
627
  return spawnEffect(
628
628
  effectVariant,
629
629
  subType,
630
- position,
630
+ positionOrGridIndex,
631
631
  velocity,
632
632
  spawner,
633
633
  seedOrRNG,
@@ -643,7 +643,7 @@ export function spawnEffectWithSeed(
643
643
  export function spawnFamiliar(
644
644
  familiarVariant: FamiliarVariant,
645
645
  subType: int,
646
- position: Vector,
646
+ positionOrGridIndex: Vector | int,
647
647
  velocity: Vector = VectorZero,
648
648
  spawner: Entity | undefined = undefined,
649
649
  seedOrRNG: Seed | RNG | undefined = undefined,
@@ -652,7 +652,7 @@ export function spawnFamiliar(
652
652
  EntityType.FAMILIAR,
653
653
  familiarVariant,
654
654
  subType,
655
- position,
655
+ positionOrGridIndex,
656
656
  velocity,
657
657
  spawner,
658
658
  seedOrRNG,
@@ -670,7 +670,7 @@ export function spawnFamiliar(
670
670
  export function spawnFamiliarWithSeed(
671
671
  familiarVariant: FamiliarVariant,
672
672
  subType: int,
673
- position: Vector,
673
+ positionOrGridIndex: Vector | int,
674
674
  seedOrRNG: Seed | RNG,
675
675
  velocity: Vector = VectorZero,
676
676
  spawner: Entity | undefined = undefined,
@@ -678,7 +678,7 @@ export function spawnFamiliarWithSeed(
678
678
  return spawnFamiliar(
679
679
  familiarVariant,
680
680
  subType,
681
- position,
681
+ positionOrGridIndex,
682
682
  velocity,
683
683
  spawner,
684
684
  seedOrRNG,
@@ -689,7 +689,7 @@ export function spawnFamiliarWithSeed(
689
689
  export function spawnKnife(
690
690
  knifeVariant: KnifeVariant,
691
691
  subType: int,
692
- position: Vector,
692
+ positionOrGridIndex: Vector | int,
693
693
  velocity: Vector = VectorZero,
694
694
  spawner: Entity | undefined = undefined,
695
695
  seedOrRNG: Seed | RNG | undefined = undefined,
@@ -698,7 +698,7 @@ export function spawnKnife(
698
698
  EntityType.KNIFE,
699
699
  knifeVariant,
700
700
  subType,
701
- position,
701
+ positionOrGridIndex,
702
702
  velocity,
703
703
  spawner,
704
704
  seedOrRNG,
@@ -716,7 +716,7 @@ export function spawnKnife(
716
716
  export function spawnKnifeWithSeed(
717
717
  knifeVariant: KnifeVariant,
718
718
  subType: int,
719
- position: Vector,
719
+ positionOrGridIndex: Vector | int,
720
720
  seedOrRNG: Seed | RNG,
721
721
  velocity: Vector = VectorZero,
722
722
  spawner: Entity | undefined = undefined,
@@ -724,7 +724,7 @@ export function spawnKnifeWithSeed(
724
724
  return spawnKnife(
725
725
  knifeVariant,
726
726
  subType,
727
- position,
727
+ positionOrGridIndex,
728
728
  velocity,
729
729
  spawner,
730
730
  seedOrRNG,
@@ -735,7 +735,7 @@ export function spawnKnifeWithSeed(
735
735
  export function spawnLaser(
736
736
  laserVariant: LaserVariant,
737
737
  subType: int,
738
- position: Vector,
738
+ positionOrGridIndex: Vector | int,
739
739
  velocity: Vector = VectorZero,
740
740
  spawner: Entity | undefined = undefined,
741
741
  seedOrRNG: Seed | RNG | undefined = undefined,
@@ -744,7 +744,7 @@ export function spawnLaser(
744
744
  EntityType.LASER,
745
745
  laserVariant,
746
746
  subType,
747
- position,
747
+ positionOrGridIndex,
748
748
  velocity,
749
749
  spawner,
750
750
  seedOrRNG,
@@ -762,7 +762,7 @@ export function spawnLaser(
762
762
  export function spawnLaserWithSeed(
763
763
  laserVariant: LaserVariant,
764
764
  subType: int,
765
- position: Vector,
765
+ positionOrGridIndex: Vector | int,
766
766
  seedOrRNG: Seed | RNG,
767
767
  velocity: Vector = VectorZero,
768
768
  spawner: Entity | undefined = undefined,
@@ -770,7 +770,7 @@ export function spawnLaserWithSeed(
770
770
  return spawnLaser(
771
771
  laserVariant,
772
772
  subType,
773
- position,
773
+ positionOrGridIndex,
774
774
  velocity,
775
775
  spawner,
776
776
  seedOrRNG,
@@ -787,7 +787,7 @@ export function spawnNPC(
787
787
  entityType: EntityType,
788
788
  variant: int,
789
789
  subType: int,
790
- position: Vector,
790
+ positionOrGridIndex: Vector | int,
791
791
  velocity: Vector = VectorZero,
792
792
  spawner: Entity | undefined = undefined,
793
793
  seedOrRNG: Seed | RNG | undefined = undefined,
@@ -796,7 +796,7 @@ export function spawnNPC(
796
796
  entityType,
797
797
  variant,
798
798
  subType,
799
- position,
799
+ positionOrGridIndex,
800
800
  velocity,
801
801
  spawner,
802
802
  seedOrRNG,
@@ -820,7 +820,7 @@ export function spawnNPCWithSeed(
820
820
  entityType: EntityType,
821
821
  variant: int,
822
822
  subType: int,
823
- position: Vector,
823
+ positionOrGridIndex: Vector | int,
824
824
  seedOrRNG: Seed | RNG,
825
825
  velocity: Vector = VectorZero,
826
826
  spawner: Entity | undefined = undefined,
@@ -829,7 +829,7 @@ export function spawnNPCWithSeed(
829
829
  entityType,
830
830
  variant,
831
831
  subType,
832
- position,
832
+ positionOrGridIndex,
833
833
  velocity,
834
834
  spawner,
835
835
  seedOrRNG,
@@ -840,7 +840,7 @@ export function spawnNPCWithSeed(
840
840
  export function spawnPickup(
841
841
  pickupVariant: PickupVariant,
842
842
  subType: int,
843
- position: Vector,
843
+ positionOrGridIndex: Vector | int,
844
844
  velocity: Vector = VectorZero,
845
845
  spawner: Entity | undefined = undefined,
846
846
  seedOrRNG: Seed | RNG | undefined = undefined,
@@ -849,7 +849,7 @@ export function spawnPickup(
849
849
  EntityType.PICKUP,
850
850
  pickupVariant,
851
851
  subType,
852
- position,
852
+ positionOrGridIndex,
853
853
  velocity,
854
854
  spawner,
855
855
  seedOrRNG,
@@ -867,7 +867,7 @@ export function spawnPickup(
867
867
  export function spawnPickupWithSeed(
868
868
  pickupVariant: PickupVariant,
869
869
  subType: int,
870
- position: Vector,
870
+ positionOrGridIndex: Vector | int,
871
871
  seedOrRNG: Seed | RNG,
872
872
  velocity: Vector = VectorZero,
873
873
  spawner: Entity | undefined = undefined,
@@ -875,7 +875,7 @@ export function spawnPickupWithSeed(
875
875
  return spawnPickup(
876
876
  pickupVariant,
877
877
  subType,
878
- position,
878
+ positionOrGridIndex,
879
879
  velocity,
880
880
  spawner,
881
881
  seedOrRNG,
@@ -886,7 +886,7 @@ export function spawnPickupWithSeed(
886
886
  export function spawnProjectile(
887
887
  projectileVariant: ProjectileVariant,
888
888
  subType: int,
889
- position: Vector,
889
+ positionOrGridIndex: Vector | int,
890
890
  velocity: Vector = VectorZero,
891
891
  spawner: Entity | undefined = undefined,
892
892
  seedOrRNG: Seed | RNG | undefined = undefined,
@@ -895,7 +895,7 @@ export function spawnProjectile(
895
895
  EntityType.PROJECTILE,
896
896
  projectileVariant,
897
897
  subType,
898
- position,
898
+ positionOrGridIndex,
899
899
  velocity,
900
900
  spawner,
901
901
  seedOrRNG,
@@ -913,7 +913,7 @@ export function spawnProjectile(
913
913
  export function spawnProjectileWithSeed(
914
914
  projectileVariant: ProjectileVariant,
915
915
  subType: int,
916
- position: Vector,
916
+ positionOrGridIndex: Vector | int,
917
917
  seedOrRNG: Seed | RNG,
918
918
  velocity: Vector = VectorZero,
919
919
  spawner: Entity | undefined = undefined,
@@ -921,7 +921,7 @@ export function spawnProjectileWithSeed(
921
921
  return spawnProjectile(
922
922
  projectileVariant,
923
923
  subType,
924
- position,
924
+ positionOrGridIndex,
925
925
  velocity,
926
926
  spawner,
927
927
  seedOrRNG,
@@ -932,7 +932,7 @@ export function spawnProjectileWithSeed(
932
932
  export function spawnSlot(
933
933
  slotVariant: SlotVariant,
934
934
  subType: int,
935
- position: Vector,
935
+ positionOrGridIndex: Vector | int,
936
936
  velocity: Vector = VectorZero,
937
937
  spawner: Entity | undefined = undefined,
938
938
  seedOrRNG: Seed | RNG | undefined = undefined,
@@ -941,7 +941,7 @@ export function spawnSlot(
941
941
  EntityType.SLOT,
942
942
  slotVariant,
943
943
  subType,
944
- position,
944
+ positionOrGridIndex,
945
945
  velocity,
946
946
  spawner,
947
947
  seedOrRNG,
@@ -952,7 +952,7 @@ export function spawnSlot(
952
952
  export function spawnSlotWithSeed(
953
953
  slotVariant: SlotVariant,
954
954
  subType: int,
955
- position: Vector,
955
+ positionOrGridIndex: Vector | int,
956
956
  seedOrRNG: Seed | RNG,
957
957
  velocity: Vector = VectorZero,
958
958
  spawner: Entity | undefined = undefined,
@@ -960,7 +960,7 @@ export function spawnSlotWithSeed(
960
960
  return spawnSlot(
961
961
  slotVariant,
962
962
  subType,
963
- position,
963
+ positionOrGridIndex,
964
964
  velocity,
965
965
  spawner,
966
966
  seedOrRNG,
@@ -971,7 +971,7 @@ export function spawnSlotWithSeed(
971
971
  export function spawnTear(
972
972
  tearVariant: TearVariant,
973
973
  subType: int,
974
- position: Vector,
974
+ positionOrGridIndex: Vector | int,
975
975
  velocity: Vector = VectorZero,
976
976
  spawner: Entity | undefined = undefined,
977
977
  seedOrRNG: Seed | RNG | undefined = undefined,
@@ -980,7 +980,7 @@ export function spawnTear(
980
980
  EntityType.TEAR,
981
981
  tearVariant,
982
982
  subType,
983
- position,
983
+ positionOrGridIndex,
984
984
  velocity,
985
985
  spawner,
986
986
  seedOrRNG,
@@ -998,7 +998,7 @@ export function spawnTear(
998
998
  export function spawnTearWithSeed(
999
999
  tearVariant: TearVariant,
1000
1000
  subType: int,
1001
- position: Vector,
1001
+ positionOrGridIndex: Vector | int,
1002
1002
  seedOrRNG: Seed | RNG,
1003
1003
  velocity: Vector = VectorZero,
1004
1004
  spawner: Entity | undefined = undefined,
@@ -1006,7 +1006,7 @@ export function spawnTearWithSeed(
1006
1006
  return spawnTear(
1007
1007
  tearVariant,
1008
1008
  subType,
1009
- position,
1009
+ positionOrGridIndex,
1010
1010
  velocity,
1011
1011
  spawner,
1012
1012
  seedOrRNG,