isaacscript-common
Version:
Helper functions and features for IsaacScript mods.
39 lines (38 loc) • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.initModFeatures = initModFeatures;
/**
* Helper function to instantiate an array of mod features all at once. Use this function if your
* mod uses the pattern of expressing mod features as `ModFeature` classes.
*
* If your feature classes have `v` variables, then this function will successfully register them
* with the save data manager.
*
* For example:
*
* ```ts
* const MOD_FEATURES = [
* MyFeature1,
* MyFeature2,
* MyFeature3,
* ] as const;
* initModFeatures(mod, MOD_FEATURES);
* ```
*
* @param mod The upgraded mod to use.
* @param modFeatures An array of the feature classes that you have in your mod.
* @param init Optional. Whether to automatically add the callbacks on the feature. Defaults to
* true.
* @returns An array of the instantiated features in the same order that the constructors were
* passed in. (In most cases, you probably won't need the returned array.)
*/
function initModFeatures(mod, modFeatures, init = true) {
const instantiatedModFeatures = [];
for (const modFeature of modFeatures) {
// eslint-disable-next-line new-cap
const instantiatedModFeature = new modFeature(mod, false);
instantiatedModFeature.init(init);
instantiatedModFeatures.push(instantiatedModFeature);
}
return instantiatedModFeatures;
}