using System;
namespace StardewModdingAPI
{
/// Basic metadata for a content asset.
public interface IAssetInfo
{
/*********
** Accessors
*********/
#if SMAPI_DEPRECATED
/// The content's locale code, if the content is localized.
/// LEGACY NOTE: when reading this field from an or implementation, for non-localized assets it will return the current game locale (or an empty string for English) instead of null.
#else
/// The content's locale code, if the content is localized.
#endif
string? Locale { get; }
#if SMAPI_DEPRECATED
/// The asset name being read.
/// LEGACY NOTE: when reading this field from an or implementation, it's always equivalent to for backwards compatibility.
#else
/// The asset name being read.
#endif
public IAssetName Name { get; }
/// The with any locale codes stripped.
/// For example, if contains a locale like Data/Bundles.fr-FR, this will be the name without locale like Data/Bundles. If the name has no locale, this field is equivalent.
public IAssetName NameWithoutLocale { get; }
/// The content data type.
Type DataType { get; }
#if SMAPI_DEPRECATED
/// The normalized asset name being read. The format may change between platforms; see to compare with a known path.
[Obsolete($"Use {nameof(Name)} or {nameof(NameWithoutLocale)} instead. This property will be removed in SMAPI 4.0.0.")]
string AssetName { get; }
/*********
** Public methods
*********/
/// Get whether the asset name being loaded matches a given name after normalization.
/// The expected asset path, relative to the game's content folder and without the .xnb extension or locale suffix (like 'Data\ObjectInformation').
[Obsolete($"Use {nameof(Name)}.{nameof(IAssetName.IsEquivalentTo)} or {nameof(NameWithoutLocale)}.{nameof(IAssetName.IsEquivalentTo)} instead. This method will be removed in SMAPI 4.0.0.")]
bool AssetNameEquals(string path);
#endif
}
}