using System; using StardewModdingAPI.Framework.Reflection; using StardewModdingAPI.Toolkit.Serialisation; using StardewValley; namespace StardewModdingAPI.Framework { /// The static state to use while is initialising, which happens before the constructor runs. internal class SGameConstructorHack { /********* ** Accessors *********/ /// Encapsulates monitoring and logging. public IMonitor Monitor { get; } /// Simplifies access to private game code. public Reflector Reflection { get; } /// Encapsulates SMAPI's JSON file parsing. public JsonHelper JsonHelper { get; } /// A callback to invoke the first time *any* game content manager loads an asset. public Action OnLoadingFirstAsset { get; } /********* ** Public methods *********/ /// Construct an instance. /// Encapsulates monitoring and logging. /// Simplifies access to private game code. /// Encapsulates SMAPI's JSON file parsing. /// A callback to invoke the first time *any* game content manager loads an asset. public SGameConstructorHack(IMonitor monitor, Reflector reflection, JsonHelper jsonHelper, Action onLoadingFirstAsset) { this.Monitor = monitor; this.Reflection = reflection; this.JsonHelper = jsonHelper; this.OnLoadingFirstAsset = onLoadingFirstAsset; } } }