58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using FishNet.Object.Helping;
 | |
| using MonoFN.Cecil;
 | |
| using System.Collections.Generic;
 | |
| 
 | |
| namespace FishNet.CodeGenerating.Processing.Rpc
 | |
| {
 | |
| 
 | |
|     internal class CreatedRpc
 | |
|     {
 | |
|         public MethodDefinition OriginalMethodDef;
 | |
|         public uint MethodHash;
 | |
|         public AttributeData AttributeData;
 | |
|         public MethodDefinition WriterMethodDef;
 | |
|         public MethodDefinition ReaderMethodDef;
 | |
|         public MethodDefinition LogicMethodDef;
 | |
|         public MethodDefinition RedirectMethodDef;
 | |
|         public bool RunLocally;
 | |
| 
 | |
|         public RpcType RpcType => AttributeData.RpcType;
 | |
|         public CustomAttribute Attribute => AttributeData.Attribute;
 | |
|         public TypeDefinition TypeDef => OriginalMethodDef.DeclaringType;
 | |
|         public ModuleDefinition Module => OriginalMethodDef.Module;
 | |
|     }
 | |
| 
 | |
| 
 | |
|     internal static class CreatedRpcExtensions
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// Returns CreatedRpc for rpcType.
 | |
|         /// </summary>
 | |
|         /// <returns></returns>
 | |
|         public static CreatedRpc GetCreatedRpc(this List<CreatedRpc> lst, RpcType rpcType)
 | |
|         {
 | |
|             for (int i = 0; i < lst.Count; i++)
 | |
|             {
 | |
|                 if (lst[i].RpcType == rpcType)
 | |
|                     return lst[i];
 | |
|             }
 | |
|             //Fall through.
 | |
|             return null;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Returns combined RpcType for all entries.
 | |
|         /// </summary>
 | |
|         /// <returns></returns>
 | |
|         public static RpcType GetCombinedRpcType(this List<CreatedRpc> lst)
 | |
|         {
 | |
|             RpcType result = RpcType.None;
 | |
|             for (int i = 0; i < lst.Count; i++)
 | |
|                 result |= lst[i].RpcType;
 | |
| 
 | |
|             return result;
 | |
|         }
 | |
|     }
 | |
| 
 | |
| 
 | |
| } |