Code/Systems/Scripts/Assets/Asset.cs
using Sandbox;

namespace VNBase.Assets;

/// <summary>
/// An on disk asset that can be used in VNBase scripts.
/// </summary>
public interface IAsset
{
	/// <summary>
	/// The path to the asset on disk.
	/// </summary>
	[FilePath]
	public string Path { get; set; }
}

/// <summary>
/// A base class for all VNBase asset resources.
/// You should still mark asset classes that inherit from this with [AssetType(...)]
/// </summary>
public abstract class AssetResource : GameResource, IAsset
{
	[Hide, FilePath]
	public string Path { get => ResourcePath; set => ResourcePath = value; }
}