Add more methods to retrieve resources in ResourceRef, and document existing ones.
This commit is contained in:
@@ -13,11 +13,35 @@ namespace Voile
|
||||
/// </summary>
|
||||
public readonly Guid Guid = Guid.Empty;
|
||||
public bool HasValue => Guid != Guid.Empty;
|
||||
/// <summary>
|
||||
/// Retrieve a reference.
|
||||
/// </summary>
|
||||
public T Value => ResourceManager.GetResource<T>(Guid);
|
||||
|
||||
/// <summary>
|
||||
/// Retrieves a <see cref="Resource"/>.<br />
|
||||
/// This will throw an <see cref="InvalidOperationException"/> if the resource wasn't loaded or is invalid. <br />
|
||||
/// You can check if resource was loaded with <see cref="HasValue"/>, or consider using <see cref="TryGetValue"/>.
|
||||
/// </summary>
|
||||
public T Value => ResourceManager.GetResource<T>(Guid)
|
||||
?? throw new InvalidOperationException($"Resource with GUID {Guid} is not loaded or invalid.");
|
||||
|
||||
/// <summary>
|
||||
/// Retrieves a resource or <c>null</c> if the resource wasn't loaded or is invalid.
|
||||
/// </summary>
|
||||
public T? ValueOrNull => ResourceManager.GetResource<T>(Guid);
|
||||
|
||||
/// <summary>
|
||||
/// Tries to retrieve a <see cref="Resource"/>.
|
||||
/// </summary>
|
||||
/// <param name="value">An instance of a retrieved <see cref="Resource"/>.</param>
|
||||
/// <returns><c>true</c> if the resource was successfully retrieved, otherwise <c>false</c>.</returns>
|
||||
public bool TryGetValue(out T? value)
|
||||
{
|
||||
value = ResourceManager.GetResource<T>(Guid);
|
||||
return value != null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create an empty <see cref="ResourceRef"/>.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static ResourceRef<T> Empty()
|
||||
{
|
||||
return new ResourceRef<T>(Guid.Empty);
|
||||
|
||||
Reference in New Issue
Block a user