Utils
Functions
assertDefined
▸ assertDefined<T
>(value
, ...«destructured»
): asserts value is Exclude<T, undefined>
Helper function to throw an error (using the error
Lua function) if the provided value is equal
to undefined
.
This is useful to have TypeScript narrow a T | undefined
value to T
in a concise way.
Type parameters
Name |
---|
T |
Parameters
Name | Type |
---|---|
value | T |
...«destructured» | [undefined ] extends [T ] ? [string ] : ["The assertion is useless because the provided value does not contain undefined." ] |
Returns
asserts value is Exclude<T, undefined>
Defined in
packages/isaacscript-common/src/functions/utils.ts:11
assertNotNull
▸ assertNotNull<T
>(value
, ...«destructured»
): asserts value is Exclude<T, null>
Helper function to throw an error (using the error
Lua function) if the provided value is equal
to null
.
This is useful to have TypeScript narrow a T | null
value to T
in a concise way.
Type parameters
Name |
---|
T |
Parameters
Name | Type |
---|---|
value | T |
...«destructured» | [null ] extends [T ] ? [string ] : ["The assertion is useless because the provided value does not contain null." ] |
Returns
asserts value is Exclude<T, null>
Defined in
packages/isaacscript-common/src/functions/utils.ts:30
eRange
▸ eRange(start
, end?
, increment?
): readonly int
[]
Helper function to return an array of integers with the specified range, inclusive on the lower
end and exclusive on the high end. (The "e" in the function name stands for exclusive.) Thus,
this function works in a similar way as the built-in range
function from Python.
If the end is lower than the start, an empty array will be returned.
For example:
eRange(2)
returns[0, 1]
.eRange(3)
returns[0, 1, 2]
.eRange(-3)
returns[0, -1, -2]
.eRange(1, 3)
returns[1, 2]
.eRange(2, 5)
returns[2, 3, 4]
.eRange(5, 2)
returns[]
.eRange(3, 3)
returns[]
.
Parameters
Name | Type | Default value | Description |
---|---|---|---|
start | int | undefined | The integer to start at. |
end? | int | undefined | Optional. The integer to end at. If not specified, then the start will be 0 and the first argument will be the end. |
increment | number | 1 | Optional. The increment to use. Default is 1. |
Returns
readonly int
[]
Defined in
packages/isaacscript-common/src/functions/utils.ts:65
getTraversalDescription
▸ getTraversalDescription(key
, traversalDescription
): string
Helper function to log what is happening in functions that recursively move through nested data structures.
Parameters
Name | Type |
---|---|
key | unknown |
traversalDescription | string |
Returns
string
Defined in
packages/isaacscript-common/src/functions/utils.ts:83
iRange
▸ iRange(start
, end?
, increment?
): readonly int
[]
Helper function to return an array of integers with the specified range, inclusive on both ends. (The "i" in the function name stands for inclusive.)
If the end is lower than the start, an empty array will be returned.
For example:
iRange(2)
returns[0, 1, 2]
.iRange(3)
returns[0, 1, 2, 3]
.iRange(-3)
returns[0, -1, -2, -3]
.iRange(1, 3)
returns[1, 2, 3]
.iRange(2, 5)
returns[2, 3, 4, 5]
.iRange(5, 2)
returns[]
.iRange(3, 3)
returns[3]
.
Parameters
Name | Type | Default value | Description |
---|---|---|---|
start | int | undefined | The integer to start at. |
end? | int | undefined | Optional. The integer to end at. If not specified, then the start will be 0 and the first argument will be the end. |
increment | number | 1 | Optional. The increment to use. Default is 1. |
Returns
readonly int
[]
Defined in
packages/isaacscript-common/src/functions/utils.ts:117
inRange
▸ inRange(num
, start
, end
): boolean
Helper function to check if a variable is within a certain range, inclusive on both ends.
- For example,
inRange(1, 1, 3)
will returntrue
. - For example,
inRange(0, 1, 3)
will returnfalse
.
Parameters
Name | Type | Description |
---|---|---|
num | int | The number to check. |
start | int | The start of the range to check. |
end | int | The end of the range to check. |
Returns
boolean
Defined in
packages/isaacscript-common/src/functions/utils.ts:136
isMultiplayer
▸ isMultiplayer(): boolean
Helper function to detect if there is two or more players currently playing.
Specifically, this function looks for unique ControllerIndex
values across all players.
This function is not safe to use in the POST_PLAYER_INIT
callback, because the
ControllerIndex
will not be set properly. As a workaround, you can use it in the
POST_PLAYER_INIT_FIRST
callback (or some other callback like POST_UPDATE
).
Returns
boolean
Defined in
packages/isaacscript-common/src/functions/utils.ts:149
isRepentance
▸ isRepentance(): boolean
Helper function to check if the player is using Afterbirth+ or Repentance.
This function should always be used over the REPENTANCE
constant, since the latter is not safe.
Specifically, this function checks for the Sprite.GetAnimation
method:
https://bindingofisaacrebirth.fandom.com/wiki/V1.06.J818#Lua_Changes
Returns
boolean
Defined in
packages/isaacscript-common/src/functions/utils.ts:165
isRepentogon
▸ isRepentogon(): boolean
Helper function to check if the player is using REPENTOGON, an exe-hack which expands the modding API.
Although REPENTOGON has a REPENTOGON
global to check if it's present, it is not safe to use as
it can be overwritten by other mods.
Specifically, this function checks for the Sprite.Continue
method:
https://repentogon.com/Sprite.html#continue
Returns
boolean
Defined in
packages/isaacscript-common/src/functions/utils.ts:194
repeat
▸ repeat(num
, func
): void
Helper function to repeat code N times. This is faster to type and cleaner than using a for loop.
For example:
const player = Isaac.GetPlayer();
repeat(10, () => {
player.AddCollectible(CollectibleType.STEVEN);
});
The repeated function is passed the index of the iteration, if needed:
repeat(3, (i) => {
print(i); // Prints "0", "1", "2"
});
Parameters
Name | Type |
---|---|
num | int |
func | (i : int ) => void |
Returns
void
Defined in
packages/isaacscript-common/src/functions/utils.ts:233
todo
▸ todo(...args
): void
Helper function to signify that the enclosing code block is not yet complete. Using this function is similar to writing a "TODO" comment, but it has the benefit of preventing ESLint errors due to unused variables or early returns.
When you see this function, it simply means that the programmer intends to add in more code to this spot later.
This function is variadic, meaning that you can pass as many arguments as you want. (This is useful as a means to prevent unused variables.)
This function does not actually do anything. (It is an "empty" function.)
Parameters
Name | Type |
---|---|
...args | readonly unknown [] |
Returns
void
Allow Empty Variadic