isaacscript-common 17.9.0 → 18.0.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.
package/dist/index.d.ts CHANGED
@@ -11283,16 +11283,6 @@ export declare function newChargeBarSprites(maxCharges: int): ChargeBarSprites;
11283
11283
  */
11284
11284
  export declare function newCollectibleSprite(collectibleType: CollectibleType): Sprite;
11285
11285
 
11286
- /**
11287
- * Helper function for creating objects that represent a mapping of an enum value to some other
11288
- * value in a type-safe way.
11289
- *
11290
- * This function will ensure that the provided object has a key for each value in the enum.
11291
- *
11292
- * After the `satisfies` operator is released in TypeScript 4.9, this function should be deleted.
11293
- */
11294
- export declare function newObjectWithEnumKeys<Enum extends number | string, T extends Record<Enum, unknown>>(theEnum: Record<string, Enum>, obj: T): T;
11295
-
11296
11286
  export declare function newPickingUpItem(): PickingUpItem;
11297
11287
 
11298
11288
  /** Returns a `PlayerHealth` object with all zeros. */
@@ -1,6 +1,6 @@
1
1
  --[[
2
2
 
3
- isaacscript-common 17.9.0
3
+ isaacscript-common 18.0.0
4
4
 
5
5
  This is the "isaacscript-common" library, which was created with the IsaacScript tool.
6
6
 
@@ -15351,9 +15351,6 @@ end
15351
15351
  function ____exports.isVanillaConsoleCommand(self, commandName)
15352
15352
  return CONSOLE_COMMANDS_SET:has(commandName)
15353
15353
  end
15354
- function ____exports.newObjectWithEnumKeys(self, theEnum, obj)
15355
- return obj
15356
- end
15357
15354
  function ____exports.printConsole(self, msg)
15358
15355
  Isaac.ConsoleOutput(msg .. "\n")
15359
15356
  end
@@ -30890,6 +30887,10 @@ do
30890
30887
  local PreNPCUpdateFilter = ____PreNPCUpdateFilter.PreNPCUpdateFilter
30891
30888
  ____exports.PreNPCUpdateFilter = PreNPCUpdateFilter
30892
30889
  end
30890
+ return ____exports
30891
+ end,
30892
+ ["src.types.AnyClass"] = function(...)
30893
+ local ____exports = {}
30893
30894
  return ____exports
30894
30895
  end,
30895
30896
  ["src.callbacks"] = function(...)
@@ -30901,9 +30902,7 @@ local ____ModCallbackCustom = require("src.enums.ModCallbackCustom")
30901
30902
  local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
30902
30903
  local ____enums = require("src.functions.enums")
30903
30904
  local getEnumValues = ____enums.getEnumValues
30904
- local ____utils = require("src.functions.utils")
30905
- local newObjectWithEnumKeys = ____utils.newObjectWithEnumKeys
30906
- local MOD_CALLBACK_CUSTOM_TO_CLASS = newObjectWithEnumKeys(nil, ModCallbackCustom, {
30905
+ local MOD_CALLBACK_CUSTOM_TO_CLASS = {
30907
30906
  [ModCallbackCustom.ENTITY_TAKE_DMG_FILTER] = cc.EntityTakeDmgFilter,
30908
30907
  [ModCallbackCustom.POST_AMBUSH_FINISHED] = cc.PostAmbushFinished,
30909
30908
  [ModCallbackCustom.POST_AMBUSH_STARTED] = cc.PostAmbushStarted,
@@ -31004,7 +31003,7 @@ local MOD_CALLBACK_CUSTOM_TO_CLASS = newObjectWithEnumKeys(nil, ModCallbackCusto
31004
31003
  [ModCallbackCustom.PRE_NEW_LEVEL] = cc.PreNewLevel,
31005
31004
  [ModCallbackCustom.PRE_NPC_COLLISION_FILTER] = cc.PreNPCCollisionFilter,
31006
31005
  [ModCallbackCustom.PRE_NPC_UPDATE_FILTER] = cc.PreNPCUpdateFilter
31007
- })
31006
+ }
31008
31007
  function ____exports.getCallbacks(self)
31009
31008
  local instantiatedClasses = {}
31010
31009
  for ____, modCallbackCustom in ipairs(getEnumValues(nil, ModCallbackCustom)) do
@@ -34540,10 +34539,6 @@ return ____exports
34540
34539
  ["src.classes.features.other.saveDataManager.constants"] = function(...)
34541
34540
  local ____exports = {}
34542
34541
  ____exports.SAVE_DATA_MANAGER_DEBUG = false
34543
- return ____exports
34544
- end,
34545
- ["src.types.AnyClass"] = function(...)
34546
- local ____exports = {}
34547
34542
  return ____exports
34548
34543
  end,
34549
34544
  ["src.objects.isaacAPIClassTypeToBrand"] = function(...)
@@ -48716,7 +48711,6 @@ local ISCFeature = ____ISCFeature.ISCFeature
48716
48711
  local ____ModCallbackCustom = require("src.enums.ModCallbackCustom")
48717
48712
  local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
48718
48713
  local ____utils = require("src.functions.utils")
48719
- local newObjectWithEnumKeys = ____utils.newObjectWithEnumKeys
48720
48714
  local validateInterfaceMatchesEnum = ____utils.validateInterfaceMatchesEnum
48721
48715
  validateInterfaceMatchesEnum(nil)
48722
48716
  function ____exports.getFeatures(self, mod, callbacks)
@@ -48756,92 +48750,89 @@ function ____exports.getFeatures(self, mod, callbacks)
48756
48750
  runNextRoom,
48757
48751
  stageHistory
48758
48752
  )
48759
- return newObjectWithEnumKeys(
48760
- nil,
48761
- ISCFeature,
48762
- {
48763
- [ISCFeature.CUSTOM_REVIVE] = __TS__New(CustomRevive, callbacks[ModCallbackCustom.PRE_CUSTOM_REVIVE], callbacks[ModCallbackCustom.POST_CUSTOM_REVIVE], runInNFrames),
48764
- [ISCFeature.ESAU_JR_DETECTION] = __TS__New(EsauJrDetection, callbacks[ModCallbackCustom.POST_ESAU_JR], callbacks[ModCallbackCustom.POST_FIRST_ESAU_JR]),
48765
- [ISCFeature.FLIP_DETECTION] = __TS__New(FlipDetection, callbacks[ModCallbackCustom.POST_FLIP], callbacks[ModCallbackCustom.POST_FIRST_FLIP]),
48766
- [ISCFeature.GRID_ENTITY_COLLISION_DETECTION] = __TS__New(GridEntityCollisionDetection, callbacks[ModCallbackCustom.POST_GRID_ENTITY_COLLISION], callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_COLLISION], customGridEntities),
48767
- [ISCFeature.GRID_ENTITY_UPDATE_DETECTION] = __TS__New(
48768
- GridEntityUpdateDetection,
48769
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_INIT],
48770
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_INIT],
48771
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_UPDATE],
48772
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_UPDATE],
48773
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_REMOVE],
48774
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_REMOVE],
48775
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED],
48776
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_STATE_CHANGED],
48777
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_BROKEN],
48778
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_BROKEN],
48779
- customGridEntities
48780
- ),
48781
- [ISCFeature.GRID_ENTITY_RENDER_DETECTION] = __TS__New(GridEntityRenderDetection, callbacks[ModCallbackCustom.POST_GRID_ENTITY_RENDER], callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_RENDER], customGridEntities),
48782
- [ISCFeature.GAME_REORDERED_CALLBACKS] = gameReorderedCallbacks,
48783
- [ISCFeature.ITEM_PICKUP_DETECTION] = __TS__New(ItemPickupDetection, callbacks[ModCallbackCustom.POST_ITEM_PICKUP], callbacks[ModCallbackCustom.PRE_ITEM_PICKUP]),
48784
- [ISCFeature.PLAYER_COLLECTIBLE_DETECTION] = __TS__New(
48785
- PlayerCollectibleDetection,
48786
- callbacks[ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED],
48787
- callbacks[ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED],
48788
- moddedElementSets,
48789
- runInNFrames
48790
- ),
48791
- [ISCFeature.PLAYER_REORDERED_CALLBACKS] = __TS__New(PlayerReorderedCallbacks, callbacks[ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED], callbacks[ModCallbackCustom.POST_PLAYER_RENDER_REORDERED], callbacks[ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED]),
48792
- [ISCFeature.SLOT_RENDER_DETECTION] = __TS__New(SlotRenderDetection, callbacks[ModCallbackCustom.POST_SLOT_RENDER], callbacks[ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED]),
48793
- [ISCFeature.SLOT_UPDATE_DETECTION] = __TS__New(SlotUpdateDetection, callbacks[ModCallbackCustom.POST_SLOT_INIT], callbacks[ModCallbackCustom.POST_SLOT_UPDATE]),
48794
- [ISCFeature.CHARACTER_HEALTH_CONVERSION] = __TS__New(CharacterHealthConversion),
48795
- [ISCFeature.CHARACTER_STATS] = __TS__New(CharacterStats),
48796
- [ISCFeature.COLLECTIBLE_ITEM_POOL_TYPE] = __TS__New(CollectibleItemPoolType, pickupIndexCreation),
48797
- [ISCFeature.CUSTOM_GRID_ENTITIES] = customGridEntities,
48798
- [ISCFeature.CUSTOM_ITEM_POOLS] = __TS__New(CustomItemPools),
48799
- [ISCFeature.CUSTOM_HOTKEYS] = __TS__New(CustomHotkeys),
48800
- [ISCFeature.CUSTOM_PICKUPS] = __TS__New(CustomPickups),
48801
- [ISCFeature.CUSTOM_STAGES] = __TS__New(
48802
- CustomStages,
48803
- customGridEntities,
48804
- customTrapdoors,
48805
- disableAllSound,
48806
- gameReorderedCallbacks,
48807
- pause,
48808
- runInNFrames
48809
- ),
48810
- [ISCFeature.CUSTOM_TRAPDOORS] = customTrapdoors,
48811
- [ISCFeature.DEBUG_DISPLAY] = __TS__New(DebugDisplay, mod),
48812
- [ISCFeature.DEPLOY_JSON_ROOM] = __TS__New(DeployJSONRoom, preventGridEntityRespawn, spawnCollectible),
48813
- [ISCFeature.DISABLE_ALL_SOUND] = disableAllSound,
48814
- [ISCFeature.DISABLE_INPUTS] = disableInputs,
48815
- [ISCFeature.FADE_IN_REMOVER] = __TS__New(FadeInRemover),
48816
- [ISCFeature.FAST_RESET] = __TS__New(FastReset),
48817
- [ISCFeature.FLYING_DETECTION] = __TS__New(FlyingDetection, moddedElementSets),
48818
- [ISCFeature.FORGOTTEN_SWITCH] = __TS__New(ForgottenSwitch, pressInput),
48819
- [ISCFeature.EXTRA_CONSOLE_COMMANDS] = __TS__New(ExtraConsoleCommands),
48820
- [ISCFeature.ITEM_POOL_DETECTION] = itemPoolDetection,
48821
- [ISCFeature.MODDED_ELEMENT_DETECTION] = moddedElementDetection,
48822
- [ISCFeature.MODDED_ELEMENT_SETS] = moddedElementSets,
48823
- [ISCFeature.NO_SIREN_STEAL] = __TS__New(NoSirenSteal),
48824
- [ISCFeature.PAUSE] = pause,
48825
- [ISCFeature.PERSISTENT_ENTITIES] = __TS__New(PersistentEntities, roomHistory),
48826
- [ISCFeature.PICKUP_INDEX_CREATION] = pickupIndexCreation,
48827
- [ISCFeature.PLAYER_INVENTORY] = __TS__New(PlayerInventory),
48828
- [ISCFeature.PONY_DETECTION] = ponyDetection,
48829
- [ISCFeature.PRESS_INPUT] = pressInput,
48830
- [ISCFeature.PREVENT_CHILD_ENTITIES] = __TS__New(PreventChildEntities),
48831
- [ISCFeature.PREVENT_COLLECTIBLE_ROTATION] = preventCollectibleRotation,
48832
- [ISCFeature.PREVENT_GRID_ENTITY_RESPAWN] = preventGridEntityRespawn,
48833
- [ISCFeature.ROOM_CLEAR_FRAME] = roomClearFrame,
48834
- [ISCFeature.ROOM_HISTORY] = roomHistory,
48835
- [ISCFeature.RUN_IN_N_FRAMES] = runInNFrames,
48836
- [ISCFeature.RUN_NEXT_ROOM] = runNextRoom,
48837
- [ISCFeature.SAVE_DATA_MANAGER] = saveDataManager,
48838
- [ISCFeature.SPAWN_ALT_ROCK_REWARDS] = __TS__New(SpawnRockAltRewards, itemPoolDetection),
48839
- [ISCFeature.SPAWN_COLLECTIBLE] = spawnCollectible,
48840
- [ISCFeature.STAGE_HISTORY] = stageHistory,
48841
- [ISCFeature.START_AMBUSH] = __TS__New(StartAmbush, runInNFrames),
48842
- [ISCFeature.TAINTED_LAZARUS_PLAYERS] = __TS__New(TaintedLazarusPlayers)
48843
- }
48844
- )
48753
+ local features = {
48754
+ [ISCFeature.CUSTOM_REVIVE] = __TS__New(CustomRevive, callbacks[ModCallbackCustom.PRE_CUSTOM_REVIVE], callbacks[ModCallbackCustom.POST_CUSTOM_REVIVE], runInNFrames),
48755
+ [ISCFeature.ESAU_JR_DETECTION] = __TS__New(EsauJrDetection, callbacks[ModCallbackCustom.POST_ESAU_JR], callbacks[ModCallbackCustom.POST_FIRST_ESAU_JR]),
48756
+ [ISCFeature.FLIP_DETECTION] = __TS__New(FlipDetection, callbacks[ModCallbackCustom.POST_FLIP], callbacks[ModCallbackCustom.POST_FIRST_FLIP]),
48757
+ [ISCFeature.GRID_ENTITY_COLLISION_DETECTION] = __TS__New(GridEntityCollisionDetection, callbacks[ModCallbackCustom.POST_GRID_ENTITY_COLLISION], callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_COLLISION], customGridEntities),
48758
+ [ISCFeature.GRID_ENTITY_UPDATE_DETECTION] = __TS__New(
48759
+ GridEntityUpdateDetection,
48760
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_INIT],
48761
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_INIT],
48762
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_UPDATE],
48763
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_UPDATE],
48764
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_REMOVE],
48765
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_REMOVE],
48766
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED],
48767
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_STATE_CHANGED],
48768
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_BROKEN],
48769
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_BROKEN],
48770
+ customGridEntities
48771
+ ),
48772
+ [ISCFeature.GRID_ENTITY_RENDER_DETECTION] = __TS__New(GridEntityRenderDetection, callbacks[ModCallbackCustom.POST_GRID_ENTITY_RENDER], callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_RENDER], customGridEntities),
48773
+ [ISCFeature.GAME_REORDERED_CALLBACKS] = gameReorderedCallbacks,
48774
+ [ISCFeature.ITEM_PICKUP_DETECTION] = __TS__New(ItemPickupDetection, callbacks[ModCallbackCustom.POST_ITEM_PICKUP], callbacks[ModCallbackCustom.PRE_ITEM_PICKUP]),
48775
+ [ISCFeature.PLAYER_COLLECTIBLE_DETECTION] = __TS__New(
48776
+ PlayerCollectibleDetection,
48777
+ callbacks[ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED],
48778
+ callbacks[ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED],
48779
+ moddedElementSets,
48780
+ runInNFrames
48781
+ ),
48782
+ [ISCFeature.PLAYER_REORDERED_CALLBACKS] = __TS__New(PlayerReorderedCallbacks, callbacks[ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED], callbacks[ModCallbackCustom.POST_PLAYER_RENDER_REORDERED], callbacks[ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED]),
48783
+ [ISCFeature.SLOT_RENDER_DETECTION] = __TS__New(SlotRenderDetection, callbacks[ModCallbackCustom.POST_SLOT_RENDER], callbacks[ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED]),
48784
+ [ISCFeature.SLOT_UPDATE_DETECTION] = __TS__New(SlotUpdateDetection, callbacks[ModCallbackCustom.POST_SLOT_INIT], callbacks[ModCallbackCustom.POST_SLOT_UPDATE]),
48785
+ [ISCFeature.CHARACTER_HEALTH_CONVERSION] = __TS__New(CharacterHealthConversion),
48786
+ [ISCFeature.CHARACTER_STATS] = __TS__New(CharacterStats),
48787
+ [ISCFeature.COLLECTIBLE_ITEM_POOL_TYPE] = __TS__New(CollectibleItemPoolType, pickupIndexCreation),
48788
+ [ISCFeature.CUSTOM_GRID_ENTITIES] = customGridEntities,
48789
+ [ISCFeature.CUSTOM_ITEM_POOLS] = __TS__New(CustomItemPools),
48790
+ [ISCFeature.CUSTOM_HOTKEYS] = __TS__New(CustomHotkeys),
48791
+ [ISCFeature.CUSTOM_PICKUPS] = __TS__New(CustomPickups),
48792
+ [ISCFeature.CUSTOM_STAGES] = __TS__New(
48793
+ CustomStages,
48794
+ customGridEntities,
48795
+ customTrapdoors,
48796
+ disableAllSound,
48797
+ gameReorderedCallbacks,
48798
+ pause,
48799
+ runInNFrames
48800
+ ),
48801
+ [ISCFeature.CUSTOM_TRAPDOORS] = customTrapdoors,
48802
+ [ISCFeature.DEBUG_DISPLAY] = __TS__New(DebugDisplay, mod),
48803
+ [ISCFeature.DEPLOY_JSON_ROOM] = __TS__New(DeployJSONRoom, preventGridEntityRespawn, spawnCollectible),
48804
+ [ISCFeature.DISABLE_ALL_SOUND] = disableAllSound,
48805
+ [ISCFeature.DISABLE_INPUTS] = disableInputs,
48806
+ [ISCFeature.FADE_IN_REMOVER] = __TS__New(FadeInRemover),
48807
+ [ISCFeature.FAST_RESET] = __TS__New(FastReset),
48808
+ [ISCFeature.FLYING_DETECTION] = __TS__New(FlyingDetection, moddedElementSets),
48809
+ [ISCFeature.FORGOTTEN_SWITCH] = __TS__New(ForgottenSwitch, pressInput),
48810
+ [ISCFeature.EXTRA_CONSOLE_COMMANDS] = __TS__New(ExtraConsoleCommands),
48811
+ [ISCFeature.ITEM_POOL_DETECTION] = itemPoolDetection,
48812
+ [ISCFeature.MODDED_ELEMENT_DETECTION] = moddedElementDetection,
48813
+ [ISCFeature.MODDED_ELEMENT_SETS] = moddedElementSets,
48814
+ [ISCFeature.NO_SIREN_STEAL] = __TS__New(NoSirenSteal),
48815
+ [ISCFeature.PAUSE] = pause,
48816
+ [ISCFeature.PERSISTENT_ENTITIES] = __TS__New(PersistentEntities, roomHistory),
48817
+ [ISCFeature.PICKUP_INDEX_CREATION] = pickupIndexCreation,
48818
+ [ISCFeature.PLAYER_INVENTORY] = __TS__New(PlayerInventory),
48819
+ [ISCFeature.PONY_DETECTION] = ponyDetection,
48820
+ [ISCFeature.PRESS_INPUT] = pressInput,
48821
+ [ISCFeature.PREVENT_CHILD_ENTITIES] = __TS__New(PreventChildEntities),
48822
+ [ISCFeature.PREVENT_COLLECTIBLE_ROTATION] = preventCollectibleRotation,
48823
+ [ISCFeature.PREVENT_GRID_ENTITY_RESPAWN] = preventGridEntityRespawn,
48824
+ [ISCFeature.ROOM_CLEAR_FRAME] = roomClearFrame,
48825
+ [ISCFeature.ROOM_HISTORY] = roomHistory,
48826
+ [ISCFeature.RUN_IN_N_FRAMES] = runInNFrames,
48827
+ [ISCFeature.RUN_NEXT_ROOM] = runNextRoom,
48828
+ [ISCFeature.SAVE_DATA_MANAGER] = saveDataManager,
48829
+ [ISCFeature.SPAWN_ALT_ROCK_REWARDS] = __TS__New(SpawnRockAltRewards, itemPoolDetection),
48830
+ [ISCFeature.SPAWN_COLLECTIBLE] = spawnCollectible,
48831
+ [ISCFeature.STAGE_HISTORY] = stageHistory,
48832
+ [ISCFeature.START_AMBUSH] = __TS__New(StartAmbush, runInNFrames),
48833
+ [ISCFeature.TAINTED_LAZARUS_PLAYERS] = __TS__New(TaintedLazarusPlayers)
48834
+ }
48835
+ return features
48845
48836
  end
