using System;
using StardewModdingAPI.Events;
namespace StardewModdingAPI.Framework.Events
{
/// Events raised when something changes in the world.
public class ModWorldEvents : IWorldEvents
{
/*********
** Properties
*********/
/// The underlying event manager.
private readonly EventManager EventManager;
/// The mod which uses this instance.
private readonly IModMetadata Mod;
/*********
** Accessors
*********/
/// Raised after a game location is added or removed.
public event EventHandler LocationListChanged
{
add => this.EventManager.World_LocationListChanged.Add(value, this.Mod);
remove => this.EventManager.World_LocationListChanged.Remove(value);
}
/// Raised after buildings are added or removed in a location.
public event EventHandler BuildingListChanged
{
add => this.EventManager.World_BuildingListChanged.Add(value, this.Mod);
remove => this.EventManager.World_BuildingListChanged.Remove(value);
}
/// Raised after objects are added or removed in a location.
public event EventHandler ObjectListChanged
{
add => this.EventManager.World_ObjectListChanged.Add(value);
remove => this.EventManager.World_ObjectListChanged.Remove(value);
}
/*********
** Public methods
*********/
/// Construct an instance.
/// The mod which uses this instance.
/// The underlying event manager.
internal ModWorldEvents(IModMetadata mod, EventManager eventManager)
{
this.Mod = mod;
this.EventManager = eventManager;
}
}
}