diff options
-rw-r--r-- | src/SMAPI/Framework/SCore.cs | 10 | ||||
-rw-r--r-- | src/SMAPI/Program.cs | 19 |
2 files changed, 26 insertions, 3 deletions
diff --git a/src/SMAPI/Framework/SCore.cs b/src/SMAPI/Framework/SCore.cs index b4aa3595..801a7237 100644 --- a/src/SMAPI/Framework/SCore.cs +++ b/src/SMAPI/Framework/SCore.cs @@ -168,7 +168,8 @@ namespace StardewModdingAPI.Framework /// <summary>Construct an instance.</summary> /// <param name="modsPath">The path to search for mods.</param> /// <param name="writeToConsole">Whether to output log messages to the console.</param> - public SCore(string modsPath, bool writeToConsole) + /// <param name="developerModeValue">null if not modified else whether to use developer mode</param> + public SCore(string modsPath, bool writeToConsole, bool? developerModeValue) { SCore.Instance = this; @@ -183,6 +184,13 @@ namespace StardewModdingAPI.Framework // init basics this.Settings = JsonConvert.DeserializeObject<SConfig>(File.ReadAllText(Constants.ApiConfigPath)); + + // temporary overwrite DeveloperMode Setting + if (developerModeValue.HasValue) + { + this.Settings.DeveloperMode = developerModeValue.Value; + } + if (File.Exists(Constants.ApiUserConfigPath)) JsonConvert.PopulateObject(File.ReadAllText(Constants.ApiUserConfigPath), this.Settings); diff --git a/src/SMAPI/Program.cs b/src/SMAPI/Program.cs index f2f65287..32bf0bdd 100644 --- a/src/SMAPI/Program.cs +++ b/src/SMAPI/Program.cs @@ -179,15 +179,30 @@ namespace StardewModdingAPI bool writeToConsole = !args.Contains("--no-terminal") && Environment.GetEnvironmentVariable("SMAPI_NO_TERMINAL") == null; // get mods path + bool? developerModeValue = null; string modsPath; { string rawModsPath = null; - // get from command line args + // get mods path from command line args int pathIndex = Array.LastIndexOf(args, "--mods-path") + 1; if (pathIndex >= 1 && args.Length >= pathIndex) rawModsPath = args[pathIndex]; + // get developer mode from command line args + int developerModeValueIndex = Array.LastIndexOf(args, "--developer-mode") + 1; + if (developerModeValueIndex >= 1 && args.Length >= developerModeValueIndex) + { + if (args[developerModeValueIndex].ToLower().Equals("true")) + { + developerModeValue = true; + } + else if (args[developerModeValueIndex].ToLower().Equals("false")) + { + developerModeValue = false; + } + } + // get from environment variables if (string.IsNullOrWhiteSpace(rawModsPath)) rawModsPath = Environment.GetEnvironmentVariable("SMAPI_MODS_PATH"); @@ -199,7 +214,7 @@ namespace StardewModdingAPI } // load SMAPI - using SCore core = new SCore(modsPath, writeToConsole); + using SCore core = new SCore(modsPath, writeToConsole, developerModeValue); core.RunInteractively(); } |