isaacscript-common 36.0.0 → 36.1.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.rollup.d.ts +11 -2
- package/dist/isaacscript-common.lua +14 -10
- package/dist/src/enums/ModCallbackCustom.d.ts +3 -0
- package/dist/src/enums/ModCallbackCustom.d.ts.map +1 -1
- package/dist/src/functions/bitwise.d.ts +2 -2
- package/dist/src/functions/bitwise.d.ts.map +1 -1
- package/dist/src/functions/bitwise.lua +4 -4
- package/dist/src/functions/gridEntities.d.ts +5 -0
- package/dist/src/functions/gridEntities.d.ts.map +1 -1
- package/dist/src/functions/gridEntities.lua +14 -6
- package/package.json +1 -1
- package/src/enums/ModCallbackCustom.ts +3 -0
- package/src/functions/bitwise.ts +4 -4
- package/src/functions/gridEntities.ts +26 -11
package/dist/index.rollup.d.ts
CHANGED
|
@@ -1675,13 +1675,13 @@ export declare function convertBinaryToDecimal(bits: int[]): number;
|
|
|
1675
1675
|
/**
|
|
1676
1676
|
* Helper function to convert a number to an array of bits.
|
|
1677
1677
|
*
|
|
1678
|
-
* @param
|
|
1678
|
+
* @param num The number to convert.
|
|
1679
1679
|
* @param minLength Optional. Equal to the minimum amount of bits that should be returned. If the
|
|
1680
1680
|
* converted number of bits is below this number, 0's will be padded to the left
|
|
1681
1681
|
* side until the minimum length is met. Default is undefined (which will not cause
|
|
1682
1682
|
* any padding).
|
|
1683
1683
|
*/
|
|
1684
|
-
export declare function convertDecimalToBinary(
|
|
1684
|
+
export declare function convertDecimalToBinary(num: number, minLength?: int): int[];
|
|
1685
1685
|
|
|
1686
1686
|
/**
|
|
1687
1687
|
* Helper function to convert the grid entity type found in a room XML file to the corresponding
|
|
@@ -8648,6 +8648,12 @@ export declare function isGridEntityBreakableByExplosion(gridEntity: GridEntity)
|
|
|
8648
8648
|
*/
|
|
8649
8649
|
export declare function isGridEntityBroken(gridEntity: GridEntity): boolean;
|
|
8650
8650
|
|
|
8651
|
+
/**
|
|
8652
|
+
* Helper function to see if an arbitrary number is a valid `GridEntityXMLType`. This is useful in
|
|
8653
|
+
* the `PRE_ROOM_ENTITY_SPAWN` callback for narrowing the type of the first argument.
|
|
8654
|
+
*/
|
|
8655
|
+
export declare function isGridEntityXMLType(num: number): num is GridEntityXMLType;
|
|
8656
|
+
|
|
8651
8657
|
/** For `PickupVariant.HEART` (10). */
|
|
8652
8658
|
export declare function isHeart(pickup: EntityPickup): pickup is EntityPickupHeart;
|
|
8653
8659
|
|
|
@@ -12543,6 +12549,9 @@ export declare enum ModCallbackCustom {
|
|
|
12543
12549
|
* - You can provide an optional fifth argument that will make the callback only fire if it
|
|
12544
12550
|
* matches the sub-type provided.
|
|
12545
12551
|
*
|
|
12552
|
+
* You can use the `isGridEntityXMLType` helper function to convert the
|
|
12553
|
+
* `entityTypeOrGridEntityXMLType` argument to an `EntityType` or `GridEntityXMLType`, if needed.
|
|
12554
|
+
*
|
|
12546
12555
|
* ```ts
|
|
12547
12556
|
* function preRoomEntitySpawnFilter(
|
|
12548
12557
|
* entityTypeOrGridEntityXMLType: EntityType | GridEntityXMLType,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
--[[
|
|
2
2
|
|
|
3
|
-
isaacscript-common 36.
|
|
3
|
+
isaacscript-common 36.1.0
|
|
4
4
|
|
|
5
5
|
This is the "isaacscript-common" library, which was created with the IsaacScript tool.
|
|
6
6
|
|
|
@@ -22930,15 +22930,15 @@ function ____exports.convertBinaryToDecimal(self, bits)
|
|
|
22930
22930
|
local bitsString = table.concat(bits, "")
|
|
22931
22931
|
return __TS__ParseInt(bitsString, 2)
|
|
22932
22932
|
end
|
|
22933
|
-
function ____exports.convertDecimalToBinary(self,
|
|
22933
|
+
function ____exports.convertDecimalToBinary(self, num, minLength)
|
|
22934
22934
|
local bits = {}
|
|
22935
|
-
local bitsString = __TS__NumberToString(
|
|
22935
|
+
local bitsString = __TS__NumberToString(num, 2)
|
|
22936
22936
|
for ____, bitString in __TS__Iterator(bitsString) do
|
|
22937
22937
|
local bit = tonumber(bitString)
|
|
22938
22938
|
assertDefined(
|
|
22939
22939
|
nil,
|
|
22940
22940
|
bit,
|
|
22941
|
-
"Failed to convert the following number to binary: " .. tostring(
|
|
22941
|
+
"Failed to convert the following number to binary: " .. tostring(num)
|
|
22942
22942
|
)
|
|
22943
22943
|
bits[#bits + 1] = bit
|
|
22944
22944
|
end
|
|
@@ -28015,6 +28015,8 @@ local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
|
|
|
28015
28015
|
local PoopGridEntityVariant = ____isaac_2Dtypescript_2Ddefinitions.PoopGridEntityVariant
|
|
28016
28016
|
local StatueVariant = ____isaac_2Dtypescript_2Ddefinitions.StatueVariant
|
|
28017
28017
|
local TrapdoorVariant = ____isaac_2Dtypescript_2Ddefinitions.TrapdoorVariant
|
|
28018
|
+
local ____cachedEnumValues = require("src.arrays.cachedEnumValues")
|
|
28019
|
+
local GRID_ENTITY_XML_TYPE_VALUES = ____cachedEnumValues.GRID_ENTITY_XML_TYPE_VALUES
|
|
28018
28020
|
local ____cachedClasses = require("src.core.cachedClasses")
|
|
28019
28021
|
local game = ____cachedClasses.game
|
|
28020
28022
|
local ____constants = require("src.core.constants")
|
|
@@ -28133,6 +28135,7 @@ function ____exports.spawnGridEntityWithVariant(self, gridEntityType, variant, g
|
|
|
28133
28135
|
end
|
|
28134
28136
|
return gridEntity
|
|
28135
28137
|
end
|
|
28138
|
+
local GRID_ENTITY_TYPES_THAT_KEEP_GRID_ENTITY_XML_VARIANT = __TS__New(ReadonlySet, {GridEntityType.SPIKES_ON_OFF, GridEntityType.PRESSURE_PLATE, GridEntityType.TELEPORTER})
|
|
28136
28139
|
local BREAKABLE_GRID_ENTITY_TYPES_BY_EXPLOSIONS = __TS__New(ReadonlySet, {
|
|
28137
28140
|
GridEntityType.ROCK,
|
|
28138
28141
|
GridEntityType.ROCK_TINTED,
|
|
@@ -28150,6 +28153,7 @@ local BREAKABLE_GRID_ENTITY_TYPES_VARIANTS_BY_EXPLOSIONS = __TS__New(
|
|
|
28150
28153
|
ReadonlySet,
|
|
28151
28154
|
{(tostring(GridEntityType.STATUE) .. ".") .. tostring(StatueVariant.ANGEL)}
|
|
28152
28155
|
)
|
|
28156
|
+
local GRID_ENTITY_XML_TYPES_SET = __TS__New(ReadonlySet, GRID_ENTITY_XML_TYPE_VALUES)
|
|
28153
28157
|
function ____exports.convertXMLGridEntityType(self, gridEntityXMLType, gridEntityXMLVariant)
|
|
28154
28158
|
local gridEntityArray = GRID_ENTITY_XML_MAP:get(gridEntityXMLType)
|
|
28155
28159
|
assertDefined(
|
|
@@ -28158,10 +28162,7 @@ function ____exports.convertXMLGridEntityType(self, gridEntityXMLType, gridEntit
|
|
|
28158
28162
|
"Failed to find an entry in the grid entity map for XML entity type: " .. tostring(gridEntityXMLType)
|
|
28159
28163
|
)
|
|
28160
28164
|
local gridEntityType = gridEntityArray[1]
|
|
28161
|
-
local variant = gridEntityArray[2]
|
|
28162
|
-
if gridEntityType == GridEntityType.SPIKES_ON_OFF or gridEntityType == GridEntityType.PRESSURE_PLATE or gridEntityType == GridEntityType.TELEPORTER then
|
|
28163
|
-
variant = gridEntityXMLVariant
|
|
28164
|
-
end
|
|
28165
|
+
local variant = GRID_ENTITY_TYPES_THAT_KEEP_GRID_ENTITY_XML_VARIANT:has(gridEntityType) and gridEntityXMLVariant or gridEntityArray[2]
|
|
28165
28166
|
return {gridEntityType, variant}
|
|
28166
28167
|
end
|
|
28167
28168
|
function ____exports.doesGridEntityExist(self, gridEntityType, variant)
|
|
@@ -28266,7 +28267,7 @@ function ____exports.getGridEntitiesInRadius(self, targetPosition, radius)
|
|
|
28266
28267
|
local gridIndex = room:GetGridIndex(position)
|
|
28267
28268
|
local gridEntity = room:GetGridEntityFromPos(position)
|
|
28268
28269
|
if gridEntity == nil or registeredGridIndexes:has(gridIndex) then
|
|
28269
|
-
goto
|
|
28270
|
+
goto __continue23
|
|
28270
28271
|
end
|
|
28271
28272
|
registeredGridIndexes:add(gridIndex)
|
|
28272
28273
|
local ____exports_getGridEntityCollisionPoints_result_1 = ____exports.getGridEntityCollisionPoints(nil, gridEntity)
|
|
@@ -28282,7 +28283,7 @@ function ____exports.getGridEntitiesInRadius(self, targetPosition, radius)
|
|
|
28282
28283
|
gridEntities[#gridEntities + 1] = gridEntity
|
|
28283
28284
|
end
|
|
28284
28285
|
end
|
|
28285
|
-
::
|
|
28286
|
+
::__continue23::
|
|
28286
28287
|
end
|
|
28287
28288
|
end
|
|
28288
28289
|
return gridEntities
|
|
@@ -28350,6 +28351,9 @@ function ____exports.isGridEntityBroken(self, gridEntity)
|
|
|
28350
28351
|
local brokenState = GRID_ENTITY_TYPE_TO_BROKEN_STATE_MAP:get(gridEntityType)
|
|
28351
28352
|
return gridEntity.State == brokenState
|
|
28352
28353
|
end
|
|
28354
|
+
function ____exports.isGridEntityXMLType(self, num)
|
|
28355
|
+
return GRID_ENTITY_XML_TYPES_SET:has(num)
|
|
28356
|
+
end
|
|
28353
28357
|
function ____exports.isPoopGridEntityXMLType(self, gridEntityXMLType)
|
|
28354
28358
|
return POOP_GRID_ENTITY_XML_TYPES_SET:has(gridEntityXMLType)
|
|
28355
28359
|
end
|
|
@@ -2437,6 +2437,9 @@ export declare enum ModCallbackCustom {
|
|
|
2437
2437
|
* - You can provide an optional fifth argument that will make the callback only fire if it
|
|
2438
2438
|
* matches the sub-type provided.
|
|
2439
2439
|
*
|
|
2440
|
+
* You can use the `isGridEntityXMLType` helper function to convert the
|
|
2441
|
+
* `entityTypeOrGridEntityXMLType` argument to an `EntityType` or `GridEntityXMLType`, if needed.
|
|
2442
|
+
*
|
|
2440
2443
|
* ```ts
|
|
2441
2444
|
* function preRoomEntitySpawnFilter(
|
|
2442
2445
|
* entityTypeOrGridEntityXMLType: EntityType | GridEntityXMLType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModCallbackCustom.d.ts","sourceRoot":"","sources":["../../../src/enums/ModCallbackCustom.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ModCallbackCustom.d.ts","sourceRoot":"","sources":["../../../src/enums/ModCallbackCustom.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,oBAAY,iBAAiB;IAC3B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,sBAAsB,IAAA;IAEtB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,sBAAsB,IAAA;IAEtB;;;;;;;;;;;;;;;;;OAiBG;IACH,mBAAmB,IAAA;IAEnB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,mBAAmB,IAAA;IAEnB;;;;;;;;;;;OAWG;IACH,oBAAoB,IAAA;IAEpB;;;;;;;;;;;OAWG;IACH,mBAAmB,IAAA;IAEnB;;;;;;;;;;;;OAYG;IACH,kBAAkB,IAAA;IAElB;;;;;;;;;;;;;OAaG;IACH,qBAAqB,IAAA;IAErB;;;;;;;;;;;;;;;OAeG;IACH,mBAAmB,IAAA;IAEnB;;;;;;;;;;;;;OAaG;IACH,uBAAuB,IAAA;IAEvB;;;;;;;;;;;;;OAaG;IACH,uBAAuB,KAAA;IAEvB;;;;;;OAMG;IACH,eAAe,KAAA;IAEf;;;;;;;;;;;;;;OAcG;IACH,sBAAsB,KAAA;IAEtB;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,KAAA;IAEpB;;;;;;;;;;;;;;;;OAgBG;IACH,kBAAkB,KAAA;IAElB;;;;;;;;;;;;;;OAcG;IACH,wBAAwB,KAAA;IAExB;;;;;;;;;;OAUG;IACH,gBAAgB,KAAA;IAEhB;;;;;;;;;;OAUG;IACH,gBAAgB,KAAA;IAEhB;;;;;;;;;;;;;OAaG;IACH,uBAAuB,KAAA;IAEvB;;;;;;;;;;;;;;;OAeG;IACH,qBAAqB,KAAA;IAErB;;;;;;;;;;;;;OAaG;IACH,yBAAyB,KAAA;IAEzB;;;;;;;;;;;;;;;;;OAiBG;IACH,yBAAyB,KAAA;IAEzB;;;;;;;;;;;;;OAaG;IACH,yBAAyB,KAAA;IAEzB;;;;;;;;;;;;;;;OAeG;IACH,uBAAuB,KAAA;IAEvB;;;;;;;OAOG;IACH,YAAY,KAAA;IAEZ;;;;;;;;;;;;;OAaG;IACH,yBAAyB,KAAA;IAEzB;;;;;;;;;;;;;;;OAeG;IACH,uBAAuB,KAAA;IAEvB;;;;;;;;;;;;;OAaG;IACH,2BAA2B,KAAA;IAE3B;;;;;;;;;;;;;;;;;;OAkBG;IACH,2BAA2B,KAAA;IAE3B;;;;;;;;;;;;;OAaG;IACH,2BAA2B,KAAA;IAE3B;;;;;;;;;;OAUG;IACH,kBAAkB,KAAA;IAElB;;;;;;;;;;;OAWG;IACH,eAAe,KAAA;IAEf;;;;;;;;;;;OAWG;IACH,SAAS,KAAA;IAET;;;;;;;;;;;OAWG;IACH,oBAAoB,KAAA;IAEpB;;;;;;;;;;;;;;;;;OAiBG;IACH,2BAA2B,KAAA;IAE3B;;;;;;;;;;;;;;;;;OAiBG;IACH,gCAAgC,KAAA;IAEhC;;;;;;OAMG;IACH,oBAAoB,KAAA;IAEpB;;;;;;;;;;;;;;;;;OAiBG;IACH,uBAAuB,KAAA;IAEvB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,0BAA0B,KAAA;IAE1B;;;;;;;;;;;;;;;OAeG;IACH,8BAA8B,KAAA;IAE9B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,iCAAiC,KAAA;IAEjC;;;;;;;;;;;;;;;OAeG;IACH,4BAA4B,KAAA;IAE5B;;;;;;;;;;;;;;;OAeG;IACH,8BAA8B,KAAA;IAE9B;;;;;;;;;;;;;;;OAeG;IACH,8BAA8B,KAAA;IAE9B;;;;;;;;;;;;;;;;;OAiBG;IACH,qCAAqC,KAAA;IAErC;;;;;;;;;;;;;;;OAeG;IACH,8BAA8B,KAAA;IAE9B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,qBAAqB,KAAA;IAErB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,uBAAuB,KAAA;IAEvB;;;;;;;;;;;;;;;OAeG;IACH,uBAAuB,KAAA;IAEvB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,8BAA8B,KAAA;IAE9B;;;;;;;;;;;;;;;OAeG;IACH,uBAAuB,KAAA;IAEvB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,wBAAwB,KAAA;IAExB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,mBAAmB,KAAA;IAEnB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,gBAAgB,KAAA;IAEhB;;;;;;;;;;;;;;OAcG;IACH,qBAAqB,KAAA;IAErB;;;;;;;;;;;;;OAaG;IACH,sBAAsB,KAAA;IAEtB;;;;;;;;;;;;;;;OAeG;IACH,oBAAoB,KAAA;IAEpB;;;;;;;;;;;;;OAaG;IACH,wBAAwB,KAAA;IAExB;;;;;;;;;;;;;OAaG;IACH,wBAAwB,KAAA;IAExB;;;;;;;;;;;;;OAaG;IACH,sBAAsB,KAAA;IAEtB;;;;;;;;;;;;;;;OAeG;IACH,oBAAoB,KAAA;IAEpB;;;;;;;;;;;;;OAaG;IACH,wBAAwB,KAAA;IAExB;;;;;;;;;;;;;OAaG;IACH,wBAAwB,KAAA;IAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,wBAAwB,KAAA;IAExB;;;;;;;;;;;;;;;OAeG;IACH,mBAAmB,KAAA;IAEnB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,uBAAuB,KAAA;IAEvB;;;;;;;;;;;;;;;OAeG;IACH,qBAAqB,KAAA;IAErB;;;;;;;;;;;;;;;OAeG;IACH,oBAAoB,KAAA;IAEpB;;;;;;;;;;;;;;;;;OAiBG;IACH,kBAAkB,KAAA;IAElB;;;;;;;;;;;;;;;OAeG;IACH,sBAAsB,KAAA;IAEtB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,sBAAsB,KAAA;IAEtB;;;;;;;;;;;;;;;OAeG;IACH,sBAAsB,KAAA;IAEtB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,6BAA6B,KAAA;IAE7B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,mBAAmB,KAAA;IAEnB;;;;;;;;;;;;;;;;;OAiBG;IACH,mBAAmB,KAAA;IAEnB;;;;;;;;;;;;;OAaG;IACH,uBAAuB,KAAA;IAEvB;;;;;;;;;;;;;;;;OAgBG;IACH,sBAAsB,KAAA;IAEtB;;;;;;;;;;;;;;;OAeG;IACH,qBAAqB,KAAA;IAErB;;;;;;;;;;;;;OAaG;IACH,yBAAyB,KAAA;IAEzB;;;;;;;;;;;;;;;;;OAiBG;IACH,4BAA4B,KAAA;IAE5B;;;;;;;;;;;;;;;;;OAiBG;IACH,yBAAyB,KAAA;IAEzB;;;;;;;;;;;;;OAaG;IACH,yBAAyB,KAAA;IAEzB;;;;;;;;;;OAUG;IACH,eAAe,KAAA;IAEf;;;;;;;;;;OAUG;IACH,eAAe,KAAA;IAEf;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,yBAAyB,KAAA;IAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,uBAAuB,KAAA;IAEvB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,uBAAuB,KAAA;IAEvB;;;;;;;;;;;;;;;OAeG;IACH,6BAA6B,KAAA;IAE7B;;;;;;;;;;;;;;;OAeG;IACH,+BAA+B,KAAA;IAE/B;;;;;;;;;;;;;;;;OAgBG;IACH,wBAAwB,KAAA;IAExB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,sBAAsB,KAAA;IAEtB;;;;;;;;;;;;;;;;;;OAkBG;IACH,qBAAqB,KAAA;IAErB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,4BAA4B,KAAA;IAE5B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,4BAA4B,KAAA;IAE5B;;;;;;;;;;OAUG;IACH,gBAAgB,KAAA;IAEhB;;;;;;;;;;OAUG;IACH,gBAAgB,KAAA;IAEhB;;;;;;;;;;OAUG;IACH,0BAA0B,KAAA;IAE1B;;;;;;;;;;OAUG;IACH,0BAA0B,KAAA;IAE1B;;;;;;;;;;;;;OAaG;IACH,2BAA2B,KAAA;IAE3B;;;;;;;;;;;;;;;OAeG;IACH,yBAAyB,KAAA;IAEzB;;;;;;;;;;;;OAYG;IACH,oBAAoB,MAAA;IAEpB;;;;;;;;;;;;;OAaG;IACH,6BAA6B,MAAA;IAE7B;;;;;;;;;;;;;OAaG;IACH,6BAA6B,MAAA;IAE7B;;;;;;;;;;;;;;OAcG;IACH,aAAa,MAAA;IAEb;;;;;;;;;;;;OAYG;IACH,gBAAgB,MAAA;IAEhB;;;;;;;;;;;;OAYG;IACH,gBAAgB,MAAA;IAEhB;;;;;;;;;;;;;;;OAeG;IACH,uBAAuB,MAAA;IAEvB;;;;;;;;;;;;;OAaG;IACH,cAAc,MAAA;IAEd;;;;;;;;;;;;;;;;OAgBG;IACH,2BAA2B,MAAA;IAE3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,mBAAmB,MAAA;IAEnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,mBAAmB,MAAA;IAEnB;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,MAAA;IAEd;;;;;;;;;;;;OAYG;IACH,gBAAgB,MAAA;IAEhB;;;;;;;;;;;;OAYG;IACH,gBAAgB,MAAA;IAEhB;;;;;;;;;;OAUG;IACH,kBAAkB,MAAA;IAElB;;;;;;;;;;OAUG;IACH,kBAAkB,MAAA;IAElB;;;;;;;;;;;;;OAaG;IACH,qBAAqB,MAAA;IAErB;;;;;;;;;;;;;;;;OAgBG;IACH,mBAAmB,MAAA;IAEnB;;;;;;;;;;;;;;;OAeG;IACH,wBAAwB,MAAA;IAExB;;;;;;;;;;;;OAYG;IACH,cAAc,MAAA;IAEd;;;;;;;;;;;;;OAaG;IACH,uBAAuB,MAAA;IAEvB;;;;;;;;;;;;;OAaG;IACH,uBAAuB,MAAA;IAEvB;;;;;;;;;;OAUG;IACH,eAAe,MAAA;IAEf;;;;;;;;;;OAUG;IACH,eAAe,MAAA;IAEf;;;;;;;;;;;;;;;;;OAiBG;IACH,mBAAmB,MAAA;IAEnB;;;;;;;;;;;;;OAaG;IACH,kBAAkB,MAAA;IAElB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,oBAAoB,MAAA;IAEpB;;;;;;;;;;;;;;OAcG;IACH,iBAAiB,MAAA;IAEjB;;;;;;;;;;;;;;;;;OAiBG;IACH,yBAAyB,MAAA;IAEzB;;;;;;;;;;;;;;;;;OAiBG;IACH,iBAAiB,MAAA;IAEjB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,uBAAuB,MAAA;IAEvB;;;;;;;;;;;;;;;;;OAiBG;IACH,6BAA6B,MAAA;IAE7B;;;;;;;;;;;;;;;;;;OAkBG;IACH,gBAAgB,MAAA;IAEhB;;;;;;;;;;;;;;;;;;OAkBG;IACH,eAAe,MAAA;IAEf;;;;;;;;;;;;;;;;;OAiBG;IACH,0BAA0B,MAAA;IAE1B;;;;;;;;;;;;OAYG;IACH,aAAa,MAAA;IAEb;;;;;;;;;;;;;;;;;;;OAmBG;IACH,wBAAwB,MAAA;IAExB;;;;;;;;;;;;;;;OAeG;IACH,qBAAqB,MAAA;IAErB;;;;;;;;;;;;;;;;;OAiBG;IACH,+BAA+B,MAAA;IAE/B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,4BAA4B,MAAA;IAE5B;;;;;;;;;;;;;;;;;OAiBG;IACH,yBAAyB,MAAA;CAC1B"}
|
|
@@ -9,13 +9,13 @@ export declare function convertBinaryToDecimal(bits: int[]): number;
|
|
|
9
9
|
/**
|
|
10
10
|
* Helper function to convert a number to an array of bits.
|
|
11
11
|
*
|
|
12
|
-
* @param
|
|
12
|
+
* @param num The number to convert.
|
|
13
13
|
* @param minLength Optional. Equal to the minimum amount of bits that should be returned. If the
|
|
14
14
|
* converted number of bits is below this number, 0's will be padded to the left
|
|
15
15
|
* side until the minimum length is met. Default is undefined (which will not cause
|
|
16
16
|
* any padding).
|
|
17
17
|
*/
|
|
18
|
-
export declare function convertDecimalToBinary(
|
|
18
|
+
export declare function convertDecimalToBinary(num: number, minLength?: int): int[];
|
|
19
19
|
/**
|
|
20
20
|
* Helper function to count the number of bits that are set to 1 in a binary representation of a
|
|
21
21
|
* number.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitwise.d.ts","sourceRoot":"","sources":["../../../src/functions/bitwise.ts"],"names":[],"mappings":";;;;AAGA,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,CAAC,SAAS,OAAO,GAAG,UAAU,EAC5D,KAAK,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,GACxB,QAAQ,CAAC,CAAC,CAAC,CAOb;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAG1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"bitwise.d.ts","sourceRoot":"","sources":["../../../src/functions/bitwise.ts"],"names":[],"mappings":";;;;AAGA,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,CAAC,SAAS,OAAO,GAAG,UAAU,EAC5D,KAAK,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,GACxB,QAAQ,CAAC,CAAC,CAAC,CAOb;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAG1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,CAqB1E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CASxC;AAED,iGAAiG;AACjG,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAE9C;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAQzC;AAED,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,GAAG,UAAU,EAC1D,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAC3B,QAAQ,CAAC,CAAC,CAAC,CAOb"}
|
|
@@ -23,20 +23,20 @@ function ____exports.convertBinaryToDecimal(self, bits)
|
|
|
23
23
|
end
|
|
24
24
|
--- Helper function to convert a number to an array of bits.
|
|
25
25
|
--
|
|
26
|
-
-- @param
|
|
26
|
+
-- @param num The number to convert.
|
|
27
27
|
-- @param minLength Optional. Equal to the minimum amount of bits that should be returned. If the
|
|
28
28
|
-- converted number of bits is below this number, 0's will be padded to the left
|
|
29
29
|
-- side until the minimum length is met. Default is undefined (which will not cause
|
|
30
30
|
-- any padding).
|
|
31
|
-
function ____exports.convertDecimalToBinary(self,
|
|
31
|
+
function ____exports.convertDecimalToBinary(self, num, minLength)
|
|
32
32
|
local bits = {}
|
|
33
|
-
local bitsString = __TS__NumberToString(
|
|
33
|
+
local bitsString = __TS__NumberToString(num, 2)
|
|
34
34
|
for ____, bitString in __TS__Iterator(bitsString) do
|
|
35
35
|
local bit = tonumber(bitString)
|
|
36
36
|
assertDefined(
|
|
37
37
|
nil,
|
|
38
38
|
bit,
|
|
39
|
-
"Failed to convert the following number to binary: " .. tostring(
|
|
39
|
+
"Failed to convert the following number to binary: " .. tostring(num)
|
|
40
40
|
)
|
|
41
41
|
bits[#bits + 1] = bit
|
|
42
42
|
end
|
|
@@ -135,6 +135,11 @@ export declare function isGridEntityBreakableByExplosion(gridEntity: GridEntity)
|
|
|
135
135
|
* the actual collision for the entity is removed.
|
|
136
136
|
*/
|
|
137
137
|
export declare function isGridEntityBroken(gridEntity: GridEntity): boolean;
|
|
138
|
+
/**
|
|
139
|
+
* Helper function to see if an arbitrary number is a valid `GridEntityXMLType`. This is useful in
|
|
140
|
+
* the `PRE_ROOM_ENTITY_SPAWN` callback for narrowing the type of the first argument.
|
|
141
|
+
*/
|
|
142
|
+
export declare function isGridEntityXMLType(num: number): num is GridEntityXMLType;
|
|
138
143
|
/** Helper function to see if a `GridEntityXMLType` is some kind of poop. */
|
|
139
144
|
export declare function isPoopGridEntityXMLType(gridEntityXMLType: GridEntityXMLType): boolean;
|
|
140
145
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gridEntities.d.ts","sourceRoot":"","sources":["../../../src/functions/gridEntities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAGL,cAAc,EAIf,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"gridEntities.d.ts","sourceRoot":"","sources":["../../../src/functions/gridEntities.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,8 @@ local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
|
|
|
14
14
|
local PoopGridEntityVariant = ____isaac_2Dtypescript_2Ddefinitions.PoopGridEntityVariant
|
|
15
15
|
local StatueVariant = ____isaac_2Dtypescript_2Ddefinitions.StatueVariant
|
|
16
16
|
local TrapdoorVariant = ____isaac_2Dtypescript_2Ddefinitions.TrapdoorVariant
|
|
17
|
+
local ____cachedEnumValues = require("src.arrays.cachedEnumValues")
|
|
18
|
+
local GRID_ENTITY_XML_TYPE_VALUES = ____cachedEnumValues.GRID_ENTITY_XML_TYPE_VALUES
|
|
17
19
|
local ____cachedClasses = require("src.core.cachedClasses")
|
|
18
20
|
local game = ____cachedClasses.game
|
|
19
21
|
local ____constants = require("src.core.constants")
|
|
@@ -158,6 +160,9 @@ function ____exports.spawnGridEntityWithVariant(self, gridEntityType, variant, g
|
|
|
158
160
|
end
|
|
159
161
|
return gridEntity
|
|
160
162
|
end
|
|
163
|
+
--- For some specific grid entities, the variant defined in the XML is what is used by the actual
|
|
164
|
+
-- game (which is not the case for e.g. poops).
|
|
165
|
+
local GRID_ENTITY_TYPES_THAT_KEEP_GRID_ENTITY_XML_VARIANT = __TS__New(ReadonlySet, {GridEntityType.SPIKES_ON_OFF, GridEntityType.PRESSURE_PLATE, GridEntityType.TELEPORTER})
|
|
161
166
|
local BREAKABLE_GRID_ENTITY_TYPES_BY_EXPLOSIONS = __TS__New(ReadonlySet, {
|
|
162
167
|
GridEntityType.ROCK,
|
|
163
168
|
GridEntityType.ROCK_TINTED,
|
|
@@ -175,6 +180,7 @@ local BREAKABLE_GRID_ENTITY_TYPES_VARIANTS_BY_EXPLOSIONS = __TS__New(
|
|
|
175
180
|
ReadonlySet,
|
|
176
181
|
{(tostring(GridEntityType.STATUE) .. ".") .. tostring(StatueVariant.ANGEL)}
|
|
177
182
|
)
|
|
183
|
+
local GRID_ENTITY_XML_TYPES_SET = __TS__New(ReadonlySet, GRID_ENTITY_XML_TYPE_VALUES)
|
|
178
184
|
--- Helper function to convert the grid entity type found in a room XML file to the corresponding
|
|
179
185
|
-- grid entity type and variant normally used by the game. For example, `GridEntityXMLType.ROCK` is
|
|
180
186
|
-- 1000 (in a room XML file), but `GridEntityType.ROCK` is equal to 2 (in-game).
|
|
@@ -186,10 +192,7 @@ function ____exports.convertXMLGridEntityType(self, gridEntityXMLType, gridEntit
|
|
|
186
192
|
"Failed to find an entry in the grid entity map for XML entity type: " .. tostring(gridEntityXMLType)
|
|
187
193
|
)
|
|
188
194
|
local gridEntityType = gridEntityArray[1]
|
|
189
|
-
local variant = gridEntityArray[2]
|
|
190
|
-
if gridEntityType == GridEntityType.SPIKES_ON_OFF or gridEntityType == GridEntityType.PRESSURE_PLATE or gridEntityType == GridEntityType.TELEPORTER then
|
|
191
|
-
variant = gridEntityXMLVariant
|
|
192
|
-
end
|
|
195
|
+
local variant = GRID_ENTITY_TYPES_THAT_KEEP_GRID_ENTITY_XML_VARIANT:has(gridEntityType) and gridEntityXMLVariant or gridEntityArray[2]
|
|
193
196
|
return {gridEntityType, variant}
|
|
194
197
|
end
|
|
195
198
|
--- Helper function to check if one or more of a specific kind of grid entity is present in the
|
|
@@ -337,7 +340,7 @@ function ____exports.getGridEntitiesInRadius(self, targetPosition, radius)
|
|
|
337
340
|
local gridIndex = room:GetGridIndex(position)
|
|
338
341
|
local gridEntity = room:GetGridEntityFromPos(position)
|
|
339
342
|
if gridEntity == nil or registeredGridIndexes:has(gridIndex) then
|
|
340
|
-
goto
|
|
343
|
+
goto __continue23
|
|
341
344
|
end
|
|
342
345
|
registeredGridIndexes:add(gridIndex)
|
|
343
346
|
local ____exports_getGridEntityCollisionPoints_result_1 = ____exports.getGridEntityCollisionPoints(nil, gridEntity)
|
|
@@ -353,7 +356,7 @@ function ____exports.getGridEntitiesInRadius(self, targetPosition, radius)
|
|
|
353
356
|
gridEntities[#gridEntities + 1] = gridEntity
|
|
354
357
|
end
|
|
355
358
|
end
|
|
356
|
-
::
|
|
359
|
+
::__continue23::
|
|
357
360
|
end
|
|
358
361
|
end
|
|
359
362
|
return gridEntities
|
|
@@ -451,6 +454,11 @@ function ____exports.isGridEntityBroken(self, gridEntity)
|
|
|
451
454
|
local brokenState = GRID_ENTITY_TYPE_TO_BROKEN_STATE_MAP:get(gridEntityType)
|
|
452
455
|
return gridEntity.State == brokenState
|
|
453
456
|
end
|
|
457
|
+
--- Helper function to see if an arbitrary number is a valid `GridEntityXMLType`. This is useful in
|
|
458
|
+
-- the `PRE_ROOM_ENTITY_SPAWN` callback for narrowing the type of the first argument.
|
|
459
|
+
function ____exports.isGridEntityXMLType(self, num)
|
|
460
|
+
return GRID_ENTITY_XML_TYPES_SET:has(num)
|
|
461
|
+
end
|
|
454
462
|
--- Helper function to see if a `GridEntityXMLType` is some kind of poop.
|
|
455
463
|
function ____exports.isPoopGridEntityXMLType(self, gridEntityXMLType)
|
|
456
464
|
return POOP_GRID_ENTITY_XML_TYPES_SET:has(gridEntityXMLType)
|
package/package.json
CHANGED
|
@@ -2576,6 +2576,9 @@ export enum ModCallbackCustom {
|
|
|
2576
2576
|
* - You can provide an optional fifth argument that will make the callback only fire if it
|
|
2577
2577
|
* matches the sub-type provided.
|
|
2578
2578
|
*
|
|
2579
|
+
* You can use the `isGridEntityXMLType` helper function to convert the
|
|
2580
|
+
* `entityTypeOrGridEntityXMLType` argument to an `EntityType` or `GridEntityXMLType`, if needed.
|
|
2581
|
+
*
|
|
2579
2582
|
* ```ts
|
|
2580
2583
|
* function preRoomEntitySpawnFilter(
|
|
2581
2584
|
* entityTypeOrGridEntityXMLType: EntityType | GridEntityXMLType,
|
package/src/functions/bitwise.ts
CHANGED
|
@@ -22,21 +22,21 @@ export function convertBinaryToDecimal(bits: int[]): number {
|
|
|
22
22
|
/**
|
|
23
23
|
* Helper function to convert a number to an array of bits.
|
|
24
24
|
*
|
|
25
|
-
* @param
|
|
25
|
+
* @param num The number to convert.
|
|
26
26
|
* @param minLength Optional. Equal to the minimum amount of bits that should be returned. If the
|
|
27
27
|
* converted number of bits is below this number, 0's will be padded to the left
|
|
28
28
|
* side until the minimum length is met. Default is undefined (which will not cause
|
|
29
29
|
* any padding).
|
|
30
30
|
*/
|
|
31
|
-
export function convertDecimalToBinary(
|
|
31
|
+
export function convertDecimalToBinary(num: number, minLength?: int): int[] {
|
|
32
32
|
const bits: int[] = [];
|
|
33
33
|
|
|
34
|
-
const bitsString =
|
|
34
|
+
const bitsString = num.toString(2);
|
|
35
35
|
for (const bitString of bitsString) {
|
|
36
36
|
const bit = tonumber(bitString);
|
|
37
37
|
assertDefined(
|
|
38
38
|
bit,
|
|
39
|
-
`Failed to convert the following number to binary: ${
|
|
39
|
+
`Failed to convert the following number to binary: ${num}`,
|
|
40
40
|
);
|
|
41
41
|
|
|
42
42
|
bits.push(bit);
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
StatueVariant,
|
|
8
8
|
TrapdoorVariant,
|
|
9
9
|
} from "isaac-typescript-definitions";
|
|
10
|
+
import { GRID_ENTITY_XML_TYPE_VALUES } from "../arrays/cachedEnumValues";
|
|
10
11
|
import { game } from "../core/cachedClasses";
|
|
11
12
|
import { DISTANCE_OF_GRID_TILE, VectorOne } from "../core/constants";
|
|
12
13
|
import { GRID_ENTITY_TYPE_TO_BROKEN_STATE_MAP } from "../maps/gridEntityTypeToBrokenStateMap";
|
|
@@ -27,6 +28,16 @@ import { asNumber, isNumber } from "./types";
|
|
|
27
28
|
import { assertDefined, eRange, iRange } from "./utils";
|
|
28
29
|
import { isVector, vectorEquals } from "./vector";
|
|
29
30
|
|
|
31
|
+
/**
|
|
32
|
+
* For some specific grid entities, the variant defined in the XML is what is used by the actual
|
|
33
|
+
* game (which is not the case for e.g. poops).
|
|
34
|
+
*/
|
|
35
|
+
const GRID_ENTITY_TYPES_THAT_KEEP_GRID_ENTITY_XML_VARIANT = new ReadonlySet([
|
|
36
|
+
GridEntityType.SPIKES_ON_OFF, // 9
|
|
37
|
+
GridEntityType.PRESSURE_PLATE, // 20
|
|
38
|
+
GridEntityType.TELEPORTER, // 23
|
|
39
|
+
]);
|
|
40
|
+
|
|
30
41
|
const BREAKABLE_GRID_ENTITY_TYPES_BY_EXPLOSIONS =
|
|
31
42
|
new ReadonlySet<GridEntityType>([
|
|
32
43
|
GridEntityType.ROCK, // 2
|
|
@@ -47,6 +58,8 @@ const BREAKABLE_GRID_ENTITY_TYPES_BY_EXPLOSIONS =
|
|
|
47
58
|
const BREAKABLE_GRID_ENTITY_TYPES_VARIANTS_BY_EXPLOSIONS =
|
|
48
59
|
new ReadonlySet<string>([`${GridEntityType.STATUE}.${StatueVariant.ANGEL}`]);
|
|
49
60
|
|
|
61
|
+
const GRID_ENTITY_XML_TYPES_SET = new ReadonlySet(GRID_ENTITY_XML_TYPE_VALUES);
|
|
62
|
+
|
|
50
63
|
/**
|
|
51
64
|
* Helper function to convert the grid entity type found in a room XML file to the corresponding
|
|
52
65
|
* grid entity type and variant normally used by the game. For example, `GridEntityXMLType.ROCK` is
|
|
@@ -63,17 +76,11 @@ export function convertXMLGridEntityType(
|
|
|
63
76
|
);
|
|
64
77
|
|
|
65
78
|
const gridEntityType = gridEntityArray[0];
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
gridEntityType === GridEntityType.SPIKES_ON_OFF || // 9
|
|
72
|
-
gridEntityType === GridEntityType.PRESSURE_PLATE || // 20
|
|
73
|
-
gridEntityType === GridEntityType.TELEPORTER // 23
|
|
74
|
-
) {
|
|
75
|
-
variant = gridEntityXMLVariant;
|
|
76
|
-
}
|
|
79
|
+
const variant = GRID_ENTITY_TYPES_THAT_KEEP_GRID_ENTITY_XML_VARIANT.has(
|
|
80
|
+
gridEntityType,
|
|
81
|
+
)
|
|
82
|
+
? gridEntityXMLVariant
|
|
83
|
+
: gridEntityArray[1];
|
|
77
84
|
|
|
78
85
|
return [gridEntityType, variant];
|
|
79
86
|
}
|
|
@@ -477,6 +484,14 @@ export function isGridEntityBroken(gridEntity: GridEntity): boolean {
|
|
|
477
484
|
return gridEntity.State === brokenState;
|
|
478
485
|
}
|
|
479
486
|
|
|
487
|
+
/**
|
|
488
|
+
* Helper function to see if an arbitrary number is a valid `GridEntityXMLType`. This is useful in
|
|
489
|
+
* the `PRE_ROOM_ENTITY_SPAWN` callback for narrowing the type of the first argument.
|
|
490
|
+
*/
|
|
491
|
+
export function isGridEntityXMLType(num: number): num is GridEntityXMLType {
|
|
492
|
+
return GRID_ENTITY_XML_TYPES_SET.has(num); // eslint-disable-line isaacscript/strict-enums
|
|
493
|
+
}
|
|
494
|
+
|
|
480
495
|
/** Helper function to see if a `GridEntityXMLType` is some kind of poop. */
|
|
481
496
|
export function isPoopGridEntityXMLType(
|
|
482
497
|
gridEntityXMLType: GridEntityXMLType,
|