using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using StardewValley; using StardewValley.TerrainFeatures; namespace StardewModdingAPI.Events { /// Event arguments for a event. public class TerrainFeatureListChangedEventArgs : EventArgs { /********* ** Accessors *********/ /// The location which changed. public GameLocation Location { get; } /// The terrain features added to the location. public IEnumerable> Added { get; } /// The terrain features removed from the location. public IEnumerable> Removed { get; } /// Whether this is the location containing the local player. public bool IsCurrentLocation => object.ReferenceEquals(this.Location, Game1.player?.currentLocation); /********* ** Public methods *********/ /// Construct an instance. /// The location which changed. /// The terrain features added to the location. /// The terrain features removed from the location. internal TerrainFeatureListChangedEventArgs(GameLocation location, IEnumerable> added, IEnumerable> removed) { this.Location = location; this.Added = added.ToArray(); this.Removed = removed.ToArray(); } } }