48846
48837
  return ____exports
48847
48838
  end,
@@ -102,7 +102,7 @@ declare const MOD_CALLBACK_CUSTOM_TO_CLASS: {
102
102
  readonly 99: typeof cc.PreNPCUpdateFilter;
103
103
  };
104
104
  export type ModCallbackCustomToClass = {
105
- readonly [Key in keyof typeof MOD_CALLBACK_CUSTOM_TO_CLASS]: InstanceType<typeof MOD_CALLBACK_CUSTOM_TO_CLASS[Key]>;
105
+ readonly [Key in keyof typeof MOD_CALLBACK_CUSTOM_TO_CLASS]: InstanceType<(typeof MOD_CALLBACK_CUSTOM_TO_CLASS)[Key]>;
106
106
  };
107
107
  export declare function getCallbacks(): ModCallbackCustomToClass;
108
108
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"callbacks.d.ts","sourceRoot":"","sources":["../../src/callbacks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAKxC,QAAA,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkHvB,CAAC;AAEZ,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,GAAG,IAAI,MAAM,OAAO,4BAA4B,GAAG,YAAY,CACvE,OAAO,4BAA4B,CAAC,GAAG,CAAC,CACzC;CACF,CAAC;AAEF,wBAAgB,YAAY,IAAI,wBAAwB,CASvD"}
1
+ {"version":3,"file":"callbacks.d.ts","sourceRoot":"","sources":["../../src/callbacks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAMxC,QAAA,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkH8B,CAAC;AAEjE,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,GAAG,IAAI,MAAM,OAAO,4BAA4B,GAAG,YAAY,CACvE,CAAC,OAAO,4BAA4B,CAAC,CAAC,GAAG,CAAC,CAC3C;CACF,CAAC;AAEF,wBAAgB,YAAY,IAAI,wBAAwB,CASvD"}
@@ -6,9 +6,7 @@ local ____ModCallbackCustom = require("src.enums.ModCallbackCustom")
6
6
  local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
7
7
  local ____enums = require("src.functions.enums")
8
8
  local getEnumValues = ____enums.getEnumValues
9
- local ____utils = require("src.functions.utils")
10
- local newObjectWithEnumKeys = ____utils.newObjectWithEnumKeys
11
- local MOD_CALLBACK_CUSTOM_TO_CLASS = newObjectWithEnumKeys(nil, ModCallbackCustom, {
9
+ local MOD_CALLBACK_CUSTOM_TO_CLASS = {
12
10
  [ModCallbackCustom.ENTITY_TAKE_DMG_FILTER] = cc.EntityTakeDmgFilter,
13
11
  [ModCallbackCustom.POST_AMBUSH_FINISHED] = cc.PostAmbushFinished,
14
12
  [ModCallbackCustom.POST_AMBUSH_STARTED] = cc.PostAmbushStarted,
@@ -109,7 +107,7 @@ local MOD_CALLBACK_CUSTOM_TO_CLASS = newObjectWithEnumKeys(nil, ModCallbackCusto
109
107
  [ModCallbackCustom.PRE_NEW_LEVEL] = cc.PreNewLevel,
110
108
  [ModCallbackCustom.PRE_NPC_COLLISION_FILTER] = cc.PreNPCCollisionFilter,
111
109
  [ModCallbackCustom.PRE_NPC_UPDATE_FILTER] = cc.PreNPCUpdateFilter
112
- })
110
+ }
113
111
  function ____exports.getCallbacks(self)
114
112
  local instantiatedClasses = {}
115
113
  for ____, modCallbackCustom in ipairs(getEnumValues(nil, ModCallbackCustom)) do
@@ -1 +1 @@
1
- {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/features.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/features.ts"],"names":[],"mappings":"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"}
@@ -112,7 +112,6 @@ local ISCFeature = ____ISCFeature.ISCFeature
112
112
  local ____ModCallbackCustom = require("src.enums.ModCallbackCustom")
113
113
  local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
114
114
  local ____utils = require("src.functions.utils")
115
- local newObjectWithEnumKeys = ____utils.newObjectWithEnumKeys
116
115
  local validateInterfaceMatchesEnum = ____utils.validateInterfaceMatchesEnum
117
116
  validateInterfaceMatchesEnum(nil)
118
117
  function ____exports.getFeatures(self, mod, callbacks)
@@ -152,91 +151,88 @@ function ____exports.getFeatures(self, mod, callbacks)
152
151
  runNextRoom,
153
152
  stageHistory
154
153
  )
155
- return newObjectWithEnumKeys(
156
- nil,
157
- ISCFeature,
158
- {
159
- [ISCFeature.CUSTOM_REVIVE] = __TS__New(CustomRevive, callbacks[ModCallbackCustom.PRE_CUSTOM_REVIVE], callbacks[ModCallbackCustom.POST_CUSTOM_REVIVE], runInNFrames),
160
- [ISCFeature.ESAU_JR_DETECTION] = __TS__New(EsauJrDetection, callbacks[ModCallbackCustom.POST_ESAU_JR], callbacks[ModCallbackCustom.POST_FIRST_ESAU_JR]),
161
- [ISCFeature.FLIP_DETECTION] = __TS__New(FlipDetection, callbacks[ModCallbackCustom.POST_FLIP], callbacks[ModCallbackCustom.POST_FIRST_FLIP]),
162
- [ISCFeature.GRID_ENTITY_COLLISION_DETECTION] = __TS__New(GridEntityCollisionDetection, callbacks[ModCallbackCustom.POST_GRID_ENTITY_COLLISION], callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_COLLISION], customGridEntities),
163
- [ISCFeature.GRID_ENTITY_UPDATE_DETECTION] = __TS__New(
164
- GridEntityUpdateDetection,
165
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_INIT],
166
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_INIT],
167
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_UPDATE],
168
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_UPDATE],
169
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_REMOVE],
170
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_REMOVE],
171
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED],
172
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_STATE_CHANGED],
173
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_BROKEN],
174
- callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_BROKEN],
175
- customGridEntities
176
- ),
177
- [ISCFeature.GRID_ENTITY_RENDER_DETECTION] = __TS__New(GridEntityRenderDetection, callbacks[ModCallbackCustom.POST_GRID_ENTITY_RENDER], callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_RENDER], customGridEntities),
178
- [ISCFeature.GAME_REORDERED_CALLBACKS] = gameReorderedCallbacks,
179
- [ISCFeature.ITEM_PICKUP_DETECTION] = __TS__New(ItemPickupDetection, callbacks[ModCallbackCustom.POST_ITEM_PICKUP], callbacks[ModCallbackCustom.PRE_ITEM_PICKUP]),
180
- [ISCFeature.PLAYER_COLLECTIBLE_DETECTION] = __TS__New(
181
- PlayerCollectibleDetection,
182
- callbacks[ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED],
183
- callbacks[ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED],
184
- moddedElementSets,
185
- runInNFrames
186
- ),
187
- [ISCFeature.PLAYER_REORDERED_CALLBACKS] = __TS__New(PlayerReorderedCallbacks, callbacks[ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED], callbacks[ModCallbackCustom.POST_PLAYER_RENDER_REORDERED], callbacks[ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED]),
188
- [ISCFeature.SLOT_RENDER_DETECTION] = __TS__New(SlotRenderDetection, callbacks[ModCallbackCustom.POST_SLOT_RENDER], callbacks[ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED]),
189
- [ISCFeature.SLOT_UPDATE_DETECTION] = __TS__New(SlotUpdateDetection, callbacks[ModCallbackCustom.POST_SLOT_INIT], callbacks[ModCallbackCustom.POST_SLOT_UPDATE]),
190
- [ISCFeature.CHARACTER_HEALTH_CONVERSION] = __TS__New(CharacterHealthConversion),
191
- [ISCFeature.CHARACTER_STATS] = __TS__New(CharacterStats),
192
- [ISCFeature.COLLECTIBLE_ITEM_POOL_TYPE] = __TS__New(CollectibleItemPoolType, pickupIndexCreation),
193
- [ISCFeature.CUSTOM_GRID_ENTITIES] = customGridEntities,
194
- [ISCFeature.CUSTOM_ITEM_POOLS] = __TS__New(CustomItemPools),
195
- [ISCFeature.CUSTOM_HOTKEYS] = __TS__New(CustomHotkeys),
196
- [ISCFeature.CUSTOM_PICKUPS] = __TS__New(CustomPickups),
197
- [ISCFeature.CUSTOM_STAGES] = __TS__New(
198
- CustomStages,
199
- customGridEntities,
200
- customTrapdoors,
201
- disableAllSound,
202
- gameReorderedCallbacks,
203
- pause,
204
- runInNFrames
205
- ),
206
- [ISCFeature.CUSTOM_TRAPDOORS] = customTrapdoors,
207
- [ISCFeature.DEBUG_DISPLAY] = __TS__New(DebugDisplay, mod),
208
- [ISCFeature.DEPLOY_JSON_ROOM] = __TS__New(DeployJSONRoom, preventGridEntityRespawn, spawnCollectible),
209
- [ISCFeature.DISABLE_ALL_SOUND] = disableAllSound,
210
- [ISCFeature.DISABLE_INPUTS] = disableInputs,
211
- [ISCFeature.FADE_IN_REMOVER] = __TS__New(FadeInRemover),
212
- [ISCFeature.FAST_RESET] = __TS__New(FastReset),
213
- [ISCFeature.FLYING_DETECTION] = __TS__New(FlyingDetection, moddedElementSets),
214
- [ISCFeature.FORGOTTEN_SWITCH] = __TS__New(ForgottenSwitch, pressInput),
215
- [ISCFeature.EXTRA_CONSOLE_COMMANDS] = __TS__New(ExtraConsoleCommands),
216
- [ISCFeature.ITEM_POOL_DETECTION] = itemPoolDetection,
217
- [ISCFeature.MODDED_ELEMENT_DETECTION] = moddedElementDetection,
218
- [ISCFeature.MODDED_ELEMENT_SETS] = moddedElementSets,
219
- [ISCFeature.NO_SIREN_STEAL] = __TS__New(NoSirenSteal),
220
- [ISCFeature.PAUSE] = pause,
221
- [ISCFeature.PERSISTENT_ENTITIES] = __TS__New(PersistentEntities, roomHistory),
222
- [ISCFeature.PICKUP_INDEX_CREATION] = pickupIndexCreation,
223
- [ISCFeature.PLAYER_INVENTORY] = __TS__New(PlayerInventory),
224
- [ISCFeature.PONY_DETECTION] = ponyDetection,
225
- [ISCFeature.PRESS_INPUT] = pressInput,
226
- [ISCFeature.PREVENT_CHILD_ENTITIES] = __TS__New(PreventChildEntities),
227
- [ISCFeature.PREVENT_COLLECTIBLE_ROTATION] = preventCollectibleRotation,
228
- [ISCFeature.PREVENT_GRID_ENTITY_RESPAWN] = preventGridEntityRespawn,
229
- [ISCFeature.ROOM_CLEAR_FRAME] = roomClearFrame,
230
- [ISCFeature.ROOM_HISTORY] = roomHistory,
231
- [ISCFeature.RUN_IN_N_FRAMES] = runInNFrames,
232
- [ISCFeature.RUN_NEXT_ROOM] = runNextRoom,
233
- [ISCFeature.SAVE_DATA_MANAGER] = saveDataManager,
234
- [ISCFeature.SPAWN_ALT_ROCK_REWARDS] = __TS__New(SpawnRockAltRewards, itemPoolDetection),
235
- [ISCFeature.SPAWN_COLLECTIBLE] = spawnCollectible,
236
- [ISCFeature.STAGE_HISTORY] = stageHistory,
237
- [ISCFeature.START_AMBUSH] = __TS__New(StartAmbush, runInNFrames),
238
- [ISCFeature.TAINTED_LAZARUS_PLAYERS] = __TS__New(TaintedLazarusPlayers)
239
- }
240
- )
154
+ local features = {
155
+ [ISCFeature.CUSTOM_REVIVE] = __TS__New(CustomRevive, callbacks[ModCallbackCustom.PRE_CUSTOM_REVIVE], callbacks[ModCallbackCustom.POST_CUSTOM_REVIVE], runInNFrames),
156
+ [ISCFeature.ESAU_JR_DETECTION] = __TS__New(EsauJrDetection, callbacks[ModCallbackCustom.POST_ESAU_JR], callbacks[ModCallbackCustom.POST_FIRST_ESAU_JR]),
157
+ [ISCFeature.FLIP_DETECTION] = __TS__New(FlipDetection, callbacks[ModCallbackCustom.POST_FLIP], callbacks[ModCallbackCustom.POST_FIRST_FLIP]),
158
+ [ISCFeature.GRID_ENTITY_COLLISION_DETECTION] = __TS__New(GridEntityCollisionDetection, callbacks[ModCallbackCustom.POST_GRID_ENTITY_COLLISION], callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_COLLISION], customGridEntities),
159
+ [ISCFeature.GRID_ENTITY_UPDATE_DETECTION] = __TS__New(
160
+ GridEntityUpdateDetection,
161
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_INIT],
162
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_INIT],
163
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_UPDATE],
164
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_UPDATE],
165
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_REMOVE],
166
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_REMOVE],
167
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED],
168
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_STATE_CHANGED],
169
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_BROKEN],
170
+ callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_BROKEN],
171
+ customGridEntities
172
+ ),
173
+ [ISCFeature.GRID_ENTITY_RENDER_DETECTION] = __TS__New(GridEntityRenderDetection, callbacks[ModCallbackCustom.POST_GRID_ENTITY_RENDER], callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_RENDER], customGridEntities),
174
+ [ISCFeature.GAME_REORDERED_CALLBACKS] = gameReorderedCallbacks,
175
+ [ISCFeature.ITEM_PICKUP_DETECTION] = __TS__New(ItemPickupDetection, callbacks[ModCallbackCustom.POST_ITEM_PICKUP], callbacks[ModCallbackCustom.PRE_ITEM_PICKUP]),
176
+ [ISCFeature.PLAYER_COLLECTIBLE_DETECTION] = __TS__New(
177
+ PlayerCollectibleDetection,
178
+ callbacks[ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED],
179
+ callbacks[ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED],
180
+ moddedElementSets,
181
+ runInNFrames
182
+ ),
183
+ [ISCFeature.PLAYER_REORDERED_CALLBACKS] = __TS__New(PlayerReorderedCallbacks, callbacks[ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED], callbacks[ModCallbackCustom.POST_PLAYER_RENDER_REORDERED], callbacks[ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED]),
184
+ [ISCFeature.SLOT_RENDER_DETECTION] = __TS__New(SlotRenderDetection, callbacks[ModCallbackCustom.POST_SLOT_RENDER], callbacks[ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED]),
185
+ [ISCFeature.SLOT_UPDATE_DETECTION] = __TS__New(SlotUpdateDetection, callbacks[ModCallbackCustom.POST_SLOT_INIT], callbacks[ModCallbackCustom.POST_SLOT_UPDATE]),
186
+ [ISCFeature.CHARACTER_HEALTH_CONVERSION] = __TS__New(CharacterHealthConversion),
187
+ [ISCFeature.CHARACTER_STATS] = __TS__New(CharacterStats),
188
+ [ISCFeature.COLLECTIBLE_ITEM_POOL_TYPE] = __TS__New(CollectibleItemPoolType, pickupIndexCreation),
189
+ [ISCFeature.CUSTOM_GRID_ENTITIES] = customGridEntities,
190
+ [ISCFeature.CUSTOM_ITEM_POOLS] = __TS__New(CustomItemPools),
191
+ [ISCFeature.CUSTOM_HOTKEYS] = __TS__New(CustomHotkeys),
192
+ [ISCFeature.CUSTOM_PICKUPS] = __TS__New(CustomPickups),
193
+ [ISCFeature.CUSTOM_STAGES] = __TS__New(
194
+ CustomStages,
195
+ customGridEntities,
196
+ customTrapdoors,
197
+ disableAllSound,
198
+ gameReorderedCallbacks,
199
+ pause,
200
+ runInNFrames
201
+ ),
202
+ [ISCFeature.CUSTOM_TRAPDOORS] = customTrapdoors,
203
+ [ISCFeature.DEBUG_DISPLAY] = __TS__New(DebugDisplay, mod),
204
+ [ISCFeature.DEPLOY_JSON_ROOM] = __TS__New(DeployJSONRoom, preventGridEntityRespawn, spawnCollectible),
205
+ [ISCFeature.DISABLE_ALL_SOUND] = disableAllSound,
206
+ [ISCFeature.DISABLE_INPUTS] = disableInputs,
207
+ [ISCFeature.FADE_IN_REMOVER] = __TS__New(FadeInRemover),
208
+ [ISCFeature.FAST_RESET] = __TS__New(FastReset),
209
+ [ISCFeature.FLYING_DETECTION] = __TS__New(FlyingDetection, moddedElementSets),
210
+ [ISCFeature.FORGOTTEN_SWITCH] = __TS__New(ForgottenSwitch, pressInput),
211
+ [ISCFeature.EXTRA_CONSOLE_COMMANDS] = __TS__New(ExtraConsoleCommands),
212
+ [ISCFeature.ITEM_POOL_DETECTION] = itemPoolDetection,
213
+ [ISCFeature.MODDED_ELEMENT_DETECTION] = moddedElementDetection,
214
+ [ISCFeature.MODDED_ELEMENT_SETS] = moddedElementSets,
215
+ [ISCFeature.NO_SIREN_STEAL] = __TS__New(NoSirenSteal),
216
+ [ISCFeature.PAUSE] = pause,
217
+ [ISCFeature.PERSISTENT_ENTITIES] = __TS__New(PersistentEntities, roomHistory),
218
+ [ISCFeature.PICKUP_INDEX_CREATION] = pickupIndexCreation,
219
+ [ISCFeature.PLAYER_INVENTORY] = __TS__New(PlayerInventory),
220
+ [ISCFeature.PONY_DETECTION] = ponyDetection,
221
+ [ISCFeature.PRESS_INPUT] = pressInput,
222
+ [ISCFeature.PREVENT_CHILD_ENTITIES] = __TS__New(PreventChildEntities),
223
+ [ISCFeature.PREVENT_COLLECTIBLE_ROTATION] = preventCollectibleRotation,
224
+ [ISCFeature.PREVENT_GRID_ENTITY_RESPAWN] = preventGridEntityRespawn,
225
+ [ISCFeature.ROOM_CLEAR_FRAME] = roomClearFrame,
226
+ [ISCFeature.ROOM_HISTORY] = roomHistory,
227
+ [ISCFeature.RUN_IN_N_FRAMES] = runInNFrames,
228
+ [ISCFeature.RUN_NEXT_ROOM] = runNextRoom,
229
+ [ISCFeature.SAVE_DATA_MANAGER] = saveDataManager,
230
+ [ISCFeature.SPAWN_ALT_ROCK_REWARDS] = __TS__New(SpawnRockAltRewards, itemPoolDetection),
231
+ [ISCFeature.SPAWN_COLLECTIBLE] = spawnCollectible,
232
+ [ISCFeature.STAGE_HISTORY] = stageHistory,
233
+ [ISCFeature.START_AMBUSH] = __TS__New(StartAmbush, runInNFrames),
234
+ [ISCFeature.TAINTED_LAZARUS_PLAYERS] = __TS__New(TaintedLazarusPlayers)
235
+ }
236
+ return features
241
237
  end
