export class Header { static create( className:string, extendingClassName:string, headerDefine:string, protectedMembers:string, publicMembers:string, includes:string, forwardDeclarations:string ) { let cppHeader = ` /* ${className}.h */ #ifndef ${headerDefine} #define ${headerDefine} ${includes} ${forwardDeclarations} class ${className} : public ${extendingClassName} { GDCLASS( ${className}, ${extendingClassName} ); protected: static void _bind_methods(); ${protectedMembers} public: ${publicMembers} // Constructor ${className}(); // Destructor ~${className}(); }; #endif // ${headerDefine} ` return cppHeader; } }