/********* ** Public methods *********/ /// <summary>The mod entry point, called after the mod is first loaded.</summary> /// <param name="helper">Provides simplified APIs for writing mods.</param> public override void Entry(IModHelper helper) { // Read in config file and create if needed try { this.Config = this.Helper.ReadConfig <ModConfig>(); } catch (Exception) { this.Config = new ModConfig(); this.Monitor.Log(this.Helper.Translation.Get("IllFormattedConfig"), LogLevel.Warn); } // Initialize the error logger and config in all the other files via a helper function MCTHelperFunctions.Initialize(this.Monitor, this.Config, helper); // Do the Harmony things var harmony = new Harmony(this.ModManifest.UniqueID); RepeatPatcher.Apply(harmony); WeddingPatcher.Apply(harmony); BirthPatcher.Apply(harmony); DivorcePatcher.Apply(harmony); LuauPatcher.Apply(harmony); WorldChangePatcher.Apply(harmony); NightEventPatcher.Apply(harmony); IslandPatcher.Apply(harmony); // Adds a command to check current active conversation topics helper.ConsoleCommands.Add("vl.mct.current_CTs", "Returns a list of the current active dialogue events.", MCTHelperFunctions.console_GetCurrentCTs); // Adds a command to see if player has a given mail flag helper.ConsoleCommands.Add("vl.mct.has_flag", "Checks if the player has a mail flag.\n\nUsage: vl.mct_hasflag <flagName>\n- flagName: the possible mail flag name.", MCTHelperFunctions.console_HasMailFlag); // Adds a command to add a conversation topic helper.ConsoleCommands.Add("vl.mct.add_CT", "Adds the specified conversation topic with duration of 1 day.\n\nUsage: vl.mct_add_CT <topicName> <duration>\n- topicName: the conversation topic to add.\n- duration: duration of conversation topic to add.", MCTHelperFunctions.console_AddConversationTopic); // Adds a command to remove a conversation topic helper.ConsoleCommands.Add("vl.mct.remove_CT", "Removes the specified conversation topic.\n\nUsage: vl.mct_remove_CT <topicName>\n- topicName: the conversation topic to remove.", MCTHelperFunctions.console_RemoveConversationTopic); // Adds a command to check if a conversation topic is repeatable helper.ConsoleCommands.Add("vl.mct.is_repeatable_CT", "Checks whether the specified conversation topic is repeatable.\n\nUsage: vl.mct_remove_CT <topicName>\n- topicName: the conversation topic to check.", MCTHelperFunctions.console_IsRepeatableCT); // Adds a command to print all repeatable conversation topics helper.ConsoleCommands.Add("vl.mct.repeatable_CTs", "Returns a list of all repeatable conversation topics.", MCTHelperFunctions.console_AllRepeatableCTs); // Add GMCM helper.Events.GameLoop.GameLaunched += this.RegisterGMCM; // Add asset editor helper.Events.Content.AssetRequested += this.OnAssetRequested; }
// Initialize Monitor and Config for this class and all other classes public static void Initialize(IMonitor monitor, ModConfig config, IModHelper helper) { Monitor = monitor; Config = config; Helper = helper; RepeatPatcher.Initialize(Monitor, Config); WeddingPatcher.Initialize(Monitor, Config); BirthPatcher.Initialize(Monitor, Config); DivorcePatcher.Initialize(Monitor, Config); LuauPatcher.Initialize(Monitor, Config); WorldChangePatcher.Initialize(Monitor, Config); NightEventPatcher.Initialize(Monitor, Config); JojaEventAssetEditor.Initialize(Monitor, Config); IslandPatcher.Initialize(Monitor, Config); }