| | |
| | | } |
| | | } |
| | | |
| | | return new { |
| | | return new |
| | | { |
| | | Name = k, |
| | | IsStatic = overloads[0].IsStatic && (!isDefined(overloads[0], typeof(ExtensionAttribute)) || overloads[0].GetParameters()[0].ParameterType.IsInterface), |
| | | Overloads = overloads, |
| | |
| | | parameters.Set("events", type.GetEvents(BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.IgnoreCase | BindingFlags.DeclaredOnly).Where(e => !isObsolete(e) && !isMemberInBlackList(e)) |
| | | .Where(ev=> ev.GetAddMethod() != null || ev.GetRemoveMethod() != null) |
| | | .Where(ev => !IsDoNotGen(type, ev.Name)) |
| | | .Select(ev => new { IsStatic = ev.GetAddMethod() != null? ev.GetAddMethod().IsStatic: ev.GetRemoveMethod().IsStatic, ev.Name, |
| | | CanSet = false, CanAdd = ev.GetRemoveMethod() != null, CanRemove = ev.GetRemoveMethod() != null, Type = ev.EventHandlerType}) |
| | | .Select(ev => new |
| | | { |
| | | IsStatic = ev.GetAddMethod() != null ? ev.GetAddMethod().IsStatic : ev.GetRemoveMethod().IsStatic, |
| | | ev.Name, |
| | | CanSet = false, |
| | | CanAdd = ev.GetRemoveMethod() != null, |
| | | CanRemove = ev.GetRemoveMethod() != null, |
| | | Type = ev.EventHandlerType |
| | | }) |
| | | .ToList()); |
| | | |
| | | parameters.Set("lazymembers", lazyMemberInfos); |
| | |
| | | EventInfo ev = member as EventInfo; |
| | | if (ev.GetAddMethod() == null && ev.GetRemoveMethod() == null) break; |
| | | bool eventIsStatic = ev.GetAddMethod() != null ? ev.GetAddMethod().IsStatic : ev.GetRemoveMethod().IsStatic; |
| | | lazyMemberInfos.Add(new LazyMemberInfo { |
| | | lazyMemberInfos.Add(new LazyMemberInfo |
| | | { |
| | | Index = eventIsStatic ? "CLS_IDX" : "METHOD_IDX", |
| | | Name = member.Name, |
| | | MemberType = "LazyMemberTypes.Event", |
| | |
| | | { |
| | | type_info.Set("purevaluetypes", types |
| | | .Where(t => t.IsEnum || (!t.IsPrimitive && SizeOf(t) != -1)) |
| | | .Select(t => new { |
| | | .Select(t => new |
| | | { |
| | | Type = t, |
| | | Size = SizeOf(t), |
| | | Flag = t.IsEnum ? OptimizeFlag.Default : OptimizeCfg[t], |
| | |
| | | types = types.GroupBy(t => t.IsGenericType ? t.GetGenericTypeDefinition() : t).Select(g => g.Key); |
| | | #endif |
| | | |
| | | var typeMap = types.ToDictionary(type => { |
| | | var typeMap = types.ToDictionary(type => |
| | | { |
| | | //Debug.Log("type:" + type); |
| | | return type.ToString(); |
| | | }); |
| | |
| | | var fs = t.GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly) |
| | | .Select(fi => new XluaFieldInfo { Name = fi.Name, Type = fi.FieldType, IsField = true, Size = SizeOf(fi.FieldType) }) |
| | | .Concat(t.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly) |
| | | .Where(prop => { |
| | | .Where(prop => |
| | | { |
| | | return (AdditionalProperties.ContainsKey(t) && AdditionalProperties[t].Contains(prop.Name)) |
| | | || isDefined(prop, typeof(AdditionalPropertiesAttribute)); |
| | | }) |
| | |
| | | new List<string>(){"UnityEngine.Light", "shadowRadius"}, |
| | | new List<string>(){"UnityEngine.Light", "shadowAngle"}, |
| | | new List<string>(){"UnityEngine.Light", "SetLightDirty"}, |
| | | new List<string>(){"UnityEngine.UI.Text", "OnRebuildRequested"}, |
| | | new List<string>(){"UnityEngine.UI.Graphic", "OnRebuildRequested"}, |
| | | new List<string>(){"UnityEngine.AnimatorControllerParameter", "name"}, |
| | | new List<string>(){"UnityEngine.AudioSettings", "GetSpatializerPluginNames"}, |
| | | new List<string>(){"UnityEngine.AudioSettings", "SetSpatializerPluginName", "System.String"}, |
| | | new List<string>(){"UnityEngine.DrivenRectTransformTracker", "StopRecordingUndo"}, |
| | | new List<string>(){"UnityEngine.DrivenRectTransformTracker", "StartRecordingUndo"}, |
| | | new List<string>(){"UnityEngine.Caching", "SetNoBackupFlag", "UnityEngine.CachedAssetBundle"}, |
| | | new List<string>(){"UnityEngine.Caching", "ResetNoBackupFlag", "UnityEngine.CachedAssetBundle"}, |
| | | new List<string>(){"UnityEngine.Caching", "SetNoBackupFlag", "System.String", "UnityEngine.Hash128"}, |
| | | new List<string>(){"UnityEngine.Caching", "ResetNoBackupFlag", "System.String", "UnityEngine.Hash128"}, |
| | | new List<string>(){"UnityEngine.Input", "IsJoystickPreconfigured", "System.String"}, |
| | | new List<string>(){"UnityEngine.LightProbeGroup", "dering"}, |
| | | new List<string>(){"UnityEngine.LightProbeGroup", "probePositions"}, |
| | | new List<string>(){"UnityEngine.Light", "SetLightDirty"}, |
| | | new List<string>(){"UnityEngine.Light", "shadowRadius"}, |
| | | new List<string>(){"UnityEngine.Light", "shadowAngle"}, |
| | | new List<string>(){"UnityEngine.ParticleSystemForceField", "FindAll"}, |
| | | new List<string>(){"UnityEngine.QualitySettings", "streamingMipmapsRenderersPerFrame"}, |
| | | new List<string>(){"UnityEngine.Texture", "imageContentsHash"} |
| | | }; |
| | | |
| | | HotfixCfg = new Dictionary<Type, HotfixFlag>(); |
| | |
| | | { |
| | | foreach (var method in (from type in XLua.Utils.GetAllTypes() |
| | | from method in type.GetMethods(BindingFlags.Static | BindingFlags.Public) |
| | | where method.IsDefined(typeof(GenCodeMenuAttribute), false) select method)) |
| | | where method.IsDefined(typeof(GenCodeMenuAttribute), false) |
| | | select method)) |
| | | { |
| | | method.Invoke(null, new object[] { }); |
| | | } |
| | |
| | | |
| | | LuaFunction template = XLua.TemplateEngine.LuaTemplate.Compile(luaenv, |
| | | template_src); |
| | | foreach (var gen_task in get_tasks(luaenv, new UserConfig() { |
| | | foreach (var gen_task in get_tasks(luaenv, new UserConfig() |
| | | { |
| | | LuaCallCSharp = LuaCallCSharp, |
| | | CSharpCallLua = CSharpCallLua, |
| | | ReflectionUse = ReflectionUse |