public static string StringifyFlags(UEFunctionFlags flags) { var buffer = new List <string>(); if (flags.HasFlag(UEFunctionFlags.Final)) { buffer.Add("Final"); } if (flags.HasFlag(UEFunctionFlags.RequiredApi)) { buffer.Add("RequiredAPI"); } if (flags.HasFlag(UEFunctionFlags.BlueprintAuthorityOnly)) { buffer.Add("BlueprintAuthorityOnly"); } if (flags.HasFlag(UEFunctionFlags.BlueprintCosmetic)) { buffer.Add("BlueprintCosmetic"); } if (flags.HasFlag(UEFunctionFlags.Net)) { buffer.Add("Net"); } if (flags.HasFlag(UEFunctionFlags.NetReliable)) { buffer.Add("NetReliable"); } if (flags.HasFlag(UEFunctionFlags.NetRequest)) { buffer.Add("NetRequest"); } if (flags.HasFlag(UEFunctionFlags.Exec)) { buffer.Add("Exec"); } if (flags.HasFlag(UEFunctionFlags.Native)) { buffer.Add("Native"); } if (flags.HasFlag(UEFunctionFlags.Event)) { buffer.Add("Event"); } if (flags.HasFlag(UEFunctionFlags.NetResponse)) { buffer.Add("NetResponse"); } if (flags.HasFlag(UEFunctionFlags.Static)) { buffer.Add("Static"); } if (flags.HasFlag(UEFunctionFlags.NetMulticast)) { buffer.Add("NetMulticast"); } if (flags.HasFlag(UEFunctionFlags.MulticastDelegate)) { buffer.Add("MulticastDelegate"); } if (flags.HasFlag(UEFunctionFlags.Public)) { buffer.Add("Public"); } if (flags.HasFlag(UEFunctionFlags.Private)) { buffer.Add("Private"); } if (flags.HasFlag(UEFunctionFlags.Protected)) { buffer.Add("Protected"); } if (flags.HasFlag(UEFunctionFlags.Delegate)) { buffer.Add("Delegate"); } if (flags.HasFlag(UEFunctionFlags.NetServer)) { buffer.Add("NetServer"); } if (flags.HasFlag(UEFunctionFlags.HasOutParms)) { buffer.Add("HasOutParms"); } if (flags.HasFlag(UEFunctionFlags.HasDefaults)) { buffer.Add("HasDefaults"); } if (flags.HasFlag(UEFunctionFlags.NetClient)) { buffer.Add("NetClient"); } if (flags.HasFlag(UEFunctionFlags.DllImport)) { buffer.Add("DLLImport"); } if (flags.HasFlag(UEFunctionFlags.BlueprintCallable)) { buffer.Add("BlueprintCallable"); } if (flags.HasFlag(UEFunctionFlags.BlueprintEvent)) { buffer.Add("BlueprintEvent"); } if (flags.HasFlag(UEFunctionFlags.BlueprintPure)) { buffer.Add("BlueprintPure"); } if (flags.HasFlag(UEFunctionFlags.Const)) { buffer.Add("Const"); } if (flags.HasFlag(UEFunctionFlags.NetValidate)) { buffer.Add("NetValidate"); } switch (buffer.Count) { case 0: return(string.Empty); case 1: return(buffer[0]); default: return(string.Join(", ", buffer)); // TODO: Check if it's good } }
public static bool And(UEFunctionFlags lhs, UEFunctionFlags rhs) => ((int)lhs & (int)rhs) == (int)rhs;