mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-04 03:39:55 +00:00
cleanup
This commit is contained in:
parent
c94e85af64
commit
417433f59b
@ -7,7 +7,6 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
|
||||
namespace QNetWeaver
|
||||
{
|
||||
@ -209,13 +208,10 @@ namespace QNetWeaver
|
||||
{
|
||||
throw new Exception("Assembly resolver doesn't implement AddSearchDirectory method.");
|
||||
}
|
||||
this._addSearchDirectory = (Helpers.AddSearchDirectoryHelper.AddSearchDirectoryDelegate)Delegate.CreateDelegate(typeof(Helpers.AddSearchDirectoryHelper.AddSearchDirectoryDelegate), assemblyResolver, method);
|
||||
_addSearchDirectory = (Helpers.AddSearchDirectoryHelper.AddSearchDirectoryDelegate)Delegate.CreateDelegate(typeof(Helpers.AddSearchDirectoryHelper.AddSearchDirectoryDelegate), assemblyResolver, method);
|
||||
}
|
||||
|
||||
public void AddSearchDirectory(string directory)
|
||||
{
|
||||
this._addSearchDirectory(directory);
|
||||
}
|
||||
public void AddSearchDirectory(string directory) => _addSearchDirectory(directory);
|
||||
|
||||
private readonly Helpers.AddSearchDirectoryHelper.AddSearchDirectoryDelegate _addSearchDirectory;
|
||||
|
||||
|
@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace QNetWeaver
|
||||
{
|
||||
|
@ -1,9 +1,5 @@
|
||||
using Mono.Cecil;
|
||||
using Mono.Cecil.Cil;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace QNetWeaver
|
||||
{
|
||||
@ -12,43 +8,43 @@ namespace QNetWeaver
|
||||
public MessageClassProcessor(TypeDefinition td)
|
||||
{
|
||||
Weaver.DLog(td, "MessageClassProcessor for " + td.Name, new object[0]);
|
||||
this.m_td = td;
|
||||
m_td = td;
|
||||
}
|
||||
|
||||
public void Process()
|
||||
{
|
||||
Weaver.DLog(this.m_td, "MessageClassProcessor Start", new object[0]);
|
||||
Weaver.DLog(m_td, "MessageClassProcessor Start", new object[0]);
|
||||
Weaver.ResetRecursionCount();
|
||||
this.GenerateSerialization();
|
||||
GenerateSerialization();
|
||||
if (!Weaver.fail)
|
||||
{
|
||||
this.GenerateDeSerialization();
|
||||
Weaver.DLog(this.m_td, "MessageClassProcessor Done", new object[0]);
|
||||
GenerateDeSerialization();
|
||||
Weaver.DLog(m_td, "MessageClassProcessor Done", new object[0]);
|
||||
}
|
||||
}
|
||||
|
||||
private void GenerateSerialization()
|
||||
{
|
||||
Weaver.DLog(this.m_td, " MessageClass GenerateSerialization", new object[0]);
|
||||
foreach (var methodDefinition in this.m_td.Methods)
|
||||
Weaver.DLog(m_td, " MessageClass GenerateSerialization", new object[0]);
|
||||
foreach (var methodDefinition in m_td.Methods)
|
||||
{
|
||||
if (methodDefinition.Name == "Serialize")
|
||||
{
|
||||
Weaver.DLog(this.m_td, " Abort - is Serialize", new object[0]);
|
||||
Weaver.DLog(m_td, " Abort - is Serialize", new object[0]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (this.m_td.Fields.Count != 0)
|
||||
if (m_td.Fields.Count != 0)
|
||||
{
|
||||
foreach (var fieldDefinition in this.m_td.Fields)
|
||||
foreach (var fieldDefinition in m_td.Fields)
|
||||
{
|
||||
if (fieldDefinition.FieldType.FullName == this.m_td.FullName)
|
||||
if (fieldDefinition.FieldType.FullName == m_td.FullName)
|
||||
{
|
||||
Weaver.fail = true;
|
||||
Log.Error(string.Concat(new string[]
|
||||
{
|
||||
"GenerateSerialization for ",
|
||||
this.m_td.Name,
|
||||
m_td.Name,
|
||||
" [",
|
||||
fieldDefinition.FullName,
|
||||
"]. [MessageBase] member cannot be self referencing."
|
||||
@ -59,7 +55,7 @@ namespace QNetWeaver
|
||||
var methodDefinition2 = new MethodDefinition("Serialize", MethodAttributes.FamANDAssem | MethodAttributes.Family | MethodAttributes.Virtual | MethodAttributes.HideBySig, Weaver.voidType);
|
||||
methodDefinition2.Parameters.Add(new ParameterDefinition("writer", ParameterAttributes.None, Weaver.scriptDef.MainModule.ImportReference(Weaver.NetworkWriterType)));
|
||||
var ilprocessor = methodDefinition2.Body.GetILProcessor();
|
||||
foreach (var fieldDefinition2 in this.m_td.Fields)
|
||||
foreach (var fieldDefinition2 in m_td.Fields)
|
||||
{
|
||||
if (!fieldDefinition2.IsStatic && !fieldDefinition2.IsPrivate && !fieldDefinition2.IsSpecialName)
|
||||
{
|
||||
@ -69,7 +65,7 @@ namespace QNetWeaver
|
||||
Log.Error(string.Concat(new object[]
|
||||
{
|
||||
"GenerateSerialization for ",
|
||||
this.m_td.Name,
|
||||
m_td.Name,
|
||||
" [",
|
||||
fieldDefinition2.FieldType,
|
||||
"/",
|
||||
@ -84,7 +80,7 @@ namespace QNetWeaver
|
||||
Log.Error(string.Concat(new object[]
|
||||
{
|
||||
"GenerateSerialization for ",
|
||||
this.m_td.Name,
|
||||
m_td.Name,
|
||||
" [",
|
||||
fieldDefinition2.FieldType,
|
||||
"/",
|
||||
@ -100,7 +96,7 @@ namespace QNetWeaver
|
||||
Log.Error(string.Concat(new object[]
|
||||
{
|
||||
"GenerateSerialization for ",
|
||||
this.m_td.Name,
|
||||
m_td.Name,
|
||||
" unknown type [",
|
||||
fieldDefinition2.FieldType,
|
||||
"/",
|
||||
@ -116,26 +112,26 @@ namespace QNetWeaver
|
||||
}
|
||||
}
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Ret));
|
||||
this.m_td.Methods.Add(methodDefinition2);
|
||||
m_td.Methods.Add(methodDefinition2);
|
||||
}
|
||||
}
|
||||
|
||||
private void GenerateDeSerialization()
|
||||
{
|
||||
Weaver.DLog(this.m_td, " GenerateDeserialization", new object[0]);
|
||||
foreach (var methodDefinition in this.m_td.Methods)
|
||||
Weaver.DLog(m_td, " GenerateDeserialization", new object[0]);
|
||||
foreach (var methodDefinition in m_td.Methods)
|
||||
{
|
||||
if (methodDefinition.Name == "Deserialize")
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (this.m_td.Fields.Count != 0)
|
||||
if (m_td.Fields.Count != 0)
|
||||
{
|
||||
var methodDefinition2 = new MethodDefinition("Deserialize", MethodAttributes.FamANDAssem | MethodAttributes.Family | MethodAttributes.Virtual | MethodAttributes.HideBySig, Weaver.voidType);
|
||||
methodDefinition2.Parameters.Add(new ParameterDefinition("reader", ParameterAttributes.None, Weaver.scriptDef.MainModule.ImportReference(Weaver.NetworkReaderType)));
|
||||
var ilprocessor = methodDefinition2.Body.GetILProcessor();
|
||||
foreach (var fieldDefinition in this.m_td.Fields)
|
||||
foreach (var fieldDefinition in m_td.Fields)
|
||||
{
|
||||
if (!fieldDefinition.IsStatic && !fieldDefinition.IsPrivate && !fieldDefinition.IsSpecialName)
|
||||
{
|
||||
@ -146,7 +142,7 @@ namespace QNetWeaver
|
||||
Log.Error(string.Concat(new object[]
|
||||
{
|
||||
"GenerateDeSerialization for ",
|
||||
this.m_td.Name,
|
||||
m_td.Name,
|
||||
" unknown type [",
|
||||
fieldDefinition.FieldType,
|
||||
"]. [SyncVar] member variables must be basic types."
|
||||
@ -160,7 +156,7 @@ namespace QNetWeaver
|
||||
}
|
||||
}
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Ret));
|
||||
this.m_td.Methods.Add(methodDefinition2);
|
||||
m_td.Methods.Add(methodDefinition2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,27 +1,20 @@
|
||||
using Mono.Cecil;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace QNetWeaver
|
||||
{
|
||||
internal class MonoBehaviourProcessor
|
||||
{
|
||||
public MonoBehaviourProcessor(TypeDefinition td)
|
||||
{
|
||||
this.m_td = td;
|
||||
}
|
||||
public MonoBehaviourProcessor(TypeDefinition td) => m_td = td;
|
||||
|
||||
public void Process()
|
||||
{
|
||||
this.ProcessSyncVars();
|
||||
this.ProcessMethods();
|
||||
ProcessSyncVars();
|
||||
ProcessMethods();
|
||||
}
|
||||
|
||||
private void ProcessSyncVars()
|
||||
{
|
||||
foreach (var fieldDefinition in this.m_td.Fields)
|
||||
foreach (var fieldDefinition in m_td.Fields)
|
||||
{
|
||||
foreach (var customAttribute in fieldDefinition.CustomAttributes)
|
||||
{
|
||||
@ -30,7 +23,7 @@ namespace QNetWeaver
|
||||
Log.Error(string.Concat(new string[]
|
||||
{
|
||||
"Script ",
|
||||
this.m_td.FullName,
|
||||
m_td.FullName,
|
||||
" uses [SyncVar] ",
|
||||
fieldDefinition.Name,
|
||||
" but is not a NetworkBehaviour."
|
||||
@ -40,7 +33,7 @@ namespace QNetWeaver
|
||||
}
|
||||
if (Helpers.InheritsFromSyncList(fieldDefinition.FieldType))
|
||||
{
|
||||
Log.Error(string.Format("Script {0} defines field {1} with type {2}, but it's not a NetworkBehaviour", this.m_td.FullName, fieldDefinition.Name, Helpers.PrettyPrintType(fieldDefinition.FieldType)));
|
||||
Log.Error(string.Format("Script {0} defines field {1} with type {2}, but it's not a NetworkBehaviour", m_td.FullName, fieldDefinition.Name, Helpers.PrettyPrintType(fieldDefinition.FieldType)));
|
||||
Weaver.fail = true;
|
||||
}
|
||||
}
|
||||
@ -48,7 +41,7 @@ namespace QNetWeaver
|
||||
|
||||
private void ProcessMethods()
|
||||
{
|
||||
foreach (var methodDefinition in this.m_td.Methods)
|
||||
foreach (var methodDefinition in m_td.Methods)
|
||||
{
|
||||
foreach (var customAttribute in methodDefinition.CustomAttributes)
|
||||
{
|
||||
@ -57,7 +50,7 @@ namespace QNetWeaver
|
||||
Log.Error(string.Concat(new string[]
|
||||
{
|
||||
"Script ",
|
||||
this.m_td.FullName,
|
||||
m_td.FullName,
|
||||
" uses [Command] ",
|
||||
methodDefinition.Name,
|
||||
" but is not a NetworkBehaviour."
|
||||
@ -69,7 +62,7 @@ namespace QNetWeaver
|
||||
Log.Error(string.Concat(new string[]
|
||||
{
|
||||
"Script ",
|
||||
this.m_td.FullName,
|
||||
m_td.FullName,
|
||||
" uses [ClientRpc] ",
|
||||
methodDefinition.Name,
|
||||
" but is not a NetworkBehaviour."
|
||||
@ -81,7 +74,7 @@ namespace QNetWeaver
|
||||
Log.Error(string.Concat(new string[]
|
||||
{
|
||||
"Script ",
|
||||
this.m_td.FullName,
|
||||
m_td.FullName,
|
||||
" uses [TargetRpc] ",
|
||||
methodDefinition.Name,
|
||||
" but is not a NetworkBehaviour."
|
||||
@ -94,7 +87,7 @@ namespace QNetWeaver
|
||||
Log.Error(string.Concat(new string[]
|
||||
{
|
||||
"Script ",
|
||||
this.m_td.FullName,
|
||||
m_td.FullName,
|
||||
" uses the attribute [Server] on the method ",
|
||||
methodDefinition.Name,
|
||||
" but is not a NetworkBehaviour."
|
||||
@ -106,7 +99,7 @@ namespace QNetWeaver
|
||||
Log.Error(string.Concat(new string[]
|
||||
{
|
||||
"Script ",
|
||||
this.m_td.FullName,
|
||||
m_td.FullName,
|
||||
" uses the attribute [ServerCallback] on the method ",
|
||||
methodDefinition.Name,
|
||||
" but is not a NetworkBehaviour."
|
||||
@ -118,7 +111,7 @@ namespace QNetWeaver
|
||||
Log.Error(string.Concat(new string[]
|
||||
{
|
||||
"Script ",
|
||||
this.m_td.FullName,
|
||||
m_td.FullName,
|
||||
" uses the attribute [Client] on the method ",
|
||||
methodDefinition.Name,
|
||||
" but is not a NetworkBehaviour."
|
||||
@ -130,7 +123,7 @@ namespace QNetWeaver
|
||||
Log.Error(string.Concat(new string[]
|
||||
{
|
||||
"Script ",
|
||||
this.m_td.FullName,
|
||||
m_td.FullName,
|
||||
" uses the attribute [ClientCallback] on the method ",
|
||||
methodDefinition.Name,
|
||||
" but is not a NetworkBehaviour."
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,14 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace QNetWeaver
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
Console.WriteLine("Start!");
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
|
@ -1,9 +1,5 @@
|
||||
using Mono.Cecil;
|
||||
using Mono.Cecil.Cil;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace QNetWeaver
|
||||
{
|
||||
@ -12,12 +8,12 @@ namespace QNetWeaver
|
||||
public SyncListStructProcessor(TypeDefinition typeDef)
|
||||
{
|
||||
Weaver.DLog(typeDef, "SyncListStructProcessor for " + typeDef.Name, new object[0]);
|
||||
this.m_TypeDef = typeDef;
|
||||
m_TypeDef = typeDef;
|
||||
}
|
||||
|
||||
public void Process()
|
||||
{
|
||||
var genericInstanceType = (GenericInstanceType)this.m_TypeDef.BaseType;
|
||||
var genericInstanceType = (GenericInstanceType)m_TypeDef.BaseType;
|
||||
if (genericInstanceType.GenericArguments.Count == 0)
|
||||
{
|
||||
Weaver.fail = true;
|
||||
@ -25,18 +21,18 @@ namespace QNetWeaver
|
||||
}
|
||||
else
|
||||
{
|
||||
this.m_ItemType = Weaver.scriptDef.MainModule.ImportReference(genericInstanceType.GenericArguments[0]);
|
||||
Weaver.DLog(this.m_TypeDef, "SyncListStructProcessor Start item:" + this.m_ItemType.FullName, new object[0]);
|
||||
m_ItemType = Weaver.scriptDef.MainModule.ImportReference(genericInstanceType.GenericArguments[0]);
|
||||
Weaver.DLog(m_TypeDef, "SyncListStructProcessor Start item:" + m_ItemType.FullName, new object[0]);
|
||||
Weaver.ResetRecursionCount();
|
||||
var methodReference = this.GenerateSerialization();
|
||||
var methodReference = GenerateSerialization();
|
||||
if (!Weaver.fail)
|
||||
{
|
||||
var methodReference2 = this.GenerateDeserialization();
|
||||
var methodReference2 = GenerateDeserialization();
|
||||
if (methodReference2 != null && methodReference != null)
|
||||
{
|
||||
this.GenerateReadFunc(methodReference2);
|
||||
this.GenerateWriteFunc(methodReference);
|
||||
Weaver.DLog(this.m_TypeDef, "SyncListStructProcessor Done", new object[0]);
|
||||
GenerateReadFunc(methodReference2);
|
||||
GenerateWriteFunc(methodReference);
|
||||
Weaver.DLog(m_TypeDef, "SyncListStructProcessor Done", new object[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -44,10 +40,10 @@ namespace QNetWeaver
|
||||
|
||||
private void GenerateReadFunc(MethodReference readItemFunc)
|
||||
{
|
||||
var text = "_ReadStruct" + this.m_TypeDef.Name + "_";
|
||||
if (this.m_TypeDef.DeclaringType != null)
|
||||
var text = "_ReadStruct" + m_TypeDef.Name + "_";
|
||||
if (m_TypeDef.DeclaringType != null)
|
||||
{
|
||||
text += this.m_TypeDef.DeclaringType.Name;
|
||||
text += m_TypeDef.DeclaringType.Name;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -55,7 +51,7 @@ namespace QNetWeaver
|
||||
}
|
||||
var methodDefinition = new MethodDefinition(text, MethodAttributes.FamANDAssem | MethodAttributes.Family | MethodAttributes.Static | MethodAttributes.HideBySig, Weaver.voidType);
|
||||
methodDefinition.Parameters.Add(new ParameterDefinition("reader", ParameterAttributes.None, Weaver.scriptDef.MainModule.ImportReference(Weaver.NetworkReaderType)));
|
||||
methodDefinition.Parameters.Add(new ParameterDefinition("instance", ParameterAttributes.None, this.m_TypeDef));
|
||||
methodDefinition.Parameters.Add(new ParameterDefinition("instance", ParameterAttributes.None, m_TypeDef));
|
||||
methodDefinition.Body.Variables.Add(new VariableDefinition(Weaver.uint16Type));
|
||||
methodDefinition.Body.Variables.Add(new VariableDefinition(Weaver.uint16Type));
|
||||
methodDefinition.Body.InitLocals = true;
|
||||
@ -66,7 +62,7 @@ namespace QNetWeaver
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Ldarg_1));
|
||||
var method = Helpers.MakeHostInstanceGeneric(Weaver.SyncListClear, new TypeReference[]
|
||||
{
|
||||
this.m_ItemType
|
||||
m_ItemType
|
||||
});
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Callvirt, method));
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Ldc_I4_0));
|
||||
@ -82,7 +78,7 @@ namespace QNetWeaver
|
||||
var self = Weaver.ResolveMethod(Weaver.SyncListStructType, "AddInternal");
|
||||
var method2 = Helpers.MakeHostInstanceGeneric(self, new TypeReference[]
|
||||
{
|
||||
this.m_ItemType
|
||||
m_ItemType
|
||||
});
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Callvirt, method2));
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Ldloc_1));
|
||||
@ -95,15 +91,15 @@ namespace QNetWeaver
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Ldloc_0));
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Blt, instruction2));
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Ret));
|
||||
Weaver.RegisterReadByReferenceFunc(this.m_TypeDef.FullName, methodDefinition);
|
||||
Weaver.RegisterReadByReferenceFunc(m_TypeDef.FullName, methodDefinition);
|
||||
}
|
||||
|
||||
private void GenerateWriteFunc(MethodReference writeItemFunc)
|
||||
{
|
||||
var text = "_WriteStruct" + this.m_TypeDef.GetElementType().Name + "_";
|
||||
if (this.m_TypeDef.DeclaringType != null)
|
||||
var text = "_WriteStruct" + m_TypeDef.GetElementType().Name + "_";
|
||||
if (m_TypeDef.DeclaringType != null)
|
||||
{
|
||||
text += this.m_TypeDef.DeclaringType.Name;
|
||||
text += m_TypeDef.DeclaringType.Name;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -111,7 +107,7 @@ namespace QNetWeaver
|
||||
}
|
||||
var methodDefinition = new MethodDefinition(text, MethodAttributes.FamANDAssem | MethodAttributes.Family | MethodAttributes.Static | MethodAttributes.HideBySig, Weaver.voidType);
|
||||
methodDefinition.Parameters.Add(new ParameterDefinition("writer", ParameterAttributes.None, Weaver.scriptDef.MainModule.ImportReference(Weaver.NetworkWriterType)));
|
||||
methodDefinition.Parameters.Add(new ParameterDefinition("value", ParameterAttributes.None, Weaver.scriptDef.MainModule.ImportReference(this.m_TypeDef)));
|
||||
methodDefinition.Parameters.Add(new ParameterDefinition("value", ParameterAttributes.None, Weaver.scriptDef.MainModule.ImportReference(m_TypeDef)));
|
||||
methodDefinition.Body.Variables.Add(new VariableDefinition(Weaver.uint16Type));
|
||||
methodDefinition.Body.Variables.Add(new VariableDefinition(Weaver.uint16Type));
|
||||
methodDefinition.Body.InitLocals = true;
|
||||
@ -120,7 +116,7 @@ namespace QNetWeaver
|
||||
var self = Weaver.ResolveMethod(Weaver.SyncListStructType, "get_Count");
|
||||
var method = Helpers.MakeHostInstanceGeneric(self, new TypeReference[]
|
||||
{
|
||||
this.m_ItemType
|
||||
m_ItemType
|
||||
});
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Callvirt, method));
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Stloc_0));
|
||||
@ -140,7 +136,7 @@ namespace QNetWeaver
|
||||
var self2 = Weaver.ResolveMethod(Weaver.SyncListStructType, "GetItem");
|
||||
var method2 = Helpers.MakeHostInstanceGeneric(self2, new TypeReference[]
|
||||
{
|
||||
this.m_ItemType
|
||||
m_ItemType
|
||||
});
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Callvirt, method2));
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Callvirt, writeItemFunc));
|
||||
@ -154,34 +150,34 @@ namespace QNetWeaver
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Ldloc_0));
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Blt, instruction2));
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Ret));
|
||||
Weaver.RegisterWriteFunc(this.m_TypeDef.FullName, methodDefinition);
|
||||
Weaver.RegisterWriteFunc(m_TypeDef.FullName, methodDefinition);
|
||||
}
|
||||
|
||||
private MethodReference GenerateSerialization()
|
||||
{
|
||||
Weaver.DLog(this.m_TypeDef, " SyncListStruct GenerateSerialization", new object[0]);
|
||||
foreach (var methodDefinition in this.m_TypeDef.Methods)
|
||||
Weaver.DLog(m_TypeDef, " SyncListStruct GenerateSerialization", new object[0]);
|
||||
foreach (var methodDefinition in m_TypeDef.Methods)
|
||||
{
|
||||
if (methodDefinition.Name == "SerializeItem")
|
||||
{
|
||||
Weaver.DLog(this.m_TypeDef, " Abort - is SerializeItem", new object[0]);
|
||||
Weaver.DLog(m_TypeDef, " Abort - is SerializeItem", new object[0]);
|
||||
return methodDefinition;
|
||||
}
|
||||
}
|
||||
var methodDefinition2 = new MethodDefinition("SerializeItem", MethodAttributes.FamANDAssem | MethodAttributes.Family | MethodAttributes.Virtual | MethodAttributes.HideBySig, Weaver.voidType);
|
||||
methodDefinition2.Parameters.Add(new ParameterDefinition("writer", ParameterAttributes.None, Weaver.scriptDef.MainModule.ImportReference(Weaver.NetworkWriterType)));
|
||||
methodDefinition2.Parameters.Add(new ParameterDefinition("item", ParameterAttributes.None, this.m_ItemType));
|
||||
methodDefinition2.Parameters.Add(new ParameterDefinition("item", ParameterAttributes.None, m_ItemType));
|
||||
var ilprocessor = methodDefinition2.Body.GetILProcessor();
|
||||
MethodReference result;
|
||||
if (this.m_ItemType.IsGenericInstance)
|
||||
if (m_ItemType.IsGenericInstance)
|
||||
{
|
||||
Weaver.fail = true;
|
||||
Log.Error("GenerateSerialization for " + Helpers.PrettyPrintType(this.m_ItemType) + " failed. Struct passed into SyncListStruct<T> can't have generic parameters");
|
||||
Log.Error("GenerateSerialization for " + Helpers.PrettyPrintType(m_ItemType) + " failed. Struct passed into SyncListStruct<T> can't have generic parameters");
|
||||
result = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var fieldDefinition in this.m_ItemType.Resolve().Fields)
|
||||
foreach (var fieldDefinition in m_ItemType.Resolve().Fields)
|
||||
{
|
||||
if (!fieldDefinition.IsStatic && !fieldDefinition.IsPrivate && !fieldDefinition.IsSpecialName)
|
||||
{
|
||||
@ -193,7 +189,7 @@ namespace QNetWeaver
|
||||
Log.Error(string.Concat(new object[]
|
||||
{
|
||||
"GenerateSerialization for ",
|
||||
this.m_TypeDef.Name,
|
||||
m_TypeDef.Name,
|
||||
" [",
|
||||
typeDefinition,
|
||||
"/",
|
||||
@ -208,7 +204,7 @@ namespace QNetWeaver
|
||||
Log.Error(string.Concat(new object[]
|
||||
{
|
||||
"GenerateSerialization for ",
|
||||
this.m_TypeDef.Name,
|
||||
m_TypeDef.Name,
|
||||
" [",
|
||||
typeDefinition,
|
||||
"/",
|
||||
@ -224,7 +220,7 @@ namespace QNetWeaver
|
||||
Log.Error(string.Concat(new object[]
|
||||
{
|
||||
"GenerateSerialization for ",
|
||||
this.m_TypeDef.Name,
|
||||
m_TypeDef.Name,
|
||||
" unknown type [",
|
||||
typeDefinition,
|
||||
"/",
|
||||
@ -240,7 +236,7 @@ namespace QNetWeaver
|
||||
}
|
||||
}
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Ret));
|
||||
this.m_TypeDef.Methods.Add(methodDefinition2);
|
||||
m_TypeDef.Methods.Add(methodDefinition2);
|
||||
result = methodDefinition2;
|
||||
}
|
||||
return result;
|
||||
@ -248,22 +244,22 @@ namespace QNetWeaver
|
||||
|
||||
private MethodReference GenerateDeserialization()
|
||||
{
|
||||
Weaver.DLog(this.m_TypeDef, " GenerateDeserialization", new object[0]);
|
||||
foreach (var methodDefinition in this.m_TypeDef.Methods)
|
||||
Weaver.DLog(m_TypeDef, " GenerateDeserialization", new object[0]);
|
||||
foreach (var methodDefinition in m_TypeDef.Methods)
|
||||
{
|
||||
if (methodDefinition.Name == "DeserializeItem")
|
||||
{
|
||||
return methodDefinition;
|
||||
}
|
||||
}
|
||||
var methodDefinition2 = new MethodDefinition("DeserializeItem", MethodAttributes.FamANDAssem | MethodAttributes.Family | MethodAttributes.Virtual | MethodAttributes.HideBySig, this.m_ItemType);
|
||||
var methodDefinition2 = new MethodDefinition("DeserializeItem", MethodAttributes.FamANDAssem | MethodAttributes.Family | MethodAttributes.Virtual | MethodAttributes.HideBySig, m_ItemType);
|
||||
methodDefinition2.Parameters.Add(new ParameterDefinition("reader", ParameterAttributes.None, Weaver.scriptDef.MainModule.ImportReference(Weaver.NetworkReaderType)));
|
||||
var ilprocessor = methodDefinition2.Body.GetILProcessor();
|
||||
ilprocessor.Body.InitLocals = true;
|
||||
ilprocessor.Body.Variables.Add(new VariableDefinition(this.m_ItemType));
|
||||
ilprocessor.Body.Variables.Add(new VariableDefinition(m_ItemType));
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Ldloca, 0));
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Initobj, this.m_ItemType));
|
||||
foreach (var fieldDefinition in this.m_ItemType.Resolve().Fields)
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Initobj, m_ItemType));
|
||||
foreach (var fieldDefinition in m_ItemType.Resolve().Fields)
|
||||
{
|
||||
if (!fieldDefinition.IsStatic && !fieldDefinition.IsPrivate && !fieldDefinition.IsSpecialName)
|
||||
{
|
||||
@ -276,7 +272,7 @@ namespace QNetWeaver
|
||||
Log.Error(string.Concat(new object[]
|
||||
{
|
||||
"GenerateDeserialization for ",
|
||||
this.m_TypeDef.Name,
|
||||
m_TypeDef.Name,
|
||||
" unknown type [",
|
||||
typeDefinition,
|
||||
"]. UNet [SyncVar] member variables must be basic types."
|
||||
@ -291,7 +287,7 @@ namespace QNetWeaver
|
||||
}
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Ldloc_0));
|
||||
ilprocessor.Append(ilprocessor.Create(OpCodes.Ret));
|
||||
this.m_TypeDef.Methods.Add(methodDefinition2);
|
||||
m_TypeDef.Methods.Add(methodDefinition2);
|
||||
return methodDefinition2;
|
||||
}
|
||||
|
||||
|
@ -7,16 +7,12 @@ using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace QNetWeaver
|
||||
{
|
||||
internal class Weaver
|
||||
{
|
||||
public static void ResetRecursionCount()
|
||||
{
|
||||
Weaver.s_RecursionCount = 0;
|
||||
}
|
||||
public static void ResetRecursionCount() => Weaver.s_RecursionCount = 0;
|
||||
|
||||
public static bool CanBeResolved(TypeReference parent)
|
||||
{
|
||||
@ -49,10 +45,7 @@ namespace QNetWeaver
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool IsArrayType(TypeReference variable)
|
||||
{
|
||||
return (!variable.IsArray || !((ArrayType)variable).ElementType.IsArray) && (!variable.IsArray || ((ArrayType)variable).Rank <= 1);
|
||||
}
|
||||
public static bool IsArrayType(TypeReference variable) => (!variable.IsArray || !((ArrayType)variable).ElementType.IsArray) && (!variable.IsArray || ((ArrayType)variable).Rank <= 1);
|
||||
|
||||
public static void DLog(TypeDefinition td, string fmt, params object[] args)
|
||||
{
|
||||
@ -77,10 +70,7 @@ namespace QNetWeaver
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void SetNumSyncVars(string className, int num)
|
||||
{
|
||||
Weaver.lists.numSyncVars[className] = num;
|
||||
}
|
||||
public static void SetNumSyncVars(string className, int num) => Weaver.lists.numSyncVars[className] = num;
|
||||
|
||||
public static MethodReference GetWriteFunc(TypeReference variable)
|
||||
{
|
||||
@ -837,10 +827,7 @@ namespace QNetWeaver
|
||||
}));
|
||||
}
|
||||
|
||||
private static void ProcessPropertySites()
|
||||
{
|
||||
Weaver.ProcessSitesModule(Weaver.scriptDef.MainModule);
|
||||
}
|
||||
private static void ProcessPropertySites() => Weaver.ProcessSitesModule(Weaver.scriptDef.MainModule);
|
||||
|
||||
private static bool ProcessMessageType(TypeDefinition td)
|
||||
{
|
||||
@ -1212,89 +1199,95 @@ namespace QNetWeaver
|
||||
private static void SetupReadFunctions()
|
||||
{
|
||||
var weaverLists = Weaver.lists;
|
||||
var dictionary = new Dictionary<string, MethodReference>();
|
||||
dictionary.Add(Weaver.singleType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadSingle"));
|
||||
dictionary.Add(Weaver.doubleType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadDouble"));
|
||||
dictionary.Add(Weaver.boolType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadBoolean"));
|
||||
dictionary.Add(Weaver.stringType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadString"));
|
||||
dictionary.Add(Weaver.int64Type.FullName, Weaver.NetworkReaderReadPacked64);
|
||||
dictionary.Add(Weaver.uint64Type.FullName, Weaver.NetworkReaderReadPacked64);
|
||||
dictionary.Add(Weaver.int32Type.FullName, Weaver.NetworkReaderReadPacked32);
|
||||
dictionary.Add(Weaver.uint32Type.FullName, Weaver.NetworkReaderReadPacked32);
|
||||
dictionary.Add(Weaver.int16Type.FullName, Weaver.NetworkReaderReadPacked32);
|
||||
dictionary.Add(Weaver.uint16Type.FullName, Weaver.NetworkReaderReadPacked32);
|
||||
dictionary.Add(Weaver.byteType.FullName, Weaver.NetworkReaderReadPacked32);
|
||||
dictionary.Add(Weaver.sbyteType.FullName, Weaver.NetworkReaderReadPacked32);
|
||||
dictionary.Add(Weaver.charType.FullName, Weaver.NetworkReaderReadPacked32);
|
||||
dictionary.Add(Weaver.decimalType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadDecimal"));
|
||||
dictionary.Add(Weaver.vector2Type.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadVector2"));
|
||||
dictionary.Add(Weaver.vector3Type.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadVector3"));
|
||||
dictionary.Add(Weaver.vector4Type.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadVector4"));
|
||||
dictionary.Add(Weaver.colorType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadColor"));
|
||||
dictionary.Add(Weaver.color32Type.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadColor32"));
|
||||
dictionary.Add(Weaver.quaternionType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadQuaternion"));
|
||||
dictionary.Add(Weaver.rectType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadRect"));
|
||||
dictionary.Add(Weaver.planeType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadPlane"));
|
||||
dictionary.Add(Weaver.rayType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadRay"));
|
||||
dictionary.Add(Weaver.matrixType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadMatrix4x4"));
|
||||
dictionary.Add(Weaver.hashType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadNetworkHash128"));
|
||||
dictionary.Add(Weaver.gameObjectType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadGameObject"));
|
||||
dictionary.Add(Weaver.NetworkIdentityType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadNetworkIdentity"));
|
||||
dictionary.Add(Weaver.NetworkInstanceIdType.FullName, Weaver.NetworkReaderReadNetworkInstanceId);
|
||||
dictionary.Add(Weaver.NetworkSceneIdType.FullName, Weaver.NetworkReaderReadNetworkSceneId);
|
||||
dictionary.Add(Weaver.transformType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadTransform"));
|
||||
dictionary.Add("System.Byte[]", Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadBytesAndSize"));
|
||||
var dictionary = new Dictionary<string, MethodReference>
|
||||
{
|
||||
{ Weaver.singleType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadSingle") },
|
||||
{ Weaver.doubleType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadDouble") },
|
||||
{ Weaver.boolType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadBoolean") },
|
||||
{ Weaver.stringType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadString") },
|
||||
{ Weaver.int64Type.FullName, Weaver.NetworkReaderReadPacked64 },
|
||||
{ Weaver.uint64Type.FullName, Weaver.NetworkReaderReadPacked64 },
|
||||
{ Weaver.int32Type.FullName, Weaver.NetworkReaderReadPacked32 },
|
||||
{ Weaver.uint32Type.FullName, Weaver.NetworkReaderReadPacked32 },
|
||||
{ Weaver.int16Type.FullName, Weaver.NetworkReaderReadPacked32 },
|
||||
{ Weaver.uint16Type.FullName, Weaver.NetworkReaderReadPacked32 },
|
||||
{ Weaver.byteType.FullName, Weaver.NetworkReaderReadPacked32 },
|
||||
{ Weaver.sbyteType.FullName, Weaver.NetworkReaderReadPacked32 },
|
||||
{ Weaver.charType.FullName, Weaver.NetworkReaderReadPacked32 },
|
||||
{ Weaver.decimalType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadDecimal") },
|
||||
{ Weaver.vector2Type.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadVector2") },
|
||||
{ Weaver.vector3Type.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadVector3") },
|
||||
{ Weaver.vector4Type.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadVector4") },
|
||||
{ Weaver.colorType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadColor") },
|
||||
{ Weaver.color32Type.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadColor32") },
|
||||
{ Weaver.quaternionType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadQuaternion") },
|
||||
{ Weaver.rectType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadRect") },
|
||||
{ Weaver.planeType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadPlane") },
|
||||
{ Weaver.rayType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadRay") },
|
||||
{ Weaver.matrixType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadMatrix4x4") },
|
||||
{ Weaver.hashType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadNetworkHash128") },
|
||||
{ Weaver.gameObjectType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadGameObject") },
|
||||
{ Weaver.NetworkIdentityType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadNetworkIdentity") },
|
||||
{ Weaver.NetworkInstanceIdType.FullName, Weaver.NetworkReaderReadNetworkInstanceId },
|
||||
{ Weaver.NetworkSceneIdType.FullName, Weaver.NetworkReaderReadNetworkSceneId },
|
||||
{ Weaver.transformType.FullName, Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadTransform") },
|
||||
{ "System.Byte[]", Weaver.ResolveMethod(Weaver.NetworkReaderType, "ReadBytesAndSize") }
|
||||
};
|
||||
weaverLists.readFuncs = dictionary;
|
||||
var weaverLists2 = Weaver.lists;
|
||||
dictionary = new Dictionary<string, MethodReference>();
|
||||
dictionary.Add(Weaver.SyncListFloatType.FullName, Weaver.SyncListFloatReadType);
|
||||
dictionary.Add(Weaver.SyncListIntType.FullName, Weaver.SyncListIntReadType);
|
||||
dictionary.Add(Weaver.SyncListUIntType.FullName, Weaver.SyncListUIntReadType);
|
||||
dictionary.Add(Weaver.SyncListBoolType.FullName, Weaver.SyncListBoolReadType);
|
||||
dictionary.Add(Weaver.SyncListStringType.FullName, Weaver.SyncListStringReadType);
|
||||
dictionary = new Dictionary<string, MethodReference>
|
||||
{
|
||||
{ Weaver.SyncListFloatType.FullName, Weaver.SyncListFloatReadType },
|
||||
{ Weaver.SyncListIntType.FullName, Weaver.SyncListIntReadType },
|
||||
{ Weaver.SyncListUIntType.FullName, Weaver.SyncListUIntReadType },
|
||||
{ Weaver.SyncListBoolType.FullName, Weaver.SyncListBoolReadType },
|
||||
{ Weaver.SyncListStringType.FullName, Weaver.SyncListStringReadType }
|
||||
};
|
||||
weaverLists2.readByReferenceFuncs = dictionary;
|
||||
}
|
||||
|
||||
private static void SetupWriteFunctions()
|
||||
{
|
||||
var weaverLists = Weaver.lists;
|
||||
var dictionary = new Dictionary<string, MethodReference>();
|
||||
dictionary.Add(Weaver.singleType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.singleType));
|
||||
dictionary.Add(Weaver.doubleType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.doubleType));
|
||||
dictionary.Add(Weaver.boolType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.boolType));
|
||||
dictionary.Add(Weaver.stringType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.stringType));
|
||||
dictionary.Add(Weaver.int64Type.FullName, Weaver.NetworkWriterWritePacked64);
|
||||
dictionary.Add(Weaver.uint64Type.FullName, Weaver.NetworkWriterWritePacked64);
|
||||
dictionary.Add(Weaver.int32Type.FullName, Weaver.NetworkWriterWritePacked32);
|
||||
dictionary.Add(Weaver.uint32Type.FullName, Weaver.NetworkWriterWritePacked32);
|
||||
dictionary.Add(Weaver.int16Type.FullName, Weaver.NetworkWriterWritePacked32);
|
||||
dictionary.Add(Weaver.uint16Type.FullName, Weaver.NetworkWriterWritePacked32);
|
||||
dictionary.Add(Weaver.byteType.FullName, Weaver.NetworkWriterWritePacked32);
|
||||
dictionary.Add(Weaver.sbyteType.FullName, Weaver.NetworkWriterWritePacked32);
|
||||
dictionary.Add(Weaver.charType.FullName, Weaver.NetworkWriterWritePacked32);
|
||||
dictionary.Add(Weaver.decimalType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.decimalType));
|
||||
dictionary.Add(Weaver.vector2Type.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.vector2Type));
|
||||
dictionary.Add(Weaver.vector3Type.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.vector3Type));
|
||||
dictionary.Add(Weaver.vector4Type.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.vector4Type));
|
||||
dictionary.Add(Weaver.colorType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.colorType));
|
||||
dictionary.Add(Weaver.color32Type.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.color32Type));
|
||||
dictionary.Add(Weaver.quaternionType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.quaternionType));
|
||||
dictionary.Add(Weaver.rectType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.rectType));
|
||||
dictionary.Add(Weaver.planeType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.planeType));
|
||||
dictionary.Add(Weaver.rayType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.rayType));
|
||||
dictionary.Add(Weaver.matrixType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.matrixType));
|
||||
dictionary.Add(Weaver.hashType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.hashType));
|
||||
dictionary.Add(Weaver.gameObjectType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.gameObjectType));
|
||||
dictionary.Add(Weaver.NetworkIdentityType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.NetworkIdentityType));
|
||||
dictionary.Add(Weaver.NetworkInstanceIdType.FullName, Weaver.NetworkWriterWriteNetworkInstanceId);
|
||||
dictionary.Add(Weaver.NetworkSceneIdType.FullName, Weaver.NetworkWriterWriteNetworkSceneId);
|
||||
dictionary.Add(Weaver.transformType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.transformType));
|
||||
dictionary.Add("System.Byte[]", Weaver.ResolveMethod(Weaver.NetworkWriterType, "WriteBytesFull"));
|
||||
dictionary.Add(Weaver.SyncListFloatType.FullName, Weaver.SyncListFloatWriteType);
|
||||
dictionary.Add(Weaver.SyncListIntType.FullName, Weaver.SyncListIntWriteType);
|
||||
dictionary.Add(Weaver.SyncListUIntType.FullName, Weaver.SyncListUIntWriteType);
|
||||
dictionary.Add(Weaver.SyncListBoolType.FullName, Weaver.SyncListBoolWriteType);
|
||||
dictionary.Add(Weaver.SyncListStringType.FullName, Weaver.SyncListStringWriteType);
|
||||
var dictionary = new Dictionary<string, MethodReference>
|
||||
{
|
||||
{ Weaver.singleType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.singleType) },
|
||||
{ Weaver.doubleType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.doubleType) },
|
||||
{ Weaver.boolType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.boolType) },
|
||||
{ Weaver.stringType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.stringType) },
|
||||
{ Weaver.int64Type.FullName, Weaver.NetworkWriterWritePacked64 },
|
||||
{ Weaver.uint64Type.FullName, Weaver.NetworkWriterWritePacked64 },
|
||||
{ Weaver.int32Type.FullName, Weaver.NetworkWriterWritePacked32 },
|
||||
{ Weaver.uint32Type.FullName, Weaver.NetworkWriterWritePacked32 },
|
||||
{ Weaver.int16Type.FullName, Weaver.NetworkWriterWritePacked32 },
|
||||
{ Weaver.uint16Type.FullName, Weaver.NetworkWriterWritePacked32 },
|
||||
{ Weaver.byteType.FullName, Weaver.NetworkWriterWritePacked32 },
|
||||
{ Weaver.sbyteType.FullName, Weaver.NetworkWriterWritePacked32 },
|
||||
{ Weaver.charType.FullName, Weaver.NetworkWriterWritePacked32 },
|
||||
{ Weaver.decimalType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.decimalType) },
|
||||
{ Weaver.vector2Type.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.vector2Type) },
|
||||
{ Weaver.vector3Type.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.vector3Type) },
|
||||
{ Weaver.vector4Type.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.vector4Type) },
|
||||
{ Weaver.colorType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.colorType) },
|
||||
{ Weaver.color32Type.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.color32Type) },
|
||||
{ Weaver.quaternionType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.quaternionType) },
|
||||
{ Weaver.rectType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.rectType) },
|
||||
{ Weaver.planeType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.planeType) },
|
||||
{ Weaver.rayType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.rayType) },
|
||||
{ Weaver.matrixType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.matrixType) },
|
||||
{ Weaver.hashType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.hashType) },
|
||||
{ Weaver.gameObjectType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.gameObjectType) },
|
||||
{ Weaver.NetworkIdentityType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.NetworkIdentityType) },
|
||||
{ Weaver.NetworkInstanceIdType.FullName, Weaver.NetworkWriterWriteNetworkInstanceId },
|
||||
{ Weaver.NetworkSceneIdType.FullName, Weaver.NetworkWriterWriteNetworkSceneId },
|
||||
{ Weaver.transformType.FullName, Weaver.ResolveMethodWithArg(Weaver.NetworkWriterType, "Write", Weaver.transformType) },
|
||||
{ "System.Byte[]", Weaver.ResolveMethod(Weaver.NetworkWriterType, "WriteBytesFull") },
|
||||
{ Weaver.SyncListFloatType.FullName, Weaver.SyncListFloatWriteType },
|
||||
{ Weaver.SyncListIntType.FullName, Weaver.SyncListIntWriteType },
|
||||
{ Weaver.SyncListUIntType.FullName, Weaver.SyncListUIntWriteType },
|
||||
{ Weaver.SyncListBoolType.FullName, Weaver.SyncListBoolWriteType },
|
||||
{ Weaver.SyncListStringType.FullName, Weaver.SyncListStringWriteType }
|
||||
};
|
||||
weaverLists.writeFuncs = dictionary;
|
||||
}
|
||||
|
||||
|
@ -1,8 +1,5 @@
|
||||
using Mono.Cecil;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace QNetWeaver
|
||||
{
|
||||
|
@ -1,8 +1,4 @@
|
||||
using QSB.Utility;
|
||||
using QuantumUNET;
|
||||
using QuantumUNET.Transport;
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using QuantumUNET;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
using QSB.Events;
|
||||
using QSB.Tools;
|
||||
using QSB.Syncs.TransformSync;
|
||||
using QSB.Tools;
|
||||
using QSB.Utility;
|
||||
using UnityEngine;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
using OWML.Common;
|
||||
using QSB.Player;
|
||||
using QSB.Tools;
|
||||
using QSB.Syncs.TransformSync;
|
||||
using QSB.Tools;
|
||||
using QSB.Utility;
|
||||
using UnityEngine;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user