Various improvements to the networking
This commit is contained in:
@@ -46,6 +46,7 @@ namespace Flax.Build.Bindings
|
||||
public static event Action<BuildData, IGrouping<string, Module>, StringBuilder> GenerateCppBinaryModuleHeader;
|
||||
public static event Action<BuildData, IGrouping<string, Module>, StringBuilder> GenerateCppBinaryModuleSource;
|
||||
public static event Action<BuildData, ModuleInfo, StringBuilder> GenerateCppModuleSource;
|
||||
public static event Action<BuildData, ApiTypeInfo, StringBuilder> GenerateCppTypeInternalsStatics;
|
||||
public static event Action<BuildData, ApiTypeInfo, StringBuilder> GenerateCppTypeInternals;
|
||||
public static event Action<BuildData, ApiTypeInfo, StringBuilder> GenerateCppTypeInitRuntime;
|
||||
public static event Action<BuildData, VirtualClassInfo, FunctionInfo, int, int, StringBuilder> GenerateCppScriptWrapperFunction;
|
||||
@@ -1553,6 +1554,7 @@ namespace Flax.Build.Bindings
|
||||
|
||||
if (classInfo.IsAutoSerialization)
|
||||
GenerateCppAutoSerialization(buildData, contents, moduleInfo, classInfo, classTypeNameNative);
|
||||
GenerateCppTypeInternalsStatics?.Invoke(buildData, classInfo, contents);
|
||||
|
||||
contents.AppendLine();
|
||||
contents.AppendFormat("class {0}Internal", classTypeNameInternal).AppendLine();
|
||||
@@ -1868,6 +1870,7 @@ namespace Flax.Build.Bindings
|
||||
|
||||
if (structureInfo.IsAutoSerialization)
|
||||
GenerateCppAutoSerialization(buildData, contents, moduleInfo, structureInfo, structureTypeNameNative);
|
||||
GenerateCppTypeInternalsStatics?.Invoke(buildData, structureInfo, contents);
|
||||
|
||||
contents.AppendLine();
|
||||
contents.AppendFormat("class {0}Internal", structureTypeNameInternal).AppendLine();
|
||||
@@ -2097,6 +2100,8 @@ namespace Flax.Build.Bindings
|
||||
var interfaceTypeNameManaged = interfaceInfo.FullNameManaged;
|
||||
var interfaceTypeNameInternal = interfaceInfo.FullNameNativeInternal;
|
||||
|
||||
GenerateCppTypeInternalsStatics?.Invoke(buildData, interfaceInfo, contents);
|
||||
|
||||
// Wrapper interface implement to invoke scripting if inherited in C# or VS
|
||||
contents.AppendLine();
|
||||
contents.AppendFormat("class {0}Wrapper : public ", interfaceTypeNameInternal).Append(interfaceTypeNameNative).AppendLine();
|
||||
|
||||
@@ -90,20 +90,20 @@ namespace Flax.Build.Plugins
|
||||
|
||||
private void OnParseMemberTag(ref bool valid, BindingsGenerator.TagParameter tag, MemberInfo memberInfo)
|
||||
{
|
||||
if (tag.Tag == NetworkReplicated)
|
||||
if (string.Equals(tag.Tag, NetworkReplicated, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
// Mark member as replicated
|
||||
valid = true;
|
||||
memberInfo.SetTag(NetworkReplicated, string.Empty);
|
||||
}
|
||||
else if (tag.Tag == NetworkRpc)
|
||||
else if (string.Equals(tag.Tag, NetworkRpc, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
// Mark member as rpc
|
||||
valid = true;
|
||||
memberInfo.SetTag(NetworkRpc, tag.Value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void OnGenerateCppTypeInternals(Builder.BuildData buildData, ApiTypeInfo typeInfo, StringBuilder contents)
|
||||
{
|
||||
// Skip modules that don't use networking
|
||||
@@ -466,6 +466,10 @@ namespace Flax.Build.Plugins
|
||||
|
||||
private void OnBuildDotNetAssembly(TaskGraph graph, Builder.BuildData buildData, NativeCpp.BuildOptions buildOptions, Task buildTask, IGrouping<string, Module> binaryModule)
|
||||
{
|
||||
// Skip FlaxEngine.dll
|
||||
if (string.Equals(binaryModule.Key, "FlaxEngine", StringComparison.Ordinal))
|
||||
return;
|
||||
|
||||
// Skip assemblies not using netowrking
|
||||
if (!binaryModule.Any(module => module.Tags.ContainsKey(Network)))
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user