isaacscript-common 36.2.2 → 37.0.1
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 +34 -14
- package/dist/isaacscript-common.lua +19 -10
- package/dist/src/functions/ui.d.ts.map +1 -1
- package/dist/src/functions/ui.lua +2 -1
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/types/ERange.d.ts +12 -0
- package/dist/src/types/ERange.d.ts.map +1 -0
- package/dist/src/types/{Range.d.ts → IRange.d.ts} +5 -4
- package/dist/src/types/IRange.d.ts.map +1 -0
- package/dist/src/types/IRange.lua +2 -0
- package/dist/src/types/NaturalNumbersLessThanOrEqualTo.d.ts +1 -1
- package/dist/src/types/NaturalNumbersLessThanOrEqualTo.d.ts.map +1 -1
- package/dist/src/types/TupleKeys.d.ts +9 -0
- package/dist/src/types/TupleKeys.d.ts.map +1 -0
- package/dist/src/types/TupleKeys.lua +2 -0
- package/dist/src/types/TupleWithLengthBetween.d.ts +2 -2
- package/dist/src/types/TupleWithLengthBetween.d.ts.map +1 -1
- package/dist/src/types/TupleWithMaxLength.d.ts +2 -2
- package/dist/src/types/TupleWithMaxLength.d.ts.map +1 -1
- package/dist/src/types/WeightedArray.d.ts +1 -1
- package/dist/src/types/WeightedArray.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/functions/ui.ts +4 -1
- package/src/index.ts +3 -1
- package/src/types/ERange.ts +15 -0
- package/src/types/{Range.ts → IRange.ts} +4 -3
- package/src/types/NaturalNumbersLessThanOrEqualTo.ts +5 -5
- package/src/types/TupleKeys.ts +7 -0
- package/src/types/TupleWithLengthBetween.ts +2 -2
- package/src/types/TupleWithMaxLength.ts +2 -2
- package/src/types/WeightedArray.ts +1 -1
- package/dist/src/types/Range.d.ts.map +0 -1
- /package/dist/src/types/{Range.lua → ERange.lua} +0 -0
package/dist/index.rollup.d.ts
CHANGED
|
@@ -4112,6 +4112,17 @@ export declare type EntityID = string & {
|
|
|
4112
4112
|
readonly __entityIDBrand: symbol;
|
|
4113
4113
|
};
|
|
4114
4114
|
|
|
4115
|
+
/**
|
|
4116
|
+
* Helper type to get a range of integers. It is inclusive on the lower end and exclusive on the
|
|
4117
|
+
* high end. (The "E" in the type name stands for exclusive.)
|
|
4118
|
+
*
|
|
4119
|
+
* For example, `ERange<3, 5>` will return `3 | 4`.
|
|
4120
|
+
*
|
|
4121
|
+
* From:
|
|
4122
|
+
* https://stackoverflow.com/questions/39494689/is-it-possible-to-restrict-number-to-a-certain-range
|
|
4123
|
+
*/
|
|
4124
|
+
export declare type ERange<Low extends number, High extends number> = Exclude<NaturalNumbersLessThan<High>, NaturalNumbersLessThan<Low>>;
|
|
4125
|
+
|
|
4115
4126
|
/**
|
|
4116
4127
|
* Helper function to return an array of integers with the specified range, inclusive on the lower
|
|
4117
4128
|
* end and exclusive on the high end. (The "e" in the function name stands for exclusive.) Thus,
|
|
@@ -7989,6 +8000,17 @@ export declare function inSecretShop(): boolean;
|
|
|
7989
8000
|
*/
|
|
7990
8001
|
export declare function inStartingRoom(): boolean;
|
|
7991
8002
|
|
|
8003
|
+
/**
|
|
8004
|
+
* Helper type to get a range of integers. It is inclusive on both ends. (The "I" in the type name
|
|
8005
|
+
* stands for inclusive.)
|
|
8006
|
+
*
|
|
8007
|
+
* For example, `IRange<3, 5>` will return `3 | 4 | 5`.
|
|
8008
|
+
*
|
|
8009
|
+
* From:
|
|
8010
|
+
* https://stackoverflow.com/questions/39494689/is-it-possible-to-restrict-number-to-a-certain-range
|
|
8011
|
+
*/
|
|
8012
|
+
export declare type IRange<Low extends number, High extends number> = Exclude<NaturalNumbersLessThanOrEqualTo<High>, NaturalNumbersLessThan<Low>>;
|
|
8013
|
+
|
|
7992
8014
|
/**
|
|
7993
8015
|
* Helper function to return an array of integers with the specified range, inclusive on both ends.
|
|
7994
8016
|
* (The "i" in the function name stands for inclusive.)
|
|
@@ -13593,7 +13615,7 @@ export declare type NaturalNumbersLessThan<N extends number, Acc extends number[
|
|
|
13593
13615
|
* From:
|
|
13594
13616
|
* https://stackoverflow.com/questions/39494689/is-it-possible-to-restrict-number-to-a-certain-range
|
|
13595
13617
|
*/
|
|
13596
|
-
export declare type NaturalNumbersLessThanOrEqualTo<N extends number,
|
|
13618
|
+
export declare type NaturalNumbersLessThanOrEqualTo<N extends number, Acc extends number[] = []> = Acc extends [unknown, ...infer Tail] ? Tail["length"] extends N ? Acc[number] : NaturalNumbersLessThanOrEqualTo<N, [...Acc, Acc["length"]]> : NaturalNumbersLessThanOrEqualTo<N, [...Acc, Acc["length"]]>;
|
|
13597
13619
|
|
|
13598
13620
|
/** This is near the top door. */
|
|
13599
13621
|
export declare const NEW_FLOOR_STARTING_POSITION_GREED_MODE: Readonly<Vector>;
|
|
@@ -14647,16 +14669,6 @@ declare interface QueueElement {
|
|
|
14647
14669
|
renderOffset: Vector;
|
|
14648
14670
|
}
|
|
14649
14671
|
|
|
14650
|
-
/**
|
|
14651
|
-
* Helper type to get a range of integers. It is inclusive on both ends.
|
|
14652
|
-
*
|
|
14653
|
-
* For example, `Range<3, 5>` will return `3 | 4 | 5`.
|
|
14654
|
-
*
|
|
14655
|
-
* From:
|
|
14656
|
-
* https://stackoverflow.com/questions/39494689/is-it-possible-to-restrict-number-to-a-certain-range
|
|
14657
|
-
*/
|
|
14658
|
-
export declare type Range<Low extends number, High extends number> = Exclude<NaturalNumbersLessThanOrEqualTo<High>, NaturalNumbersLessThan<Low>>;
|
|
14659
|
-
|
|
14660
14672
|
/** An alias for the `Map` constructor that returns a read-only map. */
|
|
14661
14673
|
declare const ReadonlyMap_2: ReadonlyMapConstructor;
|
|
14662
14674
|
export { ReadonlyMap_2 as ReadonlyMap }
|
|
@@ -17468,6 +17480,14 @@ export declare interface TSTLClassMetatable {
|
|
|
17468
17480
|
*/
|
|
17469
17481
|
export declare type Tuple<T, N extends number> = N extends N ? number extends N ? T[] : _TupleOf<T, N, []> : never;
|
|
17470
17482
|
|
|
17483
|
+
/**
|
|
17484
|
+
* Helper type to get the valid indexes for a tuple. For example, using a tuple of length 3 will
|
|
17485
|
+
* return `0 | 1 | 2`.
|
|
17486
|
+
*/
|
|
17487
|
+
export declare type TupleKeys<T extends {
|
|
17488
|
+
length: number;
|
|
17489
|
+
}> = ERange<0, T["length"]>;
|
|
17490
|
+
|
|
17471
17491
|
declare type _TupleOf<T, N extends number, R extends unknown[]> = R["length"] extends N ? R : _TupleOf<T, N, [T, ...R]>;
|
|
17472
17492
|
|
|
17473
17493
|
export declare type TupleToIntersection<T extends unknown[]> = T extends [
|
|
@@ -17485,7 +17505,7 @@ export declare type TupleToUnion<T extends unknown[]> = T[number];
|
|
|
17485
17505
|
* For example, `TupleWithLengthBetween<string, 2, 4>` will allow string tuples of size 2, 3, or 4.
|
|
17486
17506
|
*/
|
|
17487
17507
|
export declare type TupleWithLengthBetween<T, MinLength extends number, MaxLength extends number> = (T[] | readonly T[]) & {
|
|
17488
|
-
length:
|
|
17508
|
+
length: IRange<MinLength, MaxLength>;
|
|
17489
17509
|
};
|
|
17490
17510
|
|
|
17491
17511
|
/**
|
|
@@ -17494,7 +17514,7 @@ export declare type TupleWithLengthBetween<T, MinLength extends number, MaxLengt
|
|
|
17494
17514
|
* For example, `TupleWithMaxLength<string, 3>` will allow string tuples of size 0, 1, 2, or 3.
|
|
17495
17515
|
*/
|
|
17496
17516
|
export declare type TupleWithMaxLength<T, MaxLength extends number> = (T[] | readonly T[]) & {
|
|
17497
|
-
length:
|
|
17517
|
+
length: IRange<0, MaxLength>;
|
|
17498
17518
|
};
|
|
17499
17519
|
|
|
17500
17520
|
/**
|
|
@@ -17646,7 +17666,7 @@ export declare function vectorToString(vector: Vector, round?: boolean): string;
|
|
|
17646
17666
|
*/
|
|
17647
17667
|
export declare const VectorZero: Readonly<Vector>;
|
|
17648
17668
|
|
|
17649
|
-
/** An array where each element is paired with a number indicating that
|
|
17669
|
+
/** An array where each element is paired with a number indicating that element's weight. */
|
|
17650
17670
|
export declare type WeightedArray<T> = Array<[T, float]>;
|
|
17651
17671
|
|
|
17652
17672
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
--[[
|
|
2
2
|
|
|
3
|
-
isaacscript-common
|
|
3
|
+
isaacscript-common 37.0.1
|
|
4
4
|
|
|
5
5
|
This is the "isaacscript-common" library, which was created with the IsaacScript tool.
|
|
6
6
|
|
|
@@ -43103,7 +43103,8 @@ function ____exports.getHeartRowLength(self, player)
|
|
|
43103
43103
|
local maxHearts = player:GetMaxHearts()
|
|
43104
43104
|
local soulHearts = player:GetSoulHearts()
|
|
43105
43105
|
local boneHearts = player:GetBoneHearts()
|
|
43106
|
-
local
|
|
43106
|
+
local brokenHearts = player:GetBrokenHearts()
|
|
43107
|
+
local combinedHearts = maxHearts + soulHearts + boneHearts * 2 + brokenHearts * 2
|
|
43107
43108
|
local heartRowLength = combinedHearts / 2
|
|
43108
43109
|
return math.min(heartRowLength, 6)
|
|
43109
43110
|
end
|
|
@@ -54352,35 +54353,39 @@ return ____exports
|
|
|
54352
54353
|
local ____exports = {}
|
|
54353
54354
|
return ____exports
|
|
54354
54355
|
end,
|
|
54355
|
-
["src.types.
|
|
54356
|
+
["src.types.NaturalNumbersLessThan"] = function(...)
|
|
54356
54357
|
local ____exports = {}
|
|
54357
54358
|
return ____exports
|
|
54358
54359
|
end,
|
|
54359
|
-
["src.types.
|
|
54360
|
+
["src.types.ERange"] = function(...)
|
|
54360
54361
|
local ____exports = {}
|
|
54361
54362
|
return ____exports
|
|
54362
54363
|
end,
|
|
54363
|
-
["src.types.
|
|
54364
|
+
["src.types.Expand"] = function(...)
|
|
54364
54365
|
local ____exports = {}
|
|
54365
54366
|
return ____exports
|
|
54366
54367
|
end,
|
|
54367
|
-
["src.types.
|
|
54368
|
+
["src.types.HasFunction"] = function(...)
|
|
54368
54369
|
local ____exports = {}
|
|
54369
54370
|
return ____exports
|
|
54370
54371
|
end,
|
|
54371
|
-
["src.types.
|
|
54372
|
+
["src.types.NaturalNumbersLessThanOrEqualTo"] = function(...)
|
|
54372
54373
|
local ____exports = {}
|
|
54373
54374
|
return ____exports
|
|
54374
54375
|
end,
|
|
54375
|
-
["src.types.
|
|
54376
|
+
["src.types.IRange"] = function(...)
|
|
54376
54377
|
local ____exports = {}
|
|
54377
54378
|
return ____exports
|
|
54378
54379
|
end,
|
|
54379
|
-
["src.types.
|
|
54380
|
+
["src.types.Increment"] = function(...)
|
|
54381
|
+
local ____exports = {}
|
|
54382
|
+
return ____exports
|
|
54383
|
+
end,
|
|
54384
|
+
["src.types.StartsWithLowercase"] = function(...)
|
|
54380
54385
|
local ____exports = {}
|
|
54381
54386
|
return ____exports
|
|
54382
54387
|
end,
|
|
54383
|
-
["src.types.
|
|
54388
|
+
["src.types.LowercaseKeys"] = function(...)
|
|
54384
54389
|
local ____exports = {}
|
|
54385
54390
|
return ____exports
|
|
54386
54391
|
end,
|
|
@@ -54390,6 +54395,10 @@ return ____exports
|
|
|
54390
54395
|
end,
|
|
54391
54396
|
["src.types.Tuple"] = function(...)
|
|
54392
54397
|
local ____exports = {}
|
|
54398
|
+
return ____exports
|
|
54399
|
+
end,
|
|
54400
|
+
["src.types.TupleKeys"] = function(...)
|
|
54401
|
+
local ____exports = {}
|
|
54393
54402
|
return ____exports
|
|
54394
54403
|
end,
|
|
54395
54404
|
["src.types.TupleToUnion"] = function(...)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../src/functions/ui.ts"],"names":[],"mappings":";;;AAKA;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAmBrD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../src/functions/ui.ts"],"names":[],"mappings":";;;AAKA;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAmBrD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,GAAG,CAa3D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,GAAG,CAgCtC;AAED,wBAAgB,wBAAwB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAG3D;AAED,wBAAgB,sBAAsB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAGzD;AAED,wBAAgB,uBAAuB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAK1D;AAED,wBAAgB,gBAAgB,IAAI,KAAK,CAGxC;AAED,wBAAgB,kBAAkB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAGrD;AAED,wBAAgB,eAAe,IAAI,KAAK,CAGvC;AAED,wBAAgB,qBAAqB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAGxD;AAED,wBAAgB,mBAAmB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAEtD;AAED,wBAAgB,oBAAoB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAGvD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,GAAG,CAa1D"}
|
|
@@ -43,7 +43,8 @@ function ____exports.getHeartRowLength(self, player)
|
|
|
43
43
|
local maxHearts = player:GetMaxHearts()
|
|
44
44
|
local soulHearts = player:GetSoulHearts()
|
|
45
45
|
local boneHearts = player:GetBoneHearts()
|
|
46
|
-
local
|
|
46
|
+
local brokenHearts = player:GetBrokenHearts()
|
|
47
|
+
local combinedHearts = maxHearts + soulHearts + boneHearts * 2 + brokenHearts * 2
|
|
47
48
|
local heartRowLength = combinedHearts / 2
|
|
48
49
|
return math.min(heartRowLength, 6)
|
|
49
50
|
end
|
package/dist/src/index.d.ts
CHANGED
|
@@ -157,11 +157,13 @@ export * from "./types/AnyFunction";
|
|
|
157
157
|
export * from "./types/AnyGridEntity";
|
|
158
158
|
export * from "./types/ConversionHeartSubType";
|
|
159
159
|
export * from "./types/Decrement";
|
|
160
|
+
export * from "./types/ERange";
|
|
160
161
|
export * from "./types/EntityID";
|
|
161
162
|
export * from "./types/Expand";
|
|
162
163
|
export * from "./types/FunctionTuple";
|
|
163
164
|
export * from "./types/GridEntityID";
|
|
164
165
|
export * from "./types/HasFunction";
|
|
166
|
+
export * from "./types/IRange";
|
|
165
167
|
export * from "./types/Immutable";
|
|
166
168
|
export * from "./types/Increment";
|
|
167
169
|
export * from "./types/LowercaseKeys";
|
|
@@ -172,13 +174,13 @@ export * from "./types/PickupIndex";
|
|
|
172
174
|
export * from "./types/PlayerIndex";
|
|
173
175
|
export * from "./types/PossibleStatType";
|
|
174
176
|
export * from "./types/PublicInterface";
|
|
175
|
-
export * from "./types/Range";
|
|
176
177
|
export * from "./types/ReadonlyMap";
|
|
177
178
|
export * from "./types/ReadonlySet";
|
|
178
179
|
export * from "./types/StartsWithLowercase";
|
|
179
180
|
export * from "./types/StartsWithUppercase";
|
|
180
181
|
export * from "./types/TSTLClass";
|
|
181
182
|
export * from "./types/Tuple";
|
|
183
|
+
export * from "./types/TupleKeys";
|
|
182
184
|
export * from "./types/TupleToIntersection";
|
|
183
185
|
export * from "./types/TupleToUnion";
|
|
184
186
|
export * from "./types/TupleWithLengthBetween";
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { NaturalNumbersLessThan } from "./NaturalNumbersLessThan";
|
|
2
|
+
/**
|
|
3
|
+
* Helper type to get a range of integers. It is inclusive on the lower end and exclusive on the
|
|
4
|
+
* high end. (The "E" in the type name stands for exclusive.)
|
|
5
|
+
*
|
|
6
|
+
* For example, `ERange<3, 5>` will return `3 | 4`.
|
|
7
|
+
*
|
|
8
|
+
* From:
|
|
9
|
+
* https://stackoverflow.com/questions/39494689/is-it-possible-to-restrict-number-to-a-certain-range
|
|
10
|
+
*/
|
|
11
|
+
export type ERange<Low extends number, High extends number> = Exclude<NaturalNumbersLessThan<High>, NaturalNumbersLessThan<Low>>;
|
|
12
|
+
//# sourceMappingURL=ERange.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ERange.d.ts","sourceRoot":"","sources":["../../../src/types/ERange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,MAAM,MAAM,CAAC,GAAG,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,IAAI,OAAO,CACnE,sBAAsB,CAAC,IAAI,CAAC,EAC5B,sBAAsB,CAAC,GAAG,CAAC,CAC5B,CAAC"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { NaturalNumbersLessThan } from "./NaturalNumbersLessThan";
|
|
2
2
|
import type { NaturalNumbersLessThanOrEqualTo } from "./NaturalNumbersLessThanOrEqualTo";
|
|
3
3
|
/**
|
|
4
|
-
* Helper type to get a range of integers. It is inclusive on both ends.
|
|
4
|
+
* Helper type to get a range of integers. It is inclusive on both ends. (The "I" in the type name
|
|
5
|
+
* stands for inclusive.)
|
|
5
6
|
*
|
|
6
|
-
* For example, `
|
|
7
|
+
* For example, `IRange<3, 5>` will return `3 | 4 | 5`.
|
|
7
8
|
*
|
|
8
9
|
* From:
|
|
9
10
|
* https://stackoverflow.com/questions/39494689/is-it-possible-to-restrict-number-to-a-certain-range
|
|
10
11
|
*/
|
|
11
|
-
export type
|
|
12
|
-
//# sourceMappingURL=
|
|
12
|
+
export type IRange<Low extends number, High extends number> = Exclude<NaturalNumbersLessThanOrEqualTo<High>, NaturalNumbersLessThan<Low>>;
|
|
13
|
+
//# sourceMappingURL=IRange.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IRange.d.ts","sourceRoot":"","sources":["../../../src/types/IRange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAEzF;;;;;;;;GAQG;AACH,MAAM,MAAM,MAAM,CAAC,GAAG,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,IAAI,OAAO,CACnE,+BAA+B,CAAC,IAAI,CAAC,EACrC,sBAAsB,CAAC,GAAG,CAAC,CAC5B,CAAC"}
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* From:
|
|
5
5
|
* https://stackoverflow.com/questions/39494689/is-it-possible-to-restrict-number-to-a-certain-range
|
|
6
6
|
*/
|
|
7
|
-
export type NaturalNumbersLessThanOrEqualTo<N extends number,
|
|
7
|
+
export type NaturalNumbersLessThanOrEqualTo<N extends number, Acc extends number[] = []> = Acc extends [unknown, ...infer Tail] ? Tail["length"] extends N ? Acc[number] : NaturalNumbersLessThanOrEqualTo<N, [...Acc, Acc["length"]]> : NaturalNumbersLessThanOrEqualTo<N, [...Acc, Acc["length"]]>;
|
|
8
8
|
//# sourceMappingURL=NaturalNumbersLessThanOrEqualTo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NaturalNumbersLessThanOrEqualTo.d.ts","sourceRoot":"","sources":["../../../src/types/NaturalNumbersLessThanOrEqualTo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,+BAA+B,CACzC,CAAC,SAAS,MAAM,EAChB,
|
|
1
|
+
{"version":3,"file":"NaturalNumbersLessThanOrEqualTo.d.ts","sourceRoot":"","sources":["../../../src/types/NaturalNumbersLessThanOrEqualTo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,+BAA+B,CACzC,CAAC,SAAS,MAAM,EAChB,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,IACvB,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,GACpC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GACtB,GAAG,CAAC,MAAM,CAAC,GACX,+BAA+B,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAC7D,+BAA+B,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ERange } from "./ERange";
|
|
2
|
+
/**
|
|
3
|
+
* Helper type to get the valid indexes for a tuple. For example, using a tuple of length 3 will
|
|
4
|
+
* return `0 | 1 | 2`.
|
|
5
|
+
*/
|
|
6
|
+
export type TupleKeys<T extends {
|
|
7
|
+
length: number;
|
|
8
|
+
}> = ERange<0, T["length"]>;
|
|
9
|
+
//# sourceMappingURL=TupleKeys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TupleKeys.d.ts","sourceRoot":"","sources":["../../../src/types/TupleKeys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IRange } from "./IRange";
|
|
2
2
|
/**
|
|
3
3
|
* Helper type that validates that a tuple has a length between `MinLength` and `MaxLength`
|
|
4
4
|
* (inclusive on both ends).
|
|
@@ -6,6 +6,6 @@ import type { Range } from "./Range";
|
|
|
6
6
|
* For example, `TupleWithLengthBetween<string, 2, 4>` will allow string tuples of size 2, 3, or 4.
|
|
7
7
|
*/
|
|
8
8
|
export type TupleWithLengthBetween<T, MinLength extends number, MaxLength extends number> = (T[] | readonly T[]) & {
|
|
9
|
-
length:
|
|
9
|
+
length: IRange<MinLength, MaxLength>;
|
|
10
10
|
};
|
|
11
11
|
//# sourceMappingURL=TupleWithLengthBetween.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TupleWithLengthBetween.d.ts","sourceRoot":"","sources":["../../../src/types/TupleWithLengthBetween.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"TupleWithLengthBetween.d.ts","sourceRoot":"","sources":["../../../src/types/TupleWithLengthBetween.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,CAChC,CAAC,EACD,SAAS,SAAS,MAAM,EACxB,SAAS,SAAS,MAAM,IACtB,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;CACtC,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IRange } from "./IRange";
|
|
2
2
|
/**
|
|
3
3
|
* Helper type that validates that a tuple does not have a length greater than N.
|
|
4
4
|
*
|
|
5
5
|
* For example, `TupleWithMaxLength<string, 3>` will allow string tuples of size 0, 1, 2, or 3.
|
|
6
6
|
*/
|
|
7
7
|
export type TupleWithMaxLength<T, MaxLength extends number> = (T[] | readonly T[]) & {
|
|
8
|
-
length:
|
|
8
|
+
length: IRange<0, MaxLength>;
|
|
9
9
|
};
|
|
10
10
|
//# sourceMappingURL=TupleWithMaxLength.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TupleWithMaxLength.d.ts","sourceRoot":"","sources":["../../../src/types/TupleWithMaxLength.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"TupleWithMaxLength.d.ts","sourceRoot":"","sources":["../../../src/types/TupleWithMaxLength.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,EAAE,SAAS,SAAS,MAAM,IAAI,CAC1D,CAAC,EAAE,GACH,SAAS,CAAC,EAAE,CACf,GAAG;IACF,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;CAC9B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="isaac-typescript-definitions" />
|
|
2
|
-
/** An array where each element is paired with a number indicating that
|
|
2
|
+
/** An array where each element is paired with a number indicating that element's weight. */
|
|
3
3
|
export type WeightedArray<T> = Array<[T, float]>;
|
|
4
4
|
//# sourceMappingURL=WeightedArray.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WeightedArray.d.ts","sourceRoot":"","sources":["../../../src/types/WeightedArray.ts"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"WeightedArray.d.ts","sourceRoot":"","sources":["../../../src/types/WeightedArray.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
package/src/functions/ui.ts
CHANGED
|
@@ -42,8 +42,11 @@ export function getHeartRowLength(player: EntityPlayer): int {
|
|
|
42
42
|
const maxHearts = player.GetMaxHearts();
|
|
43
43
|
const soulHearts = player.GetSoulHearts();
|
|
44
44
|
const boneHearts = player.GetBoneHearts();
|
|
45
|
+
const brokenHearts = player.GetBrokenHearts();
|
|
45
46
|
|
|
46
|
-
|
|
47
|
+
// There are no half bone hearts or half broken hearts.
|
|
48
|
+
const combinedHearts =
|
|
49
|
+
maxHearts + soulHearts + boneHearts * 2 + brokenHearts * 2;
|
|
47
50
|
const heartRowLength = combinedHearts / 2;
|
|
48
51
|
|
|
49
52
|
// After 6 hearts, the hearts wrap to a second row.
|
package/src/index.ts
CHANGED
|
@@ -157,11 +157,13 @@ export * from "./types/AnyFunction";
|
|
|
157
157
|
export * from "./types/AnyGridEntity";
|
|
158
158
|
export * from "./types/ConversionHeartSubType";
|
|
159
159
|
export * from "./types/Decrement";
|
|
160
|
+
export * from "./types/ERange";
|
|
160
161
|
export * from "./types/EntityID";
|
|
161
162
|
export * from "./types/Expand";
|
|
162
163
|
export * from "./types/FunctionTuple";
|
|
163
164
|
export * from "./types/GridEntityID";
|
|
164
165
|
export * from "./types/HasFunction";
|
|
166
|
+
export * from "./types/IRange";
|
|
165
167
|
export * from "./types/Immutable";
|
|
166
168
|
export * from "./types/Increment";
|
|
167
169
|
export * from "./types/LowercaseKeys";
|
|
@@ -172,13 +174,13 @@ export * from "./types/PickupIndex";
|
|
|
172
174
|
export * from "./types/PlayerIndex";
|
|
173
175
|
export * from "./types/PossibleStatType";
|
|
174
176
|
export * from "./types/PublicInterface";
|
|
175
|
-
export * from "./types/Range";
|
|
176
177
|
export * from "./types/ReadonlyMap";
|
|
177
178
|
export * from "./types/ReadonlySet";
|
|
178
179
|
export * from "./types/StartsWithLowercase";
|
|
179
180
|
export * from "./types/StartsWithUppercase";
|
|
180
181
|
export * from "./types/TSTLClass";
|
|
181
182
|
export * from "./types/Tuple";
|
|
183
|
+
export * from "./types/TupleKeys";
|
|
182
184
|
export * from "./types/TupleToIntersection";
|
|
183
185
|
export * from "./types/TupleToUnion";
|
|
184
186
|
export * from "./types/TupleWithLengthBetween";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { NaturalNumbersLessThan } from "./NaturalNumbersLessThan";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Helper type to get a range of integers. It is inclusive on the lower end and exclusive on the
|
|
5
|
+
* high end. (The "E" in the type name stands for exclusive.)
|
|
6
|
+
*
|
|
7
|
+
* For example, `ERange<3, 5>` will return `3 | 4`.
|
|
8
|
+
*
|
|
9
|
+
* From:
|
|
10
|
+
* https://stackoverflow.com/questions/39494689/is-it-possible-to-restrict-number-to-a-certain-range
|
|
11
|
+
*/
|
|
12
|
+
export type ERange<Low extends number, High extends number> = Exclude<
|
|
13
|
+
NaturalNumbersLessThan<High>,
|
|
14
|
+
NaturalNumbersLessThan<Low>
|
|
15
|
+
>;
|
|
@@ -2,14 +2,15 @@ import type { NaturalNumbersLessThan } from "./NaturalNumbersLessThan";
|
|
|
2
2
|
import type { NaturalNumbersLessThanOrEqualTo } from "./NaturalNumbersLessThanOrEqualTo";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* Helper type to get a range of integers. It is inclusive on both ends.
|
|
5
|
+
* Helper type to get a range of integers. It is inclusive on both ends. (The "I" in the type name
|
|
6
|
+
* stands for inclusive.)
|
|
6
7
|
*
|
|
7
|
-
* For example, `
|
|
8
|
+
* For example, `IRange<3, 5>` will return `3 | 4 | 5`.
|
|
8
9
|
*
|
|
9
10
|
* From:
|
|
10
11
|
* https://stackoverflow.com/questions/39494689/is-it-possible-to-restrict-number-to-a-certain-range
|
|
11
12
|
*/
|
|
12
|
-
export type
|
|
13
|
+
export type IRange<Low extends number, High extends number> = Exclude<
|
|
13
14
|
NaturalNumbersLessThanOrEqualTo<High>,
|
|
14
15
|
NaturalNumbersLessThan<Low>
|
|
15
16
|
>;
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export type NaturalNumbersLessThanOrEqualTo<
|
|
8
8
|
N extends number,
|
|
9
|
-
|
|
10
|
-
> =
|
|
9
|
+
Acc extends number[] = [],
|
|
10
|
+
> = Acc extends [unknown, ...infer Tail]
|
|
11
11
|
? Tail["length"] extends N
|
|
12
|
-
?
|
|
13
|
-
: NaturalNumbersLessThanOrEqualTo<N, [...
|
|
14
|
-
: NaturalNumbersLessThanOrEqualTo<N, [...
|
|
12
|
+
? Acc[number]
|
|
13
|
+
: NaturalNumbersLessThanOrEqualTo<N, [...Acc, Acc["length"]]>
|
|
14
|
+
: NaturalNumbersLessThanOrEqualTo<N, [...Acc, Acc["length"]]>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IRange } from "./IRange";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Helper type that validates that a tuple has a length between `MinLength` and `MaxLength`
|
|
@@ -11,7 +11,7 @@ export type TupleWithLengthBetween<
|
|
|
11
11
|
MinLength extends number,
|
|
12
12
|
MaxLength extends number,
|
|
13
13
|
> = (T[] | readonly T[]) & {
|
|
14
|
-
length:
|
|
14
|
+
length: IRange<MinLength, MaxLength>;
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
// -----
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IRange } from "./IRange";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Helper type that validates that a tuple does not have a length greater than N.
|
|
@@ -9,7 +9,7 @@ export type TupleWithMaxLength<T, MaxLength extends number> = (
|
|
|
9
9
|
| T[]
|
|
10
10
|
| readonly T[]
|
|
11
11
|
) & {
|
|
12
|
-
length:
|
|
12
|
+
length: IRange<0, MaxLength>;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
// -----
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/** An array where each element is paired with a number indicating that
|
|
1
|
+
/** An array where each element is paired with a number indicating that element's weight. */
|
|
2
2
|
export type WeightedArray<T> = Array<[T, float]>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Range.d.ts","sourceRoot":"","sources":["../../../src/types/Range.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAEzF;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,CAAC,GAAG,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,IAAI,OAAO,CAClE,+BAA+B,CAAC,IAAI,CAAC,EACrC,sBAAsB,CAAC,GAAG,CAAC,CAC5B,CAAC"}
|
|
File without changes
|