isaacscript-common 6.11.2 → 6.12.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/callbacks/postGridEntityCustomRender.d.ts +2 -0
- package/dist/callbacks/postGridEntityCustomRender.d.ts.map +1 -0
- package/dist/callbacks/postGridEntityCustomRender.lua +36 -0
- package/dist/callbacks/postGridEntityCustomUpdate.d.ts +2 -0
- package/dist/callbacks/postGridEntityCustomUpdate.d.ts.map +1 -0
- package/dist/callbacks/postGridEntityCustomUpdate.lua +36 -0
- package/dist/callbacks/postNewRoomEarly.lua +2 -2
- package/dist/callbacks/postPickupInitFirst.lua +1 -20
- package/dist/callbacks/reorderedCallbacks.d.ts +5 -5
- package/dist/callbacks/reorderedCallbacks.d.ts.map +1 -1
- package/dist/callbacks/reorderedCallbacks.lua +5 -5
- package/dist/callbacks/subscriptions/postGridEntityCustomRender.d.ts +6 -0
- package/dist/callbacks/subscriptions/postGridEntityCustomRender.d.ts.map +1 -0
- package/dist/callbacks/subscriptions/postGridEntityCustomRender.lua +29 -0
- package/dist/callbacks/subscriptions/postGridEntityCustomUpdate.d.ts +6 -0
- package/dist/callbacks/subscriptions/postGridEntityCustomUpdate.d.ts.map +1 -0
- package/dist/callbacks/subscriptions/postGridEntityCustomUpdate.lua +29 -0
- package/dist/constants.d.ts +1 -5
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.lua +0 -7
- package/dist/constantsFirstLast.d.ts +5 -1
- package/dist/constantsFirstLast.d.ts.map +1 -1
- package/dist/constantsFirstLast.lua +6 -0
- package/dist/enums/ModCallbackCustom.d.ts +89 -66
- package/dist/enums/ModCallbackCustom.d.ts.map +1 -1
- package/dist/enums/ModCallbackCustom.lua +62 -58
- package/dist/features/customGridEntity.d.ts +9 -0
- package/dist/features/customGridEntity.d.ts.map +1 -1
- package/dist/features/customGridEntity.lua +20 -0
- package/dist/features/customTrapdoor/customTrapdoorConstants.d.ts +2 -2
- package/dist/features/customTrapdoor/customTrapdoorConstants.d.ts.map +1 -1
- package/dist/features/customTrapdoor/customTrapdoorConstants.lua +2 -2
- package/dist/features/customTrapdoor/init.d.ts.map +1 -1
- package/dist/features/customTrapdoor/init.lua +4 -3
- package/dist/features/customTrapdoor/touched.d.ts.map +1 -1
- package/dist/features/customTrapdoor/touched.lua +51 -33
- package/dist/features/deployJSONRoom.d.ts +2 -2
- package/dist/features/deployJSONRoom.lua +2 -2
- package/dist/features/extraConsoleCommands/listCommands.d.ts.map +1 -1
- package/dist/features/extraConsoleCommands/listCommands.lua +4 -4
- package/dist/features/pause.d.ts +1 -1
- package/dist/features/pause.d.ts.map +1 -1
- package/dist/features/pause.lua +87 -8
- package/dist/features/persistentEntities.d.ts.map +1 -1
- package/dist/features/persistentEntities.lua +7 -7
- package/dist/features/pickupIndex.d.ts +19 -0
- package/dist/features/pickupIndex.d.ts.map +1 -0
- package/dist/features/pickupIndex.lua +197 -0
- package/dist/features/roomHistory.d.ts +24 -0
- package/dist/features/roomHistory.d.ts.map +1 -0
- package/dist/features/roomHistory.lua +89 -0
- package/dist/functions/collectibles.d.ts +26 -13
- package/dist/functions/collectibles.d.ts.map +1 -1
- package/dist/functions/collectibles.lua +26 -13
- package/dist/functions/entities.d.ts +3 -3
- package/dist/functions/entities.d.ts.map +1 -1
- package/dist/functions/entities.lua +8 -3
- package/dist/functions/gridEntities.d.ts +2 -2
- package/dist/functions/gridEntities.lua +2 -2
- package/dist/functions/isaacAPIClass.d.ts +64 -0
- package/dist/functions/isaacAPIClass.d.ts.map +1 -1
- package/dist/functions/isaacAPIClass.lua +84 -1
- package/dist/functions/pickupVariants.d.ts +2 -2
- package/dist/functions/pickupVariants.d.ts.map +1 -1
- package/dist/functions/pickupVariants.lua +2 -2
- package/dist/functions/playerCenter.lua +2 -2
- package/dist/functions/playerIndex.d.ts +0 -3
- package/dist/functions/playerIndex.d.ts.map +1 -1
- package/dist/functions/playerIndex.lua +4 -23
- package/dist/functions/roomData.d.ts +3 -2
- package/dist/functions/roomData.d.ts.map +1 -1
- package/dist/functions/roomData.lua +3 -2
- package/dist/functions/rooms.d.ts +6 -6
- package/dist/functions/rooms.lua +6 -6
- package/dist/functions/stage.d.ts +1 -0
- package/dist/functions/stage.d.ts.map +1 -1
- package/dist/functions/stage.lua +4 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.lua +23 -0
- package/dist/initCustomCallbacks.d.ts.map +1 -1
- package/dist/initCustomCallbacks.lua +6 -0
- package/dist/initFeatures.d.ts.map +1 -1
- package/dist/initFeatures.lua +6 -0
- package/dist/interfaces/AddCallbackParameterCustom.d.ts +4 -0
- package/dist/interfaces/AddCallbackParameterCustom.d.ts.map +1 -1
- package/dist/interfaces/RoomDescription.d.ts +14 -0
- package/dist/interfaces/RoomDescription.d.ts.map +1 -0
- package/dist/interfaces/RoomDescription.lua +2 -0
- package/dist/objects/callbackRegisterFunctions.d.ts.map +1 -1
- package/dist/objects/callbackRegisterFunctions.lua +6 -0
- package/dist/types/CollectibleIndex.d.ts +1 -1
- package/dist/types/PickupIndex.d.ts +17 -0
- package/dist/types/PickupIndex.d.ts.map +1 -0
- package/dist/types/PickupIndex.lua +2 -0
- package/dist/types/PlayerIndex.d.ts +1 -1
- package/dist/upgradeMod.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/callbacks/postGridEntityCustomRender.ts +44 -0
- package/src/callbacks/postGridEntityCustomUpdate.ts +44 -0
- package/src/callbacks/postNewRoomEarly.ts +2 -2
- package/src/callbacks/postPickupInitFirst.ts +1 -32
- package/src/callbacks/postPlayerReorderedCallbacks.ts +3 -3
- package/src/callbacks/reorderedCallbacks.ts +9 -8
- package/src/callbacks/subscriptions/postGridEntityCustomRender.ts +41 -0
- package/src/callbacks/subscriptions/postGridEntityCustomUpdate.ts +41 -0
- package/src/constants.ts +1 -9
- package/src/constantsFirstLast.ts +16 -0
- package/src/enums/ModCallbackCustom.ts +33 -8
- package/src/features/customGridEntity.ts +25 -0
- package/src/features/customTrapdoor/customTrapdoorConstants.ts +2 -2
- package/src/features/customTrapdoor/init.ts +7 -5
- package/src/features/customTrapdoor/touched.ts +59 -39
- package/src/features/deployJSONRoom.ts +4 -4
- package/src/features/extraConsoleCommands/listCommands.ts +5 -7
- package/src/features/pause.ts +97 -7
- package/src/features/persistentEntities.ts +9 -8
- package/src/features/pickupIndex.ts +257 -0
- package/src/features/playerInventory.ts +2 -2
- package/src/features/roomHistory.ts +113 -0
- package/src/features/saveDataManager/main.ts +2 -2
- package/src/features/taintedLazarusPlayers.ts +5 -5
- package/src/functions/collectibles.ts +26 -13
- package/src/functions/entities.ts +6 -3
- package/src/functions/gridEntities.ts +2 -2
- package/src/functions/isaacAPIClass.ts +106 -1
- package/src/functions/pickupVariants.ts +2 -2
- package/src/functions/playerCenter.ts +2 -2
- package/src/functions/playerIndex.ts +8 -21
- package/src/functions/roomData.ts +3 -2
- package/src/functions/rooms.ts +6 -6
- package/src/functions/stage.ts +10 -1
- package/src/index.ts +3 -0
- package/src/initCustomCallbacks.ts +4 -0
- package/src/initFeatures.ts +4 -0
- package/src/interfaces/AddCallbackParameterCustom.ts +4 -0
- package/src/interfaces/RoomDescription.ts +19 -0
- package/src/objects/callbackRegisterFunctions.ts +6 -0
- package/src/types/CollectibleIndex.ts +1 -1
- package/src/types/PickupIndex.ts +15 -0
- package/src/types/PlayerIndex.ts +1 -1
- package/src/upgradeMod.ts +2 -1
|
@@ -182,38 +182,51 @@ function ____exports.getCollectibleGfxFilename(self, collectibleType)
|
|
|
182
182
|
end
|
|
183
183
|
return itemConfigItem.GfxFileName
|
|
184
184
|
end
|
|
185
|
-
--- Mods
|
|
186
|
-
-- data structures is difficult, since collectibles are respawned every time a player re-enters a
|
|
187
|
-
-- room, so the `PtrHash` will change.
|
|
188
|
-
--
|
|
185
|
+
--- Mods may have to keep track of data relating to a collectible. Finding an index for these kinds
|
|
186
|
+
-- of data structures is difficult, since collectibles are respawned every time a player re-enters a
|
|
187
|
+
-- room (like all other pickups), so the `PtrHash` will change.
|
|
188
|
+
--
|
|
189
|
+
-- Use this function to get a unique index for a collectible to use in these data structures.
|
|
190
|
+
--
|
|
191
|
+
-- If your mod is upgraded, then you should use the `getPickupIndex` function instead, as it is more
|
|
192
|
+
-- general purpose and less prone to error (but relies on stateful tracking of pickups as the run
|
|
193
|
+
-- progresses).
|
|
194
|
+
--
|
|
195
|
+
-- Collectibles are a special case of pickups: they cannot be pushed around. (They actually can be
|
|
196
|
+
-- pushed, but usually will stay on the same grid index.) Thus, it is possible to generate a
|
|
197
|
+
-- somewhat reliable non-stateful index for collectibles. We use a 4-tuple of the room list index,
|
|
198
|
+
-- the grid index of the collectible in the room, the collectible's `SubType`, and the collectible's
|
|
199
|
+
-- `InitSeed`.
|
|
189
200
|
--
|
|
190
201
|
-- Collectibles that are shifted by Tainted Isaac's mechanic will have unique collectible indexes
|
|
191
|
-
-- because the SubType is different. (The collectible entities share the same InitSeed
|
|
202
|
+
-- because the `SubType` is different. (The collectible entities share the same `InitSeed` and
|
|
203
|
+
-- `PtrHash`.)
|
|
192
204
|
--
|
|
193
205
|
-- Collectibles that are rolled (with e.g. a D6) will have unique collectible indexes because the
|
|
194
|
-
-- SubType and InitSeed are different. If you want to track collectibles independently of any
|
|
206
|
+
-- `SubType` and `InitSeed` are different. If you want to track collectibles independently of any
|
|
195
207
|
-- rerolls, then you can use the `PtrHash` as an index instead. (The `PtrHash` will not persist
|
|
196
208
|
-- between rooms, however.)
|
|
197
209
|
--
|
|
198
210
|
-- Note that:
|
|
199
211
|
-- - The grid index is a necessary part of the collectible index because Diplopia and Crooked Penny
|
|
200
|
-
-- can cause two or more collectibles with the same SubType and InitSeed to exist in the same
|
|
212
|
+
-- can cause two or more collectibles with the same `SubType` and `InitSeed` to exist in the same
|
|
201
213
|
-- room.
|
|
202
214
|
-- - This index will fail in the case where the player uses Diplopia or a successful Crooked Penny
|
|
203
215
|
-- seven or more times in the same room, since that will cause two or more collectibles with the
|
|
204
|
-
-- same grid index, SubType
|
|
205
|
-
--
|
|
206
|
-
--
|
|
216
|
+
-- same grid index, `SubType`, and `InitSeed` to exist. (More than seven is required in non-1x1
|
|
217
|
+
-- rooms.)
|
|
218
|
+
-- - The `SubType` is a necessary part of the collectible index because Tainted Isaac will
|
|
219
|
+
-- continuously cause collectibles to morph into new sub-types with the same `InitSeed`.
|
|
207
220
|
-- - Using a collectible's position as part of the index is problematic, since players can push a
|
|
208
221
|
-- pedestal. (Even using the grid index does not solve this problem, since it is possible in
|
|
209
222
|
-- certain cases for collectibles to be spawned at a position that is not aligned with the grid,
|
|
210
223
|
-- and the pedestal pushed to an adjacent tile, but this case should be extremely rare.)
|
|
211
224
|
-- - Mega Chests spawn two collectibles on the exact same position. However, both of them will have
|
|
212
|
-
-- different
|
|
225
|
+
-- a different `InitSeed`, so this is not a problem for this indexing scheme.
|
|
213
226
|
-- - The indexing scheme used is different for collectibles that are inside of a Treasure Room or
|
|
214
227
|
-- Boss Room, in order to handle the case of the player seeing the same collectible again in a
|
|
215
|
-
-- post-Ascent Treasure Room or Boss Room. A 5-tuple of stage, stage type, grid index, SubType
|
|
216
|
-
-- and InitSeed is used in this case. (Using the room list index or the room grid index is not
|
|
228
|
+
-- post-Ascent Treasure Room or Boss Room. A 5-tuple of stage, stage type, grid index, `SubType`,
|
|
229
|
+
-- and `InitSeed` is used in this case. (Using the room list index or the room grid index is not
|
|
217
230
|
-- suitable for this purpose, since both of these values can change in the post-Ascent rooms.)
|
|
218
231
|
-- Even though Treasure Rooms and Boss Rooms are grouped together in this scheme, there probably
|
|
219
232
|
-- will not be collectibles with the same grid index, SubType, and InitSeed.
|
|
@@ -65,10 +65,10 @@ export declare function getClosestEntityTo<T extends AnyEntity>(referenceEntity:
|
|
|
65
65
|
export declare function getEntities(entityType?: EntityType, variant?: number, subType?: number, ignoreFriendly?: boolean): Entity[];
|
|
66
66
|
/**
|
|
67
67
|
* Helper function to get all the fields on an entity. For example, this is useful for comparing it
|
|
68
|
-
* to another entity later.
|
|
68
|
+
* to another entity later. (One option is to use the `logTableDifferences` function for this.)
|
|
69
69
|
*
|
|
70
|
-
* This function will only get fields that are equal to booleans, numbers, or strings,
|
|
71
|
-
* other types is non-trivial.
|
|
70
|
+
* This function will only get fields that are equal to booleans, numbers, or strings, or Vectors,
|
|
71
|
+
* as comparing other types is non-trivial.
|
|
72
72
|
*/
|
|
73
73
|
export declare function getEntityFields(entity: Entity): LuaMap<string, boolean | number | string>;
|
|
74
74
|
/** Helper function to return a string containing the entity's type, variant, and sub-type. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/functions/entities.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAI1D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/functions/entities.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAI1D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAO/C;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,UAAU,GAAE,UAAe,EAC3B,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,GAAG,CAcL;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,UAAU,GAAE,UAAe,EAC3B,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,OAAO,CAGT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,SAAS,EACpD,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,CAAC,EAAE,GACZ,CAAC,GAAG,SAAS,CAaf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CACzB,UAAU,GAAE,UAAe,EAC3B,OAAO,SAAK,EACZ,OAAO,SAAK,EACZ,cAAc,UAAQ,GACrB,MAAM,EAAE,CAMV;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,CA8B3C;AA0BD,8FAA8F;AAC9F,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,GACX,MAAM,CAER;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,SAAS,EACxD,WAAW,EAAE,CAAC,EAAE,EAChB,WAAW,EAAE,CAAC,EAAE,GACf,CAAC,EAAE,CAWL;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAExE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAE3D;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,GACf,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAwBlE;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,uBAAuB,EAAE,MAAM,GAC9B,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAmBpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,UAAU,EACtB,aAAa,SAAK,EAClB,aAAa,SAAK,EAClB,GAAG,GAAE,GAAG,GAAG,SAAqB,GAC/B,MAAM,EAAE,CAGV;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,EAChD,QAAQ,EAAE,CAAC,EAAE,EACb,GAAG,CAAC,EAAE,GAAG,GACR,CAAC,EAAE,CAgBL;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgB9D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CASzD;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CACnB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAmB,EAC7B,OAAO,GAAE,MAAM,GAAG,SAAqB,EACvC,SAAS,GAAE,IAAI,GAAG,GAAG,GAAG,SAAqB,GAC5C,MAAM,CAsCR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,IAAI,GAAG,GAAG,EACrB,QAAQ,GAAE,MAAmB,EAC7B,OAAO,GAAE,MAAM,GAAG,SAAqB,GACtC,MAAM,CAUR"}
|
|
@@ -20,6 +20,9 @@ local isRNG = ____rng.isRNG
|
|
|
20
20
|
local newRNG = ____rng.newRNG
|
|
21
21
|
local ____types = require("functions.types")
|
|
22
22
|
local isPrimitive = ____types.isPrimitive
|
|
23
|
+
local ____vector = require("functions.vector")
|
|
24
|
+
local isVector = ____vector.isVector
|
|
25
|
+
local vectorToString = ____vector.vectorToString
|
|
23
26
|
function setPrimitiveEntityFields(self, entity, metatable, entityFields)
|
|
24
27
|
local propGetTable = metatable.__propget
|
|
25
28
|
if propGetTable == nil then
|
|
@@ -30,6 +33,8 @@ function setPrimitiveEntityFields(self, entity, metatable, entityFields)
|
|
|
30
33
|
local value = entity[indexKey]
|
|
31
34
|
if isPrimitive(nil, value) then
|
|
32
35
|
entityFields[indexKey] = value
|
|
36
|
+
elseif isVector(nil, value) then
|
|
37
|
+
entityFields[indexKey] = vectorToString(nil, value)
|
|
33
38
|
end
|
|
34
39
|
end
|
|
35
40
|
end
|
|
@@ -180,10 +185,10 @@ function ____exports.getEntities(self, entityType, variant, subType, ignoreFrien
|
|
|
180
185
|
return Isaac.FindByType(entityType, variant, subType, ignoreFriendly)
|
|
181
186
|
end
|
|
182
187
|
--- Helper function to get all the fields on an entity. For example, this is useful for comparing it
|
|
183
|
-
-- to another entity later.
|
|
188
|
+
-- to another entity later. (One option is to use the `logTableDifferences` function for this.)
|
|
184
189
|
--
|
|
185
|
-
-- This function will only get fields that are equal to booleans, numbers, or strings,
|
|
186
|
-
-- other types is non-trivial.
|
|
190
|
+
-- This function will only get fields that are equal to booleans, numbers, or strings, or Vectors,
|
|
191
|
+
-- as comparing other types is non-trivial.
|
|
187
192
|
function ____exports.getEntityFields(self, entity)
|
|
188
193
|
local entityFields = {}
|
|
189
194
|
local metatable = getmetatable(entity)
|
|
@@ -17,8 +17,8 @@ export declare function getAllGridIndexes(): int[];
|
|
|
17
17
|
* Gets the entities that have a hitbox that overlaps with any part of the square that the grid
|
|
18
18
|
* entity is on.
|
|
19
19
|
*
|
|
20
|
-
* Note that this function will not work properly in the
|
|
21
|
-
* have collision yet in that callback.
|
|
20
|
+
* Note that this function will not work properly in the `POST_NEW_ROOM` callback, since entities do
|
|
21
|
+
* not have collision yet in that callback.
|
|
22
22
|
*/
|
|
23
23
|
export declare function getCollidingEntitiesWithGridEntity(gridEntity: GridEntity): Entity[];
|
|
24
24
|
/**
|
|
@@ -200,8 +200,8 @@ end
|
|
|
200
200
|
--- Gets the entities that have a hitbox that overlaps with any part of the square that the grid
|
|
201
201
|
-- entity is on.
|
|
202
202
|
--
|
|
203
|
-
-- Note that this function will not work properly in the
|
|
204
|
-
-- have collision yet in that callback.
|
|
203
|
+
-- Note that this function will not work properly in the `POST_NEW_ROOM` callback, since entities do
|
|
204
|
+
-- not have collision yet in that callback.
|
|
205
205
|
function ____exports.getCollidingEntitiesWithGridEntity(self, gridEntity)
|
|
206
206
|
local gridEntityCollisionTopLeft = Vector(gridEntity.Position.X - DISTANCE_OF_GRID_TILE / 2, gridEntity.Position.Y - DISTANCE_OF_GRID_TILE / 2)
|
|
207
207
|
local gridEntityCollisionBottomRight = Vector(gridEntity.Position.X + DISTANCE_OF_GRID_TILE / 2, gridEntity.Position.Y + DISTANCE_OF_GRID_TILE / 2)
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
2
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
3
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
4
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
5
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
6
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
7
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
8
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
9
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
10
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
11
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
12
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
13
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
14
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
15
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
16
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
17
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
18
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
19
|
+
/// <reference types="isaac-typescript-definitions" />
|
|
1
20
|
import { IsaacAPIClass } from "../types/private/IsaacAPIClass";
|
|
2
21
|
/**
|
|
3
22
|
* Helper function to get the name of a class from the Isaac API. This is contained within the
|
|
@@ -7,8 +26,27 @@ import { IsaacAPIClass } from "../types/private/IsaacAPIClass";
|
|
|
7
26
|
*
|
|
8
27
|
* Returns undefined if the object is not of type `userdata` or if the "__type" metatable key does
|
|
9
28
|
* not exist.
|
|
29
|
+
*
|
|
30
|
+
* In some cases, Isaac classes can be a read-only. If this is the case, the "__type" field will be
|
|
31
|
+
* prepended with "const ". This function will always strip this prefix, if it exists. For example,
|
|
32
|
+
* the class name returned for "const Vector" will be "Vector".
|
|
10
33
|
*/
|
|
11
34
|
export declare function getIsaacAPIClassName(object: unknown): string | undefined;
|
|
35
|
+
/** Helper function to detect if a variable is of type `EntityBomb`. */
|
|
36
|
+
export declare function isBomb(variable: unknown): variable is EntityBomb;
|
|
37
|
+
/** Helper function to detect if a variable is of type `GridEntityDoor`. */
|
|
38
|
+
export declare function isDoor(variable: unknown): variable is GridEntityDoor;
|
|
39
|
+
/** Helper function to detect if a variable is of type `EntityEffect`. */
|
|
40
|
+
export declare function isEffect(variable: unknown): variable is EntityEffect;
|
|
41
|
+
/**
|
|
42
|
+
* Helper function to detect if a variable is of type `Entity`. This will return false for child
|
|
43
|
+
* classes such as `EntityPlayer` or `EntityTear`.
|
|
44
|
+
*/
|
|
45
|
+
export declare function isEntity(variable: unknown): variable is Entity;
|
|
46
|
+
/** Helper function to detect if a variable is of type `EntityEffect`. */
|
|
47
|
+
export declare function isFamiliar(variable: unknown): variable is EntityFamiliar;
|
|
48
|
+
/** Helper function to detect if a variable is of type `GridEntity`. */
|
|
49
|
+
export declare function isGridEntity(variable: unknown): variable is GridEntity;
|
|
12
50
|
/**
|
|
13
51
|
* Helper function to check if something is an instantiated class from the Isaac API. (All classes
|
|
14
52
|
* from the Isaac API have a type of "userdata" in Lua with a metatable key of "__type" equal to the
|
|
@@ -16,6 +54,32 @@ export declare function getIsaacAPIClassName(object: unknown): string | undefine
|
|
|
16
54
|
*/
|
|
17
55
|
export declare function isIsaacAPIClass(object: unknown): object is IsaacAPIClass;
|
|
18
56
|
export declare function isIsaacAPIClassOfType(object: unknown, classType: string): boolean;
|
|
57
|
+
/** Helper function to detect if a variable is of type `EntityKnife`. */
|
|
58
|
+
export declare function isKnife(variable: unknown): variable is EntityKnife;
|
|
59
|
+
/** Helper function to detect if a variable is of type `EntityLaser`. */
|
|
60
|
+
export declare function isLaser(variable: unknown): variable is EntityLaser;
|
|
61
|
+
/** Helper function to detect if a variable is of type `EntityNPC`. */
|
|
62
|
+
export declare function isNPC(variable: unknown): variable is EntityNPC;
|
|
63
|
+
/** Helper function to detect if a variable is of type `EntityPickup`. */
|
|
64
|
+
export declare function isPickup(variable: unknown): variable is EntityPickup;
|
|
65
|
+
/** Helper function to detect if a variable is of type `GridEntityPit`. */
|
|
66
|
+
export declare function isPit(variable: unknown): variable is GridEntityPit;
|
|
67
|
+
/** Helper function to detect if a variable is of type `EntityPlayer`. */
|
|
68
|
+
export declare function isPlayer(variable: unknown): variable is EntityPlayer;
|
|
69
|
+
/** Helper function to detect if a variable is of type `GridEntityPoop`. */
|
|
70
|
+
export declare function isPoop(variable: unknown): variable is GridEntityPoop;
|
|
71
|
+
/** Helper function to detect if a variable is of type `GridEntityPressurePlate`. */
|
|
72
|
+
export declare function isPressurePlate(variable: unknown): variable is GridEntityPressurePlate;
|
|
73
|
+
/** Helper function to detect if a variable is of type `EntityProjectile`. */
|
|
74
|
+
export declare function isProjectile(variable: unknown): variable is EntityProjectile;
|
|
75
|
+
/** Helper function to detect if a variable is of type `GridEntityRock`. */
|
|
76
|
+
export declare function isRock(variable: unknown): variable is GridEntityRock;
|
|
77
|
+
/** Helper function to detect if a variable is of type `GridEntitySpikes`. */
|
|
78
|
+
export declare function isSpikes(variable: unknown): variable is GridEntitySpikes;
|
|
79
|
+
/** Helper function to detect if a variable is of type `GridEntityTNT`. */
|
|
80
|
+
export declare function isTNT(variable: unknown): variable is GridEntityTNT;
|
|
81
|
+
/** Helper function to detect if a variable is of type `EntityTear`. */
|
|
82
|
+
export declare function isTear(variable: unknown): variable is EntityTear;
|
|
19
83
|
/**
|
|
20
84
|
* Helper function to check if an instantiated Isaac API class is equal to another one of the same
|
|
21
85
|
* type. You must provide the list of keys to check for.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isaacAPIClass.d.ts","sourceRoot":"","sources":["../../src/functions/isaacAPIClass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"isaacAPIClass.d.ts","sourceRoot":"","sources":["../../src/functions/isaacAPIClass.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAI/D;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAkBxE;AAED,uEAAuE;AACvE,wBAAgB,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,UAAU,CAEhE;AAED,2EAA2E;AAC3E,wBAAgB,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,cAAc,CAEpE;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAEpE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,MAAM,CAE9D;AAED,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,cAAc,CAExE;AAED,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,UAAU,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,aAAa,CAGxE;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAMT;AAED,wEAAwE;AACxE,wBAAgB,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,WAAW,CAElE;AAED,wEAAwE;AACxE,wBAAgB,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,WAAW,CAElE;AAED,sEAAsE;AACtE,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,SAAS,CAE9D;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAEpE;AAED,0EAA0E;AAC1E,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,aAAa,CAElE;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAEpE;AAED,2EAA2E;AAC3E,wBAAgB,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,cAAc,CAEpE;AAED,oFAAoF;AACpF,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,OAAO,GAChB,QAAQ,IAAI,uBAAuB,CAErC;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,gBAAgB,CAE5E;AAED,2EAA2E;AAC3E,wBAAgB,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,cAAc,CAEpE;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,gBAAgB,CAExE;AAED,0EAA0E;AAC1E,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,aAAa,CAElE;AAED,uEAAuE;AACvE,wBAAgB,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,UAAU,CAEhE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAKT"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
local ____lualib = require("lualib_bundle")
|
|
2
2
|
local __TS__ArrayEvery = ____lualib.__TS__ArrayEvery
|
|
3
3
|
local ____exports = {}
|
|
4
|
+
local ____string = require("functions.string")
|
|
5
|
+
local trimPrefix = ____string.trimPrefix
|
|
4
6
|
local ____types = require("functions.types")
|
|
5
7
|
local isString = ____types.isString
|
|
6
8
|
local isUserdata = ____types.isUserdata
|
|
@@ -11,6 +13,10 @@ local isUserdata = ____types.isUserdata
|
|
|
11
13
|
--
|
|
12
14
|
-- Returns undefined if the object is not of type `userdata` or if the "__type" metatable key does
|
|
13
15
|
-- not exist.
|
|
16
|
+
--
|
|
17
|
+
-- In some cases, Isaac classes can be a read-only. If this is the case, the "__type" field will be
|
|
18
|
+
-- prepended with "const ". This function will always strip this prefix, if it exists. For example,
|
|
19
|
+
-- the class name returned for "const Vector" will be "Vector".
|
|
14
20
|
function ____exports.getIsaacAPIClassName(self, object)
|
|
15
21
|
if not isUserdata(nil, object) then
|
|
16
22
|
return nil
|
|
@@ -23,7 +29,32 @@ function ____exports.getIsaacAPIClassName(self, object)
|
|
|
23
29
|
if not isString(nil, classType) then
|
|
24
30
|
return nil
|
|
25
31
|
end
|
|
26
|
-
return classType
|
|
32
|
+
return trimPrefix(nil, classType, "const ")
|
|
33
|
+
end
|
|
34
|
+
--- Helper function to detect if a variable is of type `EntityBomb`.
|
|
35
|
+
function ____exports.isBomb(self, variable)
|
|
36
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "EntityBomb"
|
|
37
|
+
end
|
|
38
|
+
--- Helper function to detect if a variable is of type `GridEntityDoor`.
|
|
39
|
+
function ____exports.isDoor(self, variable)
|
|
40
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "GridEntityDoor"
|
|
41
|
+
end
|
|
42
|
+
--- Helper function to detect if a variable is of type `EntityEffect`.
|
|
43
|
+
function ____exports.isEffect(self, variable)
|
|
44
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "EntityEffect"
|
|
45
|
+
end
|
|
46
|
+
--- Helper function to detect if a variable is of type `Entity`. This will return false for child
|
|
47
|
+
-- classes such as `EntityPlayer` or `EntityTear`.
|
|
48
|
+
function ____exports.isEntity(self, variable)
|
|
49
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "Entity"
|
|
50
|
+
end
|
|
51
|
+
--- Helper function to detect if a variable is of type `EntityEffect`.
|
|
52
|
+
function ____exports.isFamiliar(self, variable)
|
|
53
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "EntityEffect"
|
|
54
|
+
end
|
|
55
|
+
--- Helper function to detect if a variable is of type `GridEntity`.
|
|
56
|
+
function ____exports.isGridEntity(self, variable)
|
|
57
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "GridEntity"
|
|
27
58
|
end
|
|
28
59
|
--- Helper function to check if something is an instantiated class from the Isaac API. (All classes
|
|
29
60
|
-- from the Isaac API have a type of "userdata" in Lua with a metatable key of "__type" equal to the
|
|
@@ -36,6 +67,58 @@ function ____exports.isIsaacAPIClassOfType(self, object, classType)
|
|
|
36
67
|
local isaacAPIClassType = ____exports.getIsaacAPIClassName(nil, object)
|
|
37
68
|
return isaacAPIClassType == classType or isaacAPIClassType == "const " .. classType
|
|
38
69
|
end
|
|
70
|
+
--- Helper function to detect if a variable is of type `EntityKnife`.
|
|
71
|
+
function ____exports.isKnife(self, variable)
|
|
72
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "EntityKnife"
|
|
73
|
+
end
|
|
74
|
+
--- Helper function to detect if a variable is of type `EntityLaser`.
|
|
75
|
+
function ____exports.isLaser(self, variable)
|
|
76
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "EntityLaser"
|
|
77
|
+
end
|
|
78
|
+
--- Helper function to detect if a variable is of type `EntityNPC`.
|
|
79
|
+
function ____exports.isNPC(self, variable)
|
|
80
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "EntityNPC"
|
|
81
|
+
end
|
|
82
|
+
--- Helper function to detect if a variable is of type `EntityPickup`.
|
|
83
|
+
function ____exports.isPickup(self, variable)
|
|
84
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "EntityPickup"
|
|
85
|
+
end
|
|
86
|
+
--- Helper function to detect if a variable is of type `GridEntityPit`.
|
|
87
|
+
function ____exports.isPit(self, variable)
|
|
88
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "GridEntityPit"
|
|
89
|
+
end
|
|
90
|
+
--- Helper function to detect if a variable is of type `EntityPlayer`.
|
|
91
|
+
function ____exports.isPlayer(self, variable)
|
|
92
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "EntityPlayer"
|
|
93
|
+
end
|
|
94
|
+
--- Helper function to detect if a variable is of type `GridEntityPoop`.
|
|
95
|
+
function ____exports.isPoop(self, variable)
|
|
96
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "GridEntityPoop"
|
|
97
|
+
end
|
|
98
|
+
--- Helper function to detect if a variable is of type `GridEntityPressurePlate`.
|
|
99
|
+
function ____exports.isPressurePlate(self, variable)
|
|
100
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "GridEntityPressurePlate"
|
|
101
|
+
end
|
|
102
|
+
--- Helper function to detect if a variable is of type `EntityProjectile`.
|
|
103
|
+
function ____exports.isProjectile(self, variable)
|
|
104
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "EntityProjectile"
|
|
105
|
+
end
|
|
106
|
+
--- Helper function to detect if a variable is of type `GridEntityRock`.
|
|
107
|
+
function ____exports.isRock(self, variable)
|
|
108
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "GridEntityRock"
|
|
109
|
+
end
|
|
110
|
+
--- Helper function to detect if a variable is of type `GridEntitySpikes`.
|
|
111
|
+
function ____exports.isSpikes(self, variable)
|
|
112
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "GridEntitySpikes"
|
|
113
|
+
end
|
|
114
|
+
--- Helper function to detect if a variable is of type `GridEntityTNT`.
|
|
115
|
+
function ____exports.isTNT(self, variable)
|
|
116
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "GridEntityTNT"
|
|
117
|
+
end
|
|
118
|
+
--- Helper function to detect if a variable is of type `EntityTear`.
|
|
119
|
+
function ____exports.isTear(self, variable)
|
|
120
|
+
return ____exports.getIsaacAPIClassName(nil, variable) == "EntityTear"
|
|
121
|
+
end
|
|
39
122
|
--- Helper function to check if an instantiated Isaac API class is equal to another one of the same
|
|
40
123
|
-- type. You must provide the list of keys to check for.
|
|
41
124
|
function ____exports.isaacAPIClassEquals(self, object1, object2, keys)
|
|
@@ -6,9 +6,9 @@ export declare function isCoin(pickup: EntityPickup): pickup is EntityPickupCoin
|
|
|
6
6
|
/** For `PickupVariant.KEY` (30) */
|
|
7
7
|
export declare function isKey(pickup: EntityPickup): pickup is EntityPickupKey;
|
|
8
8
|
/** For `PickupVariant.BOMB` (40) */
|
|
9
|
-
export declare function
|
|
9
|
+
export declare function isBombPickup(pickup: EntityPickup): pickup is EntityPickupBomb;
|
|
10
10
|
/** For `PickupVariant.POOP` (42) */
|
|
11
|
-
export declare function
|
|
11
|
+
export declare function isPoopPickup(pickup: EntityPickup): pickup is EntityPickupPoop;
|
|
12
12
|
/** For `PickupVariant.SACK` (69) */
|
|
13
13
|
export declare function isSack(pickup: EntityPickup): pickup is EntityPickupSack;
|
|
14
14
|
/** For `PickupVariant.PILL` (70) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pickupVariants.d.ts","sourceRoot":"","sources":["../../src/functions/pickupVariants.ts"],"names":[],"mappings":";AAIA,qCAAqC;AACrC,wBAAgB,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,iBAAiB,CAEzE;AAED,oCAAoC;AACpC,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAEvE;AAED,mCAAmC;AACnC,wBAAgB,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,eAAe,CAErE;AAED,oCAAoC;AACpC,wBAAgB,
|
|
1
|
+
{"version":3,"file":"pickupVariants.d.ts","sourceRoot":"","sources":["../../src/functions/pickupVariants.ts"],"names":[],"mappings":";AAIA,qCAAqC;AACrC,wBAAgB,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,iBAAiB,CAEzE;AAED,oCAAoC;AACpC,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAEvE;AAED,mCAAmC;AACnC,wBAAgB,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,eAAe,CAErE;AAED,oCAAoC;AACpC,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAE7E;AAED,oCAAoC;AACpC,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAE7E;AAED,oCAAoC;AACpC,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAEvE;AAED,oCAAoC;AACpC,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAEvE;AAED,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,mBAAmB,CAE7E;AAED,4CAA4C;AAC5C,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,GACnB,MAAM,IAAI,uBAAuB,CAEnC;AAED,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,gBAAgB,CAE7E;AAED,wCAAwC;AACxC,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,mBAAmB,CAE7E"}
|
|
@@ -14,11 +14,11 @@ function ____exports.isKey(self, pickup)
|
|
|
14
14
|
return pickup.Variant == PickupVariant.KEY
|
|
15
15
|
end
|
|
16
16
|
--- For `PickupVariant.BOMB` (40)
|
|
17
|
-
function ____exports.
|
|
17
|
+
function ____exports.isBombPickup(self, pickup)
|
|
18
18
|
return pickup.Variant == PickupVariant.BOMB
|
|
19
19
|
end
|
|
20
20
|
--- For `PickupVariant.POOP` (42)
|
|
21
|
-
function ____exports.
|
|
21
|
+
function ____exports.isPoopPickup(self, pickup)
|
|
22
22
|
return pickup.Variant == PickupVariant.POOP
|
|
23
23
|
end
|
|
24
24
|
--- For `PickupVariant.SACK` (69)
|
|
@@ -12,7 +12,7 @@ local getPlayerFamiliars = ____familiars.getPlayerFamiliars
|
|
|
12
12
|
local ____math = require("functions.math")
|
|
13
13
|
local getCircleDiscretizedPoints = ____math.getCircleDiscretizedPoints
|
|
14
14
|
local ____playerIndex = require("functions.playerIndex")
|
|
15
|
-
local
|
|
15
|
+
local getAllPlayers = ____playerIndex.getAllPlayers
|
|
16
16
|
function movePlayerAndTheirFamiliars(self, player, position)
|
|
17
17
|
player.Position = position
|
|
18
18
|
local familiars = getPlayerFamiliars(nil, player)
|
|
@@ -31,7 +31,7 @@ local CIRCLE_RADIUS_BETWEEN_PLAYERS = 50
|
|
|
31
31
|
function ____exports.movePlayersToCenter(self)
|
|
32
32
|
local isGreedMode = game:IsGreedMode()
|
|
33
33
|
local startingPosition = isGreedMode and NEW_FLOOR_STARTING_POSITION_GREED_MODE or NEW_FLOOR_STARTING_POSITION_NORMAL_MODE
|
|
34
|
-
local players =
|
|
34
|
+
local players = getAllPlayers(nil)
|
|
35
35
|
local firstPlayer = players[1]
|
|
36
36
|
if firstPlayer == nil then
|
|
37
37
|
return
|
|
@@ -41,9 +41,6 @@ export declare function getPlayerFromIndex(playerIndex: PlayerIndex): EntityPlay
|
|
|
41
41
|
* Instead, we use the `EntityPlayer.GetCollectibleRNG` method with an arbitrary value of Sad Onion
|
|
42
42
|
* (1). This works even if the player does not have any Sad Onions.
|
|
43
43
|
*
|
|
44
|
-
* Since the RNG value is the same for both Tainted Lazarus and Dead Tainted Lazarus, we revert to
|
|
45
|
-
* using the RNG of The Inner Eye (2) for Dead Tainted Lazarus.
|
|
46
|
-
*
|
|
47
44
|
* Note that by default, this returns the same index for both The Forgotten and The Soul. (Even
|
|
48
45
|
* though they are technically different characters, they share the same inventory and InitSeed.) If
|
|
49
46
|
* this is not desired, pass true for the `differentiateForgottenAndSoul` argument, and the RNG of
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playerIndex.d.ts","sourceRoot":"","sources":["../../src/functions/playerIndex.ts"],"names":[],"mappings":";;;AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASnD;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,YAAY,EAAE,CAU9C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,EAAE,CAMpE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,GACvB,YAAY,GAAG,SAAS,CAG1B;AAED
|
|
1
|
+
{"version":3,"file":"playerIndex.d.ts","sourceRoot":"","sources":["../../src/functions/playerIndex.ts"],"names":[],"mappings":";;;AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASnD;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,YAAY,EAAE,CAU9C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,EAAE,CAMpE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,GACvB,YAAY,GAAG,SAAS,CAG1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,6BAA6B,UAAQ,GACpC,WAAW,CA4Bb;AAiBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,YAAY,GACzB,GAAG,GAAG,SAAS,CAajB;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,0BAA0B,UAAQ,GAAG,YAAY,EAAE,CAS7E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,eAAe,GACzB,YAAY,GAAG,SAAS,CAa1B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAE3D"}
|
|
@@ -48,9 +48,6 @@ end
|
|
|
48
48
|
-- Instead, we use the `EntityPlayer.GetCollectibleRNG` method with an arbitrary value of Sad Onion
|
|
49
49
|
-- (1). This works even if the player does not have any Sad Onions.
|
|
50
50
|
--
|
|
51
|
-
-- Since the RNG value is the same for both Tainted Lazarus and Dead Tainted Lazarus, we revert to
|
|
52
|
-
-- using the RNG of The Inner Eye (2) for Dead Tainted Lazarus.
|
|
53
|
-
--
|
|
54
51
|
-- Note that by default, this returns the same index for both The Forgotten and The Soul. (Even
|
|
55
52
|
-- though they are technically different characters, they share the same inventory and InitSeed.) If
|
|
56
53
|
-- this is not desired, pass true for the `differentiateForgottenAndSoul` argument, and the RNG of
|
|
@@ -78,26 +75,10 @@ function ____exports.getPlayerIndex(self, player, differentiateForgottenAndSoul)
|
|
|
78
75
|
end
|
|
79
76
|
function getPlayerIndexCollectibleType(self, player, differentiateForgottenAndSoul)
|
|
80
77
|
local character = player:GetPlayerType()
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
do
|
|
86
|
-
return differentiateForgottenAndSoul and CollectibleType.SPOON_BENDER or DEFAULT_COLLECTIBLE_TYPE
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
____cond12 = ____cond12 or ____switch12 == PlayerType.LAZARUS_2_B
|
|
90
|
-
if ____cond12 then
|
|
91
|
-
do
|
|
92
|
-
return CollectibleType.INNER_EYE
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
do
|
|
96
|
-
do
|
|
97
|
-
return DEFAULT_COLLECTIBLE_TYPE
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
until true
|
|
78
|
+
if character == PlayerType.THE_SOUL then
|
|
79
|
+
return differentiateForgottenAndSoul and CollectibleType.INNER_EYE or DEFAULT_COLLECTIBLE_TYPE
|
|
80
|
+
end
|
|
81
|
+
return DEFAULT_COLLECTIBLE_TYPE
|
|
101
82
|
end
|
|
102
83
|
--- This function always excludes players with a non-undefined parent, since they are not real
|
|
103
84
|
-- players (e.g. the Strawman Keeper).
|
|
@@ -99,9 +99,10 @@ export declare function getRoomType(roomGridIndex?: int): RoomType;
|
|
|
99
99
|
*/
|
|
100
100
|
export declare function getRoomVariant(roomGridIndex?: int): int;
|
|
101
101
|
/**
|
|
102
|
-
* Note that the room visited count will be inaccurate during the period before the
|
|
102
|
+
* Note that the room visited count will be inaccurate during the period before the `POST_NEW_ROOM`
|
|
103
103
|
* callback has fired (i.e. when entities are initializing and performing their first update). This
|
|
104
|
-
* is because the variable is only incremented immediately before the
|
|
104
|
+
* is because the variable is only incremented immediately before the `POST_NEW_ROOM` callback
|
|
105
|
+
* fires.
|
|
105
106
|
*
|
|
106
107
|
* @param roomGridIndex Optional. Default is the current room index.
|
|
107
108
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roomData.d.ts","sourceRoot":"","sources":["../../src/functions/roomData.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAER,SAAS,EACT,QAAQ,EACR,OAAO,EACR,MAAM,8BAA8B,CAAC;AAMtC;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAiBtE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,UAAU,GAAG,SAAS,CAGvE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,cAAc,CAQrE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,sBAAsB,CAGlE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,IAAI,GAAG,CAatC;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,GAAG,CAGzD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,MAAM,CAGvD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,CAGvE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,OAAO,CAG3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,GAAG,CAGvD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,QAAQ,CAGzD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,GAAG,CAGvD;AAED
|
|
1
|
+
{"version":3,"file":"roomData.d.ts","sourceRoot":"","sources":["../../src/functions/roomData.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAER,SAAS,EACT,QAAQ,EACR,OAAO,EACR,MAAM,8BAA8B,CAAC;AAMtC;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAiBtE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,UAAU,GAAG,SAAS,CAGvE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,cAAc,CAQrE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,sBAAsB,CAGlE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,IAAI,GAAG,CAatC;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,GAAG,CAGzD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,MAAM,CAGvD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,CAGvE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,OAAO,CAG3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,GAAG,CAGvD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,QAAQ,CAGzD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,GAAG,CAGvD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,GAAG,CAG5D"}
|
|
@@ -148,9 +148,10 @@ function ____exports.getRoomVariant(self, roomGridIndex)
|
|
|
148
148
|
local roomData = ____exports.getRoomData(nil, roomGridIndex)
|
|
149
149
|
return roomData == nil and -1 or roomData.Variant
|
|
150
150
|
end
|
|
151
|
-
--- Note that the room visited count will be inaccurate during the period before the
|
|
151
|
+
--- Note that the room visited count will be inaccurate during the period before the `POST_NEW_ROOM`
|
|
152
152
|
-- callback has fired (i.e. when entities are initializing and performing their first update). This
|
|
153
|
-
-- is because the variable is only incremented immediately before the
|
|
153
|
+
-- is because the variable is only incremented immediately before the `POST_NEW_ROOM` callback
|
|
154
|
+
-- fires.
|
|
154
155
|
--
|
|
155
156
|
-- @param roomGridIndex Optional. Default is the current room index.
|
|
156
157
|
function ____exports.getRoomVisitedCount(self, roomGridIndex)
|
|
@@ -171,16 +171,16 @@ export declare function roomExists(roomGridIndex: int): boolean;
|
|
|
171
171
|
*/
|
|
172
172
|
export declare function roomGridIndexToXY(roomGridIndex: int): [x: int, y: int];
|
|
173
173
|
/**
|
|
174
|
-
* If the `Room.Update` method is called in a
|
|
175
|
-
* around (such as the player). Since those entity velocities are already at zero, setting
|
|
176
|
-
* zero will have no effect. Thus, a generic solution is to record all of the entity
|
|
174
|
+
* If the `Room.Update` method is called in a `POST_NEW_ROOM` callback, then some entities will
|
|
175
|
+
* slide around (such as the player). Since those entity velocities are already at zero, setting
|
|
176
|
+
* them to zero will have no effect. Thus, a generic solution is to record all of the entity
|
|
177
177
|
* positions/velocities before updating the room, and then restore those positions/velocities.
|
|
178
178
|
*/
|
|
179
179
|
export declare function roomUpdateSafe(): void;
|
|
180
180
|
/**
|
|
181
|
-
* Helper function to convert an uncleared room to a cleared room in the
|
|
182
|
-
* is useful because if enemies are removed in this callback, a room drop will be awarded and
|
|
183
|
-
* doors will start closed and then open.
|
|
181
|
+
* Helper function to convert an uncleared room to a cleared room in the `POST_NEW_ROOM` callback.
|
|
182
|
+
* This is useful because if enemies are removed in this callback, a room drop will be awarded and
|
|
183
|
+
* the doors will start closed and then open.
|
|
184
184
|
*/
|
|
185
185
|
export declare function setRoomCleared(): void;
|
|
186
186
|
/**
|
package/dist/functions/rooms.lua
CHANGED
|
@@ -422,9 +422,9 @@ function ____exports.roomGridIndexToXY(self, roomGridIndex)
|
|
|
422
422
|
local y = math.floor(roomGridIndex / LEVEL_GRID_ROW_WIDTH)
|
|
423
423
|
return {x, y}
|
|
424
424
|
end
|
|
425
|
-
--- If the `Room.Update` method is called in a
|
|
426
|
-
-- around (such as the player). Since those entity velocities are already at zero, setting
|
|
427
|
-
-- zero will have no effect. Thus, a generic solution is to record all of the entity
|
|
425
|
+
--- If the `Room.Update` method is called in a `POST_NEW_ROOM` callback, then some entities will
|
|
426
|
+
-- slide around (such as the player). Since those entity velocities are already at zero, setting
|
|
427
|
+
-- them to zero will have no effect. Thus, a generic solution is to record all of the entity
|
|
428
428
|
-- positions/velocities before updating the room, and then restore those positions/velocities.
|
|
429
429
|
function ____exports.roomUpdateSafe(self)
|
|
430
430
|
local room = game:GetRoom()
|
|
@@ -435,9 +435,9 @@ function ____exports.roomUpdateSafe(self)
|
|
|
435
435
|
setEntityPositions(nil, entityPositions, entities)
|
|
436
436
|
setEntityVelocities(nil, entityVelocities, entities)
|
|
437
437
|
end
|
|
438
|
-
--- Helper function to convert an uncleared room to a cleared room in the
|
|
439
|
-
-- is useful because if enemies are removed in this callback, a room drop will be awarded and
|
|
440
|
-
-- doors will start closed and then open.
|
|
438
|
+
--- Helper function to convert an uncleared room to a cleared room in the `POST_NEW_ROOM` callback.
|
|
439
|
+
-- This is useful because if enemies are removed in this callback, a room drop will be awarded and
|
|
440
|
+
-- the doors will start closed and then open.
|
|
441
441
|
function ____exports.setRoomCleared(self)
|
|
442
442
|
local room = game:GetRoom()
|
|
443
443
|
local roomClear = room:IsClear()
|
|
@@ -27,6 +27,7 @@ export declare function getStageType(): StageType;
|
|
|
27
27
|
/** Helper function to directly warp to a specific stage using the "stage" console command. */
|
|
28
28
|
export declare function goToStage(stage: LevelStage, stageType: StageType): void;
|
|
29
29
|
export declare function isRepentanceStage(stageType: StageType): boolean;
|
|
30
|
+
export declare function onAscent(): boolean;
|
|
30
31
|
export declare function onCathedral(): boolean;
|
|
31
32
|
export declare function onChest(): boolean;
|
|
32
33
|
export declare function onDarkRoom(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../src/functions/stage.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../src/functions/stage.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,QAAQ,EACR,SAAS,EACV,MAAM,8BAA8B,CAAC;AAMtC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CA6B/D;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAmBzE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,CASvC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,GAAG,MAAM,CAG3E;AAED,6CAA6C;AAC7C,wBAAgB,QAAQ,IAAI,UAAU,CAIrC;AAED,iDAAiD;AACjD,wBAAgB,YAAY,IAAI,SAAS,CAIxC;AAED,8FAA8F;AAC9F,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAIvE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAI/D;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED,wBAAgB,WAAW,IAAI,OAAO,CASrC;AAED,wBAAgB,OAAO,IAAI,OAAO,CASjC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAQpC;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAUtC;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAK3C;AAED,wBAAgB,OAAO,IAAI,OAAO,CAQjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,SAAS,EACpB,MAAM,UAAQ,GACb,IAAI,CAUN;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAE9D"}
|
package/dist/functions/stage.lua
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
local ____exports = {}
|
|
2
2
|
local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
|
|
3
|
+
local GameStateFlag = ____isaac_2Dtypescript_2Ddefinitions.GameStateFlag
|
|
3
4
|
local LevelStage = ____isaac_2Dtypescript_2Ddefinitions.LevelStage
|
|
4
5
|
local StageType = ____isaac_2Dtypescript_2Ddefinitions.StageType
|
|
5
6
|
local ____cachedClasses = require("cachedClasses")
|
|
@@ -86,6 +87,9 @@ function ____exports.goToStage(self, stage, stageType)
|
|
|
86
87
|
local command = ("stage " .. tostring(stage)) .. stageTypeLetterSuffix
|
|
87
88
|
Isaac.ExecuteCommand(command)
|
|
88
89
|
end
|
|
90
|
+
function ____exports.onAscent(self)
|
|
91
|
+
return game:GetStateFlag(GameStateFlag.BACKWARDS_PATH)
|
|
92
|
+
end
|
|
89
93
|
function ____exports.onCathedral(self)
|
|
90
94
|
local level = game:GetLevel()
|
|
91
95
|
local stage = level:GetStage()
|
package/dist/index.d.ts
CHANGED
|
@@ -23,12 +23,15 @@ export * from "./features/extraConsoleCommands/exports";
|
|
|
23
23
|
export { removeFadeIn, restoreFadeIn } from "./features/fadeInRemover";
|
|
24
24
|
export { disableFastReset, enableFastReset } from "./features/fastReset";
|
|
25
25
|
export { forgottenSwitch } from "./features/forgottenSwitch";
|
|
26
|
+
export { pause, unpause } from "./features/pause";
|
|
26
27
|
export { removePersistentEntity, spawnPersistentEntity, } from "./features/persistentEntities";
|
|
28
|
+
export * from "./features/pickupIndex";
|
|
27
29
|
export { getPlayerInventory } from "./features/playerInventory";
|
|
28
30
|
export { anyPlayerUsingPony, isPlayerUsingPony, } from "./features/ponyDetection";
|
|
29
31
|
export { preventCollectibleRotation } from "./features/preventCollectibleRotation";
|
|
30
32
|
export { registerHotkey, unregisterHotkey } from "./features/registerHotkey";
|
|
31
33
|
export { getRoomClearGameFrame, getRoomClearRoomFrame, } from "./features/roomClearFrame";
|
|
34
|
+
export * from "./features/roomHistory";
|
|
32
35
|
export { runInNGameFrames, runInNRenderFrames, runNextGameFrame, runNextRenderFrame, setIntervalGameFrames, setIntervalRenderFrames, } from "./features/runInNFrames";
|
|
33
36
|
export * from "./features/saveDataManager/exports";
|
|
34
37
|
export { hasSirenStolenFamiliar, setFamiliarNoSirenSteal, } from "./features/sirenHelpers";
|