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 where T : Resource
{
///
/// Constructor for internal use only.
///
private ResourceRef()
{ }
///
/// Checks is the referenced resource loaded
///
public bool IsLoaded
{
get { return Internal_IsLoaded(mCachedPtr); }
}
///
/// Retrieves the referenced resource. This will load the resources if it is not already loaded.
///
/// Type of the resource to load.
/// Loaded resource object.
public T Get()
{
return (T)Internal_GetResource(mCachedPtr);
}
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern bool Internal_IsLoaded(IntPtr thisPtr);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern Resource Internal_GetResource(IntPtr thisPtr);
}
}