isaacscript-common 17.6.0 → 17.7.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.d.ts +19 -0
- package/dist/isaacscript-common.lua +9 -1
- package/dist/src/classes/ModFeature.d.ts +11 -0
- package/dist/src/classes/ModFeature.d.ts.map +1 -1
- package/dist/src/classes/ModFeature.lua +8 -0
- package/dist/src/classes/features/other/ModdedElementSets.d.ts +8 -0
- package/dist/src/classes/features/other/ModdedElementSets.d.ts.map +1 -1
- package/dist/src/functions/decorators.d.ts +2 -2
- package/dist/src/functions/decorators.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/classes/ModFeature.ts +21 -0
- package/src/classes/features/other/ModdedElementSets.ts +8 -0
- package/src/functions/decorators.ts +4 -2
package/dist/index.d.ts
CHANGED
|
@@ -10883,12 +10883,18 @@ declare class ModdedElementSets extends Feature {
|
|
|
10883
10883
|
* - any runes
|
|
10884
10884
|
* - any objects like Dice Shard
|
|
10885
10885
|
*
|
|
10886
|
+
* In order to use this function, you must upgrade your mod with `ISCFeature.MODDED_ELEMENT_SETS`.
|
|
10887
|
+
*
|
|
10886
10888
|
* @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
|
|
10887
10889
|
* the `RNG.Next` method will be called. Default is `getRandomSeed()`.
|
|
10888
10890
|
* @param exceptions Optional. An array of cards to not select.
|
|
10889
10891
|
*/
|
|
10890
10892
|
getRandomCard(seedOrRNG?: Seed | RNG, exceptions?: CardType[]): CardType;
|
|
10891
10893
|
/**
|
|
10894
|
+
* Helper function to get a random card type that matches the provided `ItemConfigCardType`.
|
|
10895
|
+
*
|
|
10896
|
+
* In order to use this function, you must upgrade your mod with `ISCFeature.MODDED_ELEMENT_SETS`.
|
|
10897
|
+
*
|
|
10892
10898
|
* @param itemConfigCardType The item config card type that represents the pool of cards to select
|
|
10893
10899
|
* from.
|
|
10894
10900
|
* @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
|
|
@@ -10900,6 +10906,8 @@ declare class ModdedElementSets extends Feature {
|
|
|
10900
10906
|
* Has an equal chance of returning any rune (e.g. Rune of Hagalaz, Blank Rune, Black Rune, Soul
|
|
10901
10907
|
* of Isaac, etc.). This will never return a Rune Shard.
|
|
10902
10908
|
*
|
|
10909
|
+
* In order to use this function, you must upgrade your mod with `ISCFeature.MODDED_ELEMENT_SETS`.
|
|
10910
|
+
*
|
|
10903
10911
|
* @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
|
|
10904
10912
|
* the `RNG.Next` method will be called. Default is `getRandomSeed()`.
|
|
10905
10913
|
* @param exceptions Optional. An array of runes to not select.
|
|
@@ -11058,6 +11066,17 @@ declare class ModdedElementSets extends Feature {
|
|
|
11058
11066
|
*/
|
|
11059
11067
|
export declare class ModFeature {
|
|
11060
11068
|
private mod;
|
|
11069
|
+
/**
|
|
11070
|
+
* An optional function that allows for conditional callback execution. If specified, any class
|
|
11071
|
+
* method that is annotated with a `@Callback` or `@CallbackCustom` decorator will only be fired
|
|
11072
|
+
* if the executed conditional function returns true.
|
|
11073
|
+
*
|
|
11074
|
+
* This property is used to easily turn entire mod features on and off (rather than repeating
|
|
11075
|
+
* conditional logic and early returning at the beginning of every callback function).
|
|
11076
|
+
*
|
|
11077
|
+
* By default, this is set to null. Override this property in your class if you need to use it.
|
|
11078
|
+
*/
|
|
11079
|
+
protected callbackConditionalFunc: (() => boolean) | null;
|
|
11061
11080
|
/**
|
|
11062
11081
|
* Whether or not the feature has registered its callbacks yet (and submitted its variables to the
|
|
11063
11082
|
* save data manager, if any).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
--[[
|
|
2
2
|
|
|
3
|
-
isaacscript-common 17.
|
|
3
|
+
isaacscript-common 17.7.1
|
|
4
4
|
|
|
5
5
|
This is the "isaacscript-common" library, which was created with the IsaacScript tool.
|
|
6
6
|
|
|
@@ -49212,6 +49212,13 @@ function initDecoratedCallbacks(self, modFeature, constructor, tstlClassName, va
|
|
|
49212
49212
|
end
|
|
49213
49213
|
function addCallback(self, modFeature, modFeatureConstructor, mod, modCallback, callback, parameters, vanilla)
|
|
49214
49214
|
local function wrappedCallback(____, ...)
|
|
49215
|
+
local conditionalFunc = modFeature.callbackConditionalFunc
|
|
49216
|
+
if conditionalFunc ~= nil then
|
|
49217
|
+
local shouldRun = conditionalFunc(nil)
|
|
49218
|
+
if not shouldRun then
|
|
49219
|
+
return nil
|
|
49220
|
+
end
|
|
49221
|
+
end
|
|
49215
49222
|
local castedCallback = callback
|
|
49216
49223
|
return castedCallback(modFeature, ...)
|
|
49217
49224
|
end
|
|
@@ -49300,6 +49307,7 @@ function ModFeature.prototype.____constructor(self, mod, init)
|
|
|
49300
49307
|
if init == nil then
|
|
49301
49308
|
init = true
|
|
49302
49309
|
end
|
|
49310
|
+
self.callbackConditionalFunc = nil
|
|
49303
49311
|
self.initialized = false
|
|
49304
49312
|
self.mod = mod
|
|
49305
49313
|
if init then
|
|
@@ -36,6 +36,17 @@ export declare const ADD_CALLBACK_CUSTOM_ARGS_KEY = "__addCallbackCustomArgs";
|
|
|
36
36
|
*/
|
|
37
37
|
export declare class ModFeature {
|
|
38
38
|
private mod;
|
|
39
|
+
/**
|
|
40
|
+
* An optional function that allows for conditional callback execution. If specified, any class
|
|
41
|
+
* method that is annotated with a `@Callback` or `@CallbackCustom` decorator will only be fired
|
|
42
|
+
* if the executed conditional function returns true.
|
|
43
|
+
*
|
|
44
|
+
* This property is used to easily turn entire mod features on and off (rather than repeating
|
|
45
|
+
* conditional logic and early returning at the beginning of every callback function).
|
|
46
|
+
*
|
|
47
|
+
* By default, this is set to null. Override this property in your class if you need to use it.
|
|
48
|
+
*/
|
|
49
|
+
protected callbackConditionalFunc: (() => boolean) | null;
|
|
39
50
|
/**
|
|
40
51
|
* Whether or not the feature has registered its callbacks yet (and submitted its variables to the
|
|
41
52
|
* save data manager, if any).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModFeature.d.ts","sourceRoot":"","sources":["../../../src/classes/ModFeature.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AAatE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAkB;IAE7B;;;;;;OAMG;IACI,WAAW,UAAS;gBAEf,GAAG,EAAE,eAAe,EAAE,IAAI,UAAO;IAQ7C;;;;;OAKG;IACI,IAAI,CAAC,IAAI,UAAO,GAAG,IAAI;IAqB9B;;;;;;OAMG;IACI,MAAM,IAAI,IAAI;CAGtB"}
|
|
1
|
+
{"version":3,"file":"ModFeature.d.ts","sourceRoot":"","sources":["../../../src/classes/ModFeature.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,4BAA4B,4BAA4B,CAAC;AAatE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAkB;IAE7B;;;;;;;;;OASG;IACH,SAAS,CAAC,uBAAuB,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,IAAI,CAAQ;IAEjE;;;;;;OAMG;IACI,WAAW,UAAS;gBAEf,GAAG,EAAE,eAAe,EAAE,IAAI,UAAO;IAQ7C;;;;;OAKG;IACI,IAAI,CAAC,IAAI,UAAO,GAAG,IAAI;IAqB9B;;;;;;OAMG;IACI,MAAM,IAAI,IAAI;CAGtB"}
|
|
@@ -63,6 +63,13 @@ function initDecoratedCallbacks(self, modFeature, constructor, tstlClassName, va
|
|
|
63
63
|
end
|
|
64
64
|
function addCallback(self, modFeature, modFeatureConstructor, mod, modCallback, callback, parameters, vanilla)
|
|
65
65
|
local function wrappedCallback(____, ...)
|
|
66
|
+
local conditionalFunc = modFeature.callbackConditionalFunc
|
|
67
|
+
if conditionalFunc ~= nil then
|
|
68
|
+
local shouldRun = conditionalFunc(nil)
|
|
69
|
+
if not shouldRun then
|
|
70
|
+
return nil
|
|
71
|
+
end
|
|
72
|
+
end
|
|
66
73
|
local castedCallback = callback
|
|
67
74
|
return castedCallback(modFeature, ...)
|
|
68
75
|
end
|
|
@@ -182,6 +189,7 @@ function ModFeature.prototype.____constructor(self, mod, init)
|
|
|
182
189
|
if init == nil then
|
|
183
190
|
init = true
|
|
184
191
|
end
|
|
192
|
+
self.callbackConditionalFunc = nil
|
|
185
193
|
self.initialized = false
|
|
186
194
|
self.mod = mod
|
|
187
195
|
if init then
|
|
@@ -348,12 +348,18 @@ export declare class ModdedElementSets extends Feature {
|
|
|
348
348
|
* - any runes
|
|
349
349
|
* - any objects like Dice Shard
|
|
350
350
|
*
|
|
351
|
+
* In order to use this function, you must upgrade your mod with `ISCFeature.MODDED_ELEMENT_SETS`.
|
|
352
|
+
*
|
|
351
353
|
* @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
|
|
352
354
|
* the `RNG.Next` method will be called. Default is `getRandomSeed()`.
|
|
353
355
|
* @param exceptions Optional. An array of cards to not select.
|
|
354
356
|
*/
|
|
355
357
|
getRandomCard(seedOrRNG?: Seed | RNG, exceptions?: CardType[]): CardType;
|
|
356
358
|
/**
|
|
359
|
+
* Helper function to get a random card type that matches the provided `ItemConfigCardType`.
|
|
360
|
+
*
|
|
361
|
+
* In order to use this function, you must upgrade your mod with `ISCFeature.MODDED_ELEMENT_SETS`.
|
|
362
|
+
*
|
|
357
363
|
* @param itemConfigCardType The item config card type that represents the pool of cards to select
|
|
358
364
|
* from.
|
|
359
365
|
* @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
|
|
@@ -365,6 +371,8 @@ export declare class ModdedElementSets extends Feature {
|
|
|
365
371
|
* Has an equal chance of returning any rune (e.g. Rune of Hagalaz, Blank Rune, Black Rune, Soul
|
|
366
372
|
* of Isaac, etc.). This will never return a Rune Shard.
|
|
367
373
|
*
|
|
374
|
+
* In order to use this function, you must upgrade your mod with `ISCFeature.MODDED_ELEMENT_SETS`.
|
|
375
|
+
*
|
|
368
376
|
* @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
|
|
369
377
|
* the `RNG.Next` method will be called. Default is `getRandomSeed()`.
|
|
370
378
|
* @param exceptions Optional. An array of runes to not select.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModdedElementSets.d.ts","sourceRoot":"","sources":["../../../../../src/classes/features/other/ModdedElementSets.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ModdedElementSets.d.ts","sourceRoot":"","sources":["../../../../../src/classes/features/other/ModdedElementSets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../src/functions/decorators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAGL,UAAU,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../src/functions/decorators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAGL,UAAU,EACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD;;;;;GAKG;AAEH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAC5C,WAAW,EAAE,CAAC,EACd,GAAG,YAAY,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,kGAIvC,MAAM,+CAElB,IAAI,CA+BR;AAED;;;;;GAKG;AAEH,wBAAgB,cAAc,CAAC,CAAC,SAAS,iBAAiB,EACxD,iBAAiB,EAAE,CAAC,EACpB,GAAG,YAAY,EAAE,WAAW,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,wGAO7C,MAAM,+CAElB,IAAI,CAiCR"}
|
package/package.json
CHANGED
|
@@ -62,6 +62,18 @@ type ModFeatureConstructor = TSTLClassMetatable["constructor"] & {
|
|
|
62
62
|
export class ModFeature {
|
|
63
63
|
private mod: ModUpgradedBase;
|
|
64
64
|
|
|
65
|
+
/**
|
|
66
|
+
* An optional function that allows for conditional callback execution. If specified, any class
|
|
67
|
+
* method that is annotated with a `@Callback` or `@CallbackCustom` decorator will only be fired
|
|
68
|
+
* if the executed conditional function returns true.
|
|
69
|
+
*
|
|
70
|
+
* This property is used to easily turn entire mod features on and off (rather than repeating
|
|
71
|
+
* conditional logic and early returning at the beginning of every callback function).
|
|
72
|
+
*
|
|
73
|
+
* By default, this is set to null. Override this property in your class if you need to use it.
|
|
74
|
+
*/
|
|
75
|
+
protected callbackConditionalFunc: (() => boolean) | null = null;
|
|
76
|
+
|
|
65
77
|
/**
|
|
66
78
|
* Whether or not the feature has registered its callbacks yet (and submitted its variables to the
|
|
67
79
|
* save data manager, if any).
|
|
@@ -195,6 +207,15 @@ function addCallback(
|
|
|
195
207
|
// We need to wrap the callback in a new function so that we can explicitly pass the class as the
|
|
196
208
|
// first argument. (Otherwise, the method will not be able to properly access `this`.
|
|
197
209
|
const wrappedCallback = (...callbackArgs: unknown[]) => {
|
|
210
|
+
// eslint-disable-next-line @typescript-eslint/dot-notation
|
|
211
|
+
const conditionalFunc = modFeature["callbackConditionalFunc"];
|
|
212
|
+
if (conditionalFunc !== null) {
|
|
213
|
+
const shouldRun = conditionalFunc();
|
|
214
|
+
if (!shouldRun) {
|
|
215
|
+
return undefined;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
198
219
|
const castedCallback = callback as (
|
|
199
220
|
this: void,
|
|
200
221
|
...args: unknown[]
|
|
@@ -1007,6 +1007,8 @@ export class ModdedElementSets extends Feature {
|
|
|
1007
1007
|
* - any runes
|
|
1008
1008
|
* - any objects like Dice Shard
|
|
1009
1009
|
*
|
|
1010
|
+
* In order to use this function, you must upgrade your mod with `ISCFeature.MODDED_ELEMENT_SETS`.
|
|
1011
|
+
*
|
|
1010
1012
|
* @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
|
|
1011
1013
|
* the `RNG.Next` method will be called. Default is `getRandomSeed()`.
|
|
1012
1014
|
* @param exceptions Optional. An array of cards to not select.
|
|
@@ -1020,6 +1022,10 @@ export class ModdedElementSets extends Feature {
|
|
|
1020
1022
|
}
|
|
1021
1023
|
|
|
1022
1024
|
/**
|
|
1025
|
+
* Helper function to get a random card type that matches the provided `ItemConfigCardType`.
|
|
1026
|
+
*
|
|
1027
|
+
* In order to use this function, you must upgrade your mod with `ISCFeature.MODDED_ELEMENT_SETS`.
|
|
1028
|
+
*
|
|
1023
1029
|
* @param itemConfigCardType The item config card type that represents the pool of cards to select
|
|
1024
1030
|
* from.
|
|
1025
1031
|
* @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
|
|
@@ -1040,6 +1046,8 @@ export class ModdedElementSets extends Feature {
|
|
|
1040
1046
|
* Has an equal chance of returning any rune (e.g. Rune of Hagalaz, Blank Rune, Black Rune, Soul
|
|
1041
1047
|
* of Isaac, etc.). This will never return a Rune Shard.
|
|
1042
1048
|
*
|
|
1049
|
+
* In order to use this function, you must upgrade your mod with `ISCFeature.MODDED_ELEMENT_SETS`.
|
|
1050
|
+
*
|
|
1043
1051
|
* @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
|
|
1044
1052
|
* the `RNG.Next` method will be called. Default is `getRandomSeed()`.
|
|
1045
1053
|
* @param exceptions Optional. An array of runes to not select.
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* automatically register callbacks.
|
|
4
4
|
*
|
|
5
5
|
* Currently, there are two decorators:
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
6
|
+
* - `@Callback`
|
|
7
|
+
* - `@CallbackCustom`
|
|
8
8
|
*
|
|
9
9
|
* For example:
|
|
10
10
|
*
|
|
@@ -37,6 +37,7 @@ import { getTSTLClassName } from "./tstlClass";
|
|
|
37
37
|
*
|
|
38
38
|
* @ignore
|
|
39
39
|
*/
|
|
40
|
+
// We tell TypeDoc to ignore this function because it generates a bunch of spam.
|
|
40
41
|
export function Callback<T extends ModCallback>(
|
|
41
42
|
modCallback: T,
|
|
42
43
|
...optionalArgs: AllButFirst<AddCallbackParameters[T]>
|
|
@@ -84,6 +85,7 @@ export function Callback<T extends ModCallback>(
|
|
|
84
85
|
*
|
|
85
86
|
* @ignore
|
|
86
87
|
*/
|
|
88
|
+
// We tell TypeDoc to ignore this function because it generates a bunch of spam.
|
|
87
89
|
export function CallbackCustom<T extends ModCallbackCustom>(
|
|
88
90
|
modCallbackCustom: T,
|
|
89
91
|
...optionalArgs: AllButFirst<AddCallbackParametersCustom[T]>
|