|
|
@@ -0,0 +1,183 @@
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Reflection;
|
|
|
+using System.Runtime.InteropServices;
|
|
|
+
|
|
|
+using ILRuntime.CLR.TypeSystem;
|
|
|
+using ILRuntime.CLR.Method;
|
|
|
+using ILRuntime.Runtime.Enviorment;
|
|
|
+using ILRuntime.Runtime.Intepreter;
|
|
|
+using ILRuntime.Runtime.Stack;
|
|
|
+using ILRuntime.Reflection;
|
|
|
+using ILRuntime.CLR.Utils;
|
|
|
+
|
|
|
+namespace ILRuntime.Runtime.Generated
|
|
|
+{
|
|
|
+ unsafe class Model_Entity_Binding
|
|
|
+ {
|
|
|
+ public static void Register(ILRuntime.Runtime.Enviorment.AppDomain app)
|
|
|
+ {
|
|
|
+ BindingFlags flag = BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly;
|
|
|
+ MethodBase method;
|
|
|
+ FieldInfo field;
|
|
|
+ Type[] args;
|
|
|
+ Type type = typeof(Model.Entity);
|
|
|
+ Dictionary<string, List<MethodInfo>> genericMethods = new Dictionary<string, List<MethodInfo>>();
|
|
|
+ List<MethodInfo> lst = null;
|
|
|
+ foreach(var m in type.GetMethods())
|
|
|
+ {
|
|
|
+ if(m.IsGenericMethodDefinition)
|
|
|
+ {
|
|
|
+ if (!genericMethods.TryGetValue(m.Name, out lst))
|
|
|
+ {
|
|
|
+ lst = new List<MethodInfo>();
|
|
|
+ genericMethods[m.Name] = lst;
|
|
|
+ }
|
|
|
+ lst.Add(m);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ args = new Type[]{typeof(Model.ResourcesComponent)};
|
|
|
+ if (genericMethods.TryGetValue("GetComponent", out lst))
|
|
|
+ {
|
|
|
+ foreach(var m in lst)
|
|
|
+ {
|
|
|
+ if(m.GetParameters().Length == 0)
|
|
|
+ {
|
|
|
+ method = m.MakeGenericMethod(args);
|
|
|
+ app.RegisterCLRMethodRedirection(method, GetComponent_0);
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ args = new Type[]{typeof(Model.NetOuterComponent)};
|
|
|
+ if (genericMethods.TryGetValue("GetComponent", out lst))
|
|
|
+ {
|
|
|
+ foreach(var m in lst)
|
|
|
+ {
|
|
|
+ if(m.GetParameters().Length == 0)
|
|
|
+ {
|
|
|
+ method = m.MakeGenericMethod(args);
|
|
|
+ app.RegisterCLRMethodRedirection(method, GetComponent_1);
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ args = new Type[]{typeof(Model.SessionComponent)};
|
|
|
+ if (genericMethods.TryGetValue("AddComponent", out lst))
|
|
|
+ {
|
|
|
+ foreach(var m in lst)
|
|
|
+ {
|
|
|
+ if(m.GetParameters().Length == 0)
|
|
|
+ {
|
|
|
+ method = m.MakeGenericMethod(args);
|
|
|
+ app.RegisterCLRMethodRedirection(method, AddComponent_2);
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ args = new Type[]{typeof(Model.PlayerComponent)};
|
|
|
+ if (genericMethods.TryGetValue("GetComponent", out lst))
|
|
|
+ {
|
|
|
+ foreach(var m in lst)
|
|
|
+ {
|
|
|
+ if(m.GetParameters().Length == 0)
|
|
|
+ {
|
|
|
+ method = m.MakeGenericMethod(args);
|
|
|
+ app.RegisterCLRMethodRedirection(method, GetComponent_3);
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ static StackObject* GetComponent_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* ptr_of_this_method;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 1);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ Model.Entity instance_of_this_method;
|
|
|
+ instance_of_this_method = (Model.Entity)typeof(Model.Entity).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+
|
|
|
+ var result_of_this_method = instance_of_this_method.GetComponent<Model.ResourcesComponent>();
|
|
|
+
|
|
|
+ object obj_result_of_this_method = result_of_this_method;
|
|
|
+ if(obj_result_of_this_method is CrossBindingAdaptorType)
|
|
|
+ {
|
|
|
+ return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
|
|
|
+ }
|
|
|
+ return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
|
|
|
+ }
|
|
|
+
|
|
|
+ static StackObject* GetComponent_1(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* ptr_of_this_method;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 1);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ Model.Entity instance_of_this_method;
|
|
|
+ instance_of_this_method = (Model.Entity)typeof(Model.Entity).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+
|
|
|
+ var result_of_this_method = instance_of_this_method.GetComponent<Model.NetOuterComponent>();
|
|
|
+
|
|
|
+ object obj_result_of_this_method = result_of_this_method;
|
|
|
+ if(obj_result_of_this_method is CrossBindingAdaptorType)
|
|
|
+ {
|
|
|
+ return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
|
|
|
+ }
|
|
|
+ return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
|
|
|
+ }
|
|
|
+
|
|
|
+ static StackObject* AddComponent_2(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* ptr_of_this_method;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 1);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ Model.Entity instance_of_this_method;
|
|
|
+ instance_of_this_method = (Model.Entity)typeof(Model.Entity).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+
|
|
|
+ var result_of_this_method = instance_of_this_method.AddComponent<Model.SessionComponent>();
|
|
|
+
|
|
|
+ object obj_result_of_this_method = result_of_this_method;
|
|
|
+ if(obj_result_of_this_method is CrossBindingAdaptorType)
|
|
|
+ {
|
|
|
+ return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
|
|
|
+ }
|
|
|
+ return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
|
|
|
+ }
|
|
|
+
|
|
|
+ static StackObject* GetComponent_3(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* ptr_of_this_method;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 1);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ Model.Entity instance_of_this_method;
|
|
|
+ instance_of_this_method = (Model.Entity)typeof(Model.Entity).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+
|
|
|
+ var result_of_this_method = instance_of_this_method.GetComponent<Model.PlayerComponent>();
|
|
|
+
|
|
|
+ object obj_result_of_this_method = result_of_this_method;
|
|
|
+ if(obj_result_of_this_method is CrossBindingAdaptorType)
|
|
|
+ {
|
|
|
+ return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
|
|
|
+ }
|
|
|
+ return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+}
|