forked from cgvr/DeltaVR
		
	
		
			
				
	
	
		
			95 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using FishNet.CodeGenerating.Helping.Extension;
 | 
						|
using FishNet.Object;
 | 
						|
using FishNet.Object.Helping;
 | 
						|
using FishNet.Object.Prediction;
 | 
						|
using FishNet.Object.Synchronizing;
 | 
						|
using MonoFN.Cecil;
 | 
						|
 | 
						|
 | 
						|
namespace FishNet.CodeGenerating.Helping
 | 
						|
{
 | 
						|
    internal class AttributeHelper : CodegenBase
 | 
						|
    {
 | 
						|
        #region Reflection references.
 | 
						|
        internal string ReplicateAttribute_FullName;
 | 
						|
        internal string ReconcileAttribute_FullName;
 | 
						|
        private string ServerAttribute_FullName;
 | 
						|
        private string ClientAttribute_FullName;
 | 
						|
        private string ServerRpcAttribute_FullName;
 | 
						|
        private string ObserversRpcAttribute_FullName;
 | 
						|
        private string TargetRpcAttribute_FullName;
 | 
						|
        private string SyncVarAttribute_FullName;
 | 
						|
        private string SyncObjectAttribute_FullName;
 | 
						|
        #endregion   
 | 
						|
 | 
						|
        public override bool ImportReferences()
 | 
						|
        {
 | 
						|
            ServerAttribute_FullName = typeof(ServerAttribute).FullName;
 | 
						|
            ClientAttribute_FullName = typeof(ClientAttribute).FullName;
 | 
						|
            ServerRpcAttribute_FullName = typeof(ServerRpcAttribute).FullName;
 | 
						|
            ObserversRpcAttribute_FullName = typeof(ObserversRpcAttribute).FullName;
 | 
						|
            TargetRpcAttribute_FullName = typeof(TargetRpcAttribute).FullName;
 | 
						|
            SyncVarAttribute_FullName = typeof(SyncVarAttribute).FullName;
 | 
						|
            SyncObjectAttribute_FullName = typeof(SyncObjectAttribute).FullName;
 | 
						|
            ReplicateAttribute_FullName = typeof(ReplicateAttribute).FullName;
 | 
						|
            ReconcileAttribute_FullName = typeof(ReconcileAttribute).FullName;
 | 
						|
 | 
						|
            return true;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Returns type of Rpc attributeFullName is for.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="attributeFullName"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public RpcType GetRpcAttributeType(CustomAttribute ca)
 | 
						|
        {
 | 
						|
            if (ca.Is(ServerRpcAttribute_FullName))
 | 
						|
                return RpcType.Server;
 | 
						|
            else if (ca.Is(ObserversRpcAttribute_FullName))
 | 
						|
                return RpcType.Observers;
 | 
						|
            else if (ca.Is(TargetRpcAttribute_FullName))
 | 
						|
                return RpcType.Target;
 | 
						|
            else
 | 
						|
                return RpcType.None;
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Returns type of Rpc attributeFullName is for.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="attributeFullName"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        internal QolAttributeType GetQolAttributeType(string attributeFullName)
 | 
						|
        {
 | 
						|
            if (attributeFullName == ServerAttribute_FullName)
 | 
						|
                return QolAttributeType.Server;
 | 
						|
            else if (attributeFullName == ClientAttribute_FullName)
 | 
						|
                return QolAttributeType.Client;
 | 
						|
            else
 | 
						|
                return QolAttributeType.None;
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Returns if attribute if a SyncVarAttribute.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="attributeFullName"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public bool IsSyncVarAttribute(string attributeFullName)
 | 
						|
        {
 | 
						|
            return (attributeFullName == SyncVarAttribute_FullName);
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// Returns if attribute if a SyncObjectAttribute.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="attributeFullName"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public bool IsSyncObjectAttribute(string attributeFullName)
 | 
						|
        {
 | 
						|
            return (attributeFullName == SyncObjectAttribute_FullName);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
}
 |