using System; using System.Runtime.CompilerServices; namespace BansheeEngine { /// /// Allows you to store a reference to a resource without needing to have that resource loaded. /// public class ResourceRef : ScriptObject { /// /// Constructor for internal use only. /// protected ResourceRef() { } /// /// Checks is the referenced resource loaded /// public bool IsLoaded { get { return Internal_IsLoaded(mCachedPtr); } } /// public override bool Equals(object other) { if (!(other is ResourceRef)) return false; ResourceRef otherRef = (ResourceRef)other; return Internal_GetUUID(mCachedPtr).Equals(Internal_GetUUID(otherRef.mCachedPtr)); } /// public override int GetHashCode() { return Internal_GetUUID(mCachedPtr).GetHashCode(); } [MethodImpl(MethodImplOptions.InternalCall)] private static extern bool Internal_IsLoaded(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] protected static extern Resource Internal_GetResource(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern string Internal_GetUUID(IntPtr thisPtr); } }