using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework.Graphics;
using StardewModdingAPI.Framework;
using StardewModdingAPI.Framework.Content;
using xTile;
namespace StardewModdingAPI.Events
{
/// Event arguments for an event.
public class AssetRequestedEventArgs : EventArgs
{
/*********
** Fields
*********/
/// The mod handling the event.
private readonly IModMetadata Mod;
/*********
** Accessors
*********/
/// The name of the asset being requested.
public IAssetName Name { get; }
/// The load operations requested by the event handler.
internal IList LoadOperations { get; } = new List();
/// The edit operations requested by the event handler.
internal IList EditOperations { get; } = new List();
/*********
** Public methods
*********/
/// Construct an instance.
/// The mod handling the event.
/// The name of the asset being requested.
internal AssetRequestedEventArgs(IModMetadata mod, IAssetName name)
{
this.Mod = mod;
this.Name = name;
}
/// Provide the initial instance for the asset, instead of trying to load it from the game's Content folder.
/// Get the initial instance of an asset.
///
/// Usage notes:
///
/// The asset doesn't need to exist in the game's Content folder. If any mod loads the asset, the game will see it as an existing asset as if it was in that folder.
/// Each asset can logically only have one initial instance. If multiple loads apply at the same time, SMAPI will raise an error and ignore all of them. If you're making changes to the existing asset instead of replacing it, you should use instead to avoid those limitations and improve mod compatibility.
///
///
public void LoadFrom(Func