Skip to content

Commit 77cdd05

Browse files
committed
BP library alias functions for ScriptStructs
1 parent 2ac84df commit 77cdd05

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

Plugins/UnrealJS/Source/V8/Private/JavascriptContext_Private.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1560,6 +1560,36 @@ class FJavascriptContextImplementation : public FJavascriptContext
15601560
}
15611561
}
15621562

1563+
for (auto it = Environment->ScriptStructToFunctionTemplateMap.CreateConstIterator(); it; ++it)
1564+
{
1565+
const UStruct* StructToExport = it.Key();
1566+
1567+
auto ClassName = FV8Config::Safeify(StructToExport->GetName());
1568+
1569+
TArray<UFunction*> Functions;
1570+
Environment->BlueprintFunctionLibraryMapping.MultiFind(StructToExport, Functions);
1571+
1572+
auto conditional_emit_alias = [&](UFunction* Function) {
1573+
auto Alias = FV8Config::GetAlias(Function);
1574+
if (Alias.Len() > 0)
1575+
{
1576+
w.push(ClassName);
1577+
w.push(".prototype.");
1578+
w.push(Alias);
1579+
w.push(" = ");
1580+
w.push(ClassName);
1581+
w.push(".prototype.");
1582+
w.push(FV8Config::Safeify(Function->GetName()));
1583+
w.push(";\n");
1584+
}
1585+
};
1586+
1587+
for (auto Function : Functions)
1588+
{
1589+
conditional_emit_alias(Function);
1590+
}
1591+
}
1592+
15631593
return FFileHelper::SaveStringToFile(*w, *Filename);
15641594
#else
15651595
return false;

0 commit comments

Comments
 (0)