Fix using nested types in scripting api
This commit is contained in:
@@ -261,7 +261,10 @@ namespace Flax.Build.Bindings
|
||||
{
|
||||
if (typeInfo == null)
|
||||
return null;
|
||||
if (buildData.TypeCache.TryGetValue(typeInfo, out var result))
|
||||
var result = FindApiTypeInfoInner(typeInfo, caller);
|
||||
if (result != null)
|
||||
return result;
|
||||
if (buildData.TypeCache.TryGetValue(typeInfo, out result))
|
||||
return result;
|
||||
|
||||
// Find across in-build types
|
||||
|
||||
@@ -473,10 +473,11 @@ namespace Flax.Build.Bindings
|
||||
// Array
|
||||
if (typeInfo.Type == "Array" && typeInfo.GenericArgs != null)
|
||||
{
|
||||
var T = typeInfo.GenericArgs[0].GetFullNameNative(buildData, caller);
|
||||
type = "MonoArray*";
|
||||
if (typeInfo.GenericArgs.Count != 1)
|
||||
return "MUtils::ToArray<" + typeInfo.GenericArgs[0] + ", " + typeInfo.GenericArgs[1] + ">({0})";
|
||||
return "MUtils::ToArray<" + typeInfo.GenericArgs[0] + ">({0})";
|
||||
return "MUtils::ToArray<" + T + ", " + typeInfo.GenericArgs[1] + ">({0})";
|
||||
return "MUtils::ToArray<" + T + ">({0})";
|
||||
}
|
||||
|
||||
// Span
|
||||
|
||||
@@ -80,35 +80,55 @@ namespace Flax.Build.Bindings
|
||||
GenericArgs = BindingsGenerator.Read(reader, GenericArgs);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
public string GetFullNameNative(Builder.BuildData buildData, ApiTypeInfo caller)
|
||||
{
|
||||
var sb = new StringBuilder(64);
|
||||
var type = BindingsGenerator.FindApiTypeInfo(buildData, this, caller);
|
||||
if (type == null)
|
||||
return ToString();
|
||||
|
||||
var sb = new StringBuilder(64);
|
||||
if (IsConst)
|
||||
sb.Append("const ");
|
||||
|
||||
sb.Append(Type);
|
||||
|
||||
sb.Append(type.FullNameNative);
|
||||
if (GenericArgs != null)
|
||||
{
|
||||
sb.Append('<');
|
||||
|
||||
for (var i = 0; i < GenericArgs.Count; i++)
|
||||
{
|
||||
if (i != 0)
|
||||
sb.Append(", ");
|
||||
sb.Append(GenericArgs[i]);
|
||||
}
|
||||
|
||||
sb.Append('>');
|
||||
}
|
||||
|
||||
if (IsRef)
|
||||
sb.Append('&');
|
||||
|
||||
if (IsPtr)
|
||||
sb.Append('*');
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
var sb = new StringBuilder(64);
|
||||
if (IsConst)
|
||||
sb.Append("const ");
|
||||
sb.Append(Type);
|
||||
if (GenericArgs != null)
|
||||
{
|
||||
sb.Append('<');
|
||||
for (var i = 0; i < GenericArgs.Count; i++)
|
||||
{
|
||||
if (i != 0)
|
||||
sb.Append(", ");
|
||||
sb.Append(GenericArgs[i]);
|
||||
}
|
||||
sb.Append('>');
|
||||
}
|
||||
if (IsRef)
|
||||
sb.Append('&');
|
||||
if (IsPtr)
|
||||
sb.Append('*');
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user