Files
CodenameEngine/source/funkin/macros/ScriptsMacro.hx
T
2023-03-20 20:34:50 +01:00

55 lines
1.5 KiB
Haxe

package funkin.macros;
#if macro
import haxe.macro.Context;
import haxe.macro.Compiler;
import haxe.macro.Expr;
/**
* Macros containing additional help functions to expand HScript capabilities.
*/
class ScriptsMacro {
public static function addAdditionalClasses() {
Compiler.include("flixel");
Compiler.include("away3d");
Compiler.include("flx3d");
#if (sys && !web)
Compiler.include("sys");
#end
Compiler.include("DateTools");
Compiler.include("EReg");
Compiler.include("Lambda");
Compiler.include("StringBuf");
Compiler.include("haxe.crypto");
Compiler.include("haxe.display");
Compiler.include("haxe.exceptions");
#if !web
Compiler.include("haxe.extern");
#end
Compiler.include("scripting");
// FOR ABSTRACTS
Compiler.addGlobalMetadata('haxe.xml', '@:build(hscript.UsingHandler.build())');
}
public static function build():Array<Field> {
var fields:Array<Field> = Context.getBuildFields();
for(f in fields) {
switch(f.kind) {
case FFun(func):
if (f.access == null) f.access = [];
if (f.access.contains(AInline))
f.access.remove(AInline);
f.access.push(ADynamic);
default:
// do nothing u piece of shit
}
}
return fields;
}
}
#end