diff --git a/src/js/mods/mod_interface.js b/src/js/mods/mod_interface.js index 195c005b..778d164f 100644 --- a/src/js/mods/mod_interface.js +++ b/src/js/mods/mod_interface.js @@ -483,6 +483,22 @@ export class ModInterface { this.extendObject(classHandle.prototype, extender); } + /** + * Creates a new class that extends another class (DOES NOT OVERWRITE) + * + * @template {constructable} C + * @param {C} classHandle + * @param {bindThis<(...args: ConstructorParameters) => any, InstanceType>} constructor + */ + extendConstructor(classHandle, constructor) { + return function (...args) { + const obj = new classHandle(); + //@ts-ignore + constructor.apply(obj, args); + return obj; + }; + } + /** * * @param {string} id