UNPKG

isaacscript-common

Version:

Helper functions and features for IsaacScript mods.

39 lines (38 loc) 1.42 kB
"use strict"; 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; }