You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
		
		
			
		
	
	
			50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
| 
											2 years ago
										 | using System; | ||
|  | using System.Collections.Generic; | ||
|  | 
 | ||
|  | namespace Game | ||
|  | { | ||
|  |     public enum EIdGenType | ||
|  |     { | ||
|  |         Intiger,        //+1 | ||
|  |         Code,           //<<1 | ||
|  |     } | ||
|  |     public enum EIdType | ||
|  |     { | ||
|  |         Entity, | ||
|  |         SkillCast, | ||
|  |     } | ||
|  |     public static class UtilID | ||
|  |     { | ||
|  |         private static Dictionary<EIdType, int> _mIdRecordDict; | ||
|  |         private static Dictionary<EIdType, EIdGenType> _mIdTypeDict; | ||
|  |         static UtilID() | ||
|  |         { | ||
|  |             _mIdRecordDict = new Dictionary<EIdType, int>(); | ||
|  |             foreach (EIdType typeNow in Enum.GetValues(typeof(EIdType))) | ||
|  |             { | ||
|  |                 _mIdRecordDict[typeNow] = 1; | ||
|  |             } | ||
|  |             _mIdTypeDict = new Dictionary<EIdType, EIdGenType>(){ | ||
|  |                 {EIdType.Entity,EIdGenType.Intiger}, | ||
|  |                 {EIdType.SkillCast,EIdGenType.Intiger}, | ||
|  |             }; | ||
|  |         } | ||
|  |         public static int GetID(EIdType idType) | ||
|  |         { | ||
|  |             int ret = _mIdRecordDict[idType]; | ||
|  |             switch ((int)_mIdTypeDict[idType]) | ||
|  |             { | ||
|  |                 case (int)EIdGenType.Intiger: | ||
|  |                     _mIdRecordDict[idType] += 1; | ||
|  |                     break; | ||
|  |                 case (int)EIdGenType.Code: | ||
|  |                     _mIdRecordDict[idType] = _mIdRecordDict[idType] << 1; | ||
|  |                     break; | ||
|  |                 default: | ||
|  |                     _mIdRecordDict[idType] += 1; | ||
|  |                     break; | ||
|  |             } | ||
|  |             return ret; | ||
|  |         } | ||
|  |     } | ||
|  | } |