67 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using UnityEngine.SceneManagement;
 | |
| 
 | |
| namespace FishNet.Serializing.Helping
 | |
| {
 | |
| 
 | |
|     public class GeneratedComparer<T>
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// Compare if T is default.
 | |
|         /// </summary>
 | |
|         public static Func<T, bool> IsDefault { internal get; set; }
 | |
|         /// <summary>
 | |
|         /// Compare if T is the same as T2.
 | |
|         /// </summary>
 | |
|         public static Func<T, T, bool> Compare { internal get; set; }
 | |
|     }
 | |
| 
 | |
| 
 | |
|     public class Comparers
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// Returns if A equals B using EqualityCompare.
 | |
|         /// </summary>
 | |
|         /// <typeparam name="T"></typeparam>
 | |
|         /// <param name="a"></param>
 | |
|         /// <param name="b"></param>
 | |
|         /// <returns></returns>
 | |
|         public static bool EqualityCompare<T>(T a, T b)
 | |
|         {
 | |
|             return EqualityComparer<T>.Default.Equals(a, b);
 | |
|         }
 | |
| 
 | |
|         public static bool IsDefault<T>(T t)
 | |
|         {
 | |
|             return t.Equals(default(T));
 | |
|         }
 | |
| 
 | |
|         public static bool IsEqualityCompareDefault<T>(T a)
 | |
|         {
 | |
|             return EqualityComparer<T>.Default.Equals(a, default(T));
 | |
|         }
 | |
|     }
 | |
| 
 | |
| 
 | |
|     internal class SceneComparer : IEqualityComparer<Scene>
 | |
|     {
 | |
|         public bool Equals(Scene a, Scene b)
 | |
|         {
 | |
|             if (!a.IsValid() || !b.IsValid())
 | |
|                 return false;
 | |
| 
 | |
|             if (a.handle != 0 || b.handle != 0)
 | |
|                 return (a.handle == b.handle);
 | |
| 
 | |
|             return (a.name == b.name);
 | |
|         }
 | |
| 
 | |
|         public int GetHashCode(Scene obj)
 | |
|         {
 | |
|             return obj.GetHashCode();
 | |
|         }
 | |
|     }
 | |
| 
 | |
| }
 |