242
238
  return ____exports
@@ -69,15 +69,6 @@ export declare function isReflectionRender(): boolean;
69
69
  * because the `EXECUTE_CMD` callback will not fire for any vanilla commands.
70
70
  */
71
71
  export declare function isVanillaConsoleCommand(commandName: string): boolean;
72
- /**
73
- * Helper function for creating objects that represent a mapping of an enum value to some other
74
- * value in a type-safe way.
75
- *
76
- * This function will ensure that the provided object has a key for each value in the enum.
77
- *
78
- * After the `satisfies` operator is released in TypeScript 4.9, this function should be deleted.
79
- */
80
- export declare function newObjectWithEnumKeys<Enum extends number | string, T extends Record<Enum, unknown>>(theEnum: Record<string, Enum>, obj: T): T;
81
72
  /**
82
73
  * Helper function to print something to the in-game console. Use this instead of invoking the
83
74
  * `Isaac.ConsoleOutput` method directly because it will automatically insert a newline at the end
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/functions/utils.ts"],"names":[],"mappings":";AAIA;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,SAAI,GAAG,GAAG,EAAE,CAYlE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,EACZ,oBAAoB,EAAE,MAAM,GAC3B,MAAM,CAQR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,SAAI,GAAG,GAAG,EAAE,CAYlE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAEhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAEhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAI5C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,CAAC,SAAS,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAE/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,iGAAiG;AACjG,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAGxE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAI3D;AAED;;;;;;;;;;;;GAYG;AAEH,wBAAgB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAG;AAEjD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAqB1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,4BAA4B,CAE1C,CAAC,SAAS,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAC/B,IAAI,SAAS,MAAM,GAAG,MAAM,KACzB,IAAI,CAAG"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/functions/utils.ts"],"names":[],"mappings":";AAIA;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,SAAI,GAAG,GAAG,EAAE,CAYlE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,EACZ,oBAAoB,EAAE,MAAM,GAC3B,MAAM,CAQR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,SAAI,GAAG,GAAG,EAAE,CAYlE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAEhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAEhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAI5C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,iGAAiG;AACjG,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAGxE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAI3D;AAED;;;;;;;;;;;;GAYG;AAEH,wBAAgB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAG;AAEjD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAqB1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,4BAA4B,CAE1C,CAAC,SAAS,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAC/B,IAAI,SAAS,MAAM,GAAG,MAAM,KACzB,IAAI,CAAG"}
@@ -111,15 +111,6 @@ end
111
111
  function ____exports.isVanillaConsoleCommand(self, commandName)
112
112
  return CONSOLE_COMMANDS_SET:has(commandName)
113
113
  end
114
- --- Helper function for creating objects that represent a mapping of an enum value to some other
115
- -- value in a type-safe way.
116
- --
117
- -- This function will ensure that the provided object has a key for each value in the enum.
118
- --
119
- -- After the `satisfies` operator is released in TypeScript 4.9, this function should be deleted.
120
- function ____exports.newObjectWithEnumKeys(self, theEnum, obj)
121
- return obj
122
- end
123
114
  --- Helper function to print something to the in-game console. Use this instead of invoking the
124
115
  -- `Isaac.ConsoleOutput` method directly because it will automatically insert a newline at the end
125
116
  -- of the message (which `Isaac.ConsoleOutput` does not do by default).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "17.9.0",
3
+ "version": "18.0.0",
4
4
  "description": "Helper functions and features for IsaacScript mods.",
5
5
  "keywords": [
6
6
  "isaac",
package/src/callbacks.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  import * as cc from "./callbackClasses";
2
2
  import { ModCallbackCustom } from "./enums/ModCallbackCustom";
3
3
  import { getEnumValues } from "./functions/enums";
4
- import { newObjectWithEnumKeys } from "./functions/utils";
4
+ import { AnyClass } from "./types/AnyClass";
5
+ import { HasAllEnumKeys } from "./types/HasAllEnumKeys";
5
6
 
6
- const MOD_CALLBACK_CUSTOM_TO_CLASS = newObjectWithEnumKeys(ModCallbackCustom, {
7
+ const MOD_CALLBACK_CUSTOM_TO_CLASS = {
7
8
  [ModCallbackCustom.ENTITY_TAKE_DMG_FILTER]: cc.EntityTakeDmgFilter,
8
9
  [ModCallbackCustom.POST_AMBUSH_FINISHED]: cc.PostAmbushFinished,
9
10
  [ModCallbackCustom.POST_AMBUSH_STARTED]: cc.PostAmbushStarted,
@@ -117,11 +118,11 @@ const MOD_CALLBACK_CUSTOM_TO_CLASS = newObjectWithEnumKeys(ModCallbackCustom, {
117
118
  [ModCallbackCustom.PRE_NEW_LEVEL]: cc.PreNewLevel,
118
119
  [ModCallbackCustom.PRE_NPC_COLLISION_FILTER]: cc.PreNPCCollisionFilter,
119
120
  [ModCallbackCustom.PRE_NPC_UPDATE_FILTER]: cc.PreNPCUpdateFilter,
120
- } as const);
121
+ } as const satisfies HasAllEnumKeys<ModCallbackCustom, AnyClass>;
121
122
 
122
123
  export type ModCallbackCustomToClass = {
123
124
  readonly [Key in keyof typeof MOD_CALLBACK_CUSTOM_TO_CLASS]: InstanceType<
124
- typeof MOD_CALLBACK_CUSTOM_TO_CLASS[Key]
125
+ (typeof MOD_CALLBACK_CUSTOM_TO_CLASS)[Key]
125
126
  >;
126
127
  };
127
128
 
package/src/features.ts CHANGED
@@ -52,13 +52,12 @@ import { SpawnRockAltRewards } from "./classes/features/other/SpawnRockAltReward
52
52
  import { StageHistory } from "./classes/features/other/StageHistory";
53
53
  import { StartAmbush } from "./classes/features/other/StartAmbush";
54
54
  import { TaintedLazarusPlayers } from "./classes/features/other/TaintedLazarusPlayers";
55
+ import { Feature } from "./classes/private/Feature";
55
56
  import { ISCFeature } from "./enums/ISCFeature";
56
57
  import { ModCallbackCustom } from "./enums/ModCallbackCustom";
57
- import {
58
- newObjectWithEnumKeys,
59
- validateInterfaceMatchesEnum,
60
- } from "./functions/utils";
58
+ import { validateInterfaceMatchesEnum } from "./functions/utils";
61
59
  import { ModUpgradedInterface } from "./interfaces/private/ModUpgradedInterface";
60
+ import { HasAllEnumKeys } from "./types/HasAllEnumKeys";
62
61
 
63
62
  export interface ISCFeatureToClass {
64
63
  // Callback logic
@@ -168,7 +167,7 @@ export function getFeatures(
168
167
  stageHistory,
169
168
  );
170
169
 
171
- return newObjectWithEnumKeys(ISCFeature, {
170
+ const features = {
172
171
  // Callback logic
173
172
  [ISCFeature.CUSTOM_REVIVE]: new CustomRevive(
174
173
  callbacks[ModCallbackCustom.PRE_CUSTOM_REVIVE],
@@ -288,5 +287,7 @@ export function getFeatures(
288
287
  [ISCFeature.STAGE_HISTORY]: stageHistory,
289
288
  [ISCFeature.START_AMBUSH]: new StartAmbush(runInNFrames),
290
289
  [ISCFeature.TAINTED_LAZARUS_PLAYERS]: new TaintedLazarusPlayers(),
291
- } as const);
290
+ } as const satisfies HasAllEnumKeys<ISCFeature, Feature>;
291
+
292
+ return features;
292
293
  }
@@ -124,22 +124,6 @@ export function isVanillaConsoleCommand(commandName: string): boolean {
124
124
  return CONSOLE_COMMANDS_SET.has(commandName);
125
125
  }
126
126
 
127
- /**
128
- * Helper function for creating objects that represent a mapping of an enum value to some other
129
- * value in a type-safe way.
130
- *
131
- * This function will ensure that the provided object has a key for each value in the enum.
132
- *
133
- * After the `satisfies` operator is released in TypeScript 4.9, this function should be deleted.
134
- */
135
- export function newObjectWithEnumKeys<
136
- Enum extends number | string,
137
- T extends Record<Enum, unknown>,
138
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
139
- >(theEnum: Record<string, Enum>, obj: T): T {
140
- return obj;
141
- }
142
-
143
127
  /**
144
128
  * Helper function to print something to the in-game console. Use this instead of invoking the
145
129
  * `Isaac.ConsoleOutput` method directly because it will automatically insert a newline at the end