/// <summary>Called when this mod is enabled.</summary> public void OnEnabled() { if (!isWorkshopMode) { Log.Info($"The 'More Vehicles' mod version {modVersion} cannot be started because of no Steam Workshop"); return; } if (Compatibility.AreAnyIncompatibleModsActive()) { Log.Info($"The 'More Vehicles' mod version {modVersion} cannot be started because of incompatible mods"); return; } Log.Info("The 'More Vehicles' mod has been enabled, version: " + modVersion); patcher = new MethodPatcher(HarmonyId, patches); var patchedMethods = patcher.Apply(); if (patchedMethods.Count == patches.Length) { PluginManager.instance.eventPluginsChanged += ModsChanged; VehicleManagerCustomizer.Customize(); } else { Log.Error("The 'More Vehicles' mod failed to perform method redirections"); patcher.Revert(); patcher = null; } }
/// <summary> /// Performs mod registration when a game level is unloaded. /// </summary> public override void OnLevelUnloading() { base.OnLevelUnloading(); if (patcher == null) { return; } switch (currentloadmode) { case LoadMode.NewGame: case LoadMode.LoadGame: case LoadMode.LoadScenario: case LoadMode.NewGameFromScenario: break; default: var patchedMethods = patcher.Apply(); if (patchedMethods.Count == patches.Length) { PluginManager.instance.eventPluginsChanged += ModsChanged; VehicleManagerCustomizer.Customize(); } else { Log.Error("The 'More Vehicles' mod failed to perform method redirections"); patcher.Revert(); patcher = null; } return; } }
/// <summary>Called when this mod is enabled.</summary> public void OnEnabled() { Log.SetupDebug(Name); if (!isWorkshopMode) { Log.Info($"The 'More Vehicles' mod version {modVersion} cannot be started because of no Steam Workshop"); return; } if (Compatibility.AreAnyIncompatibleModsActive()) { Log.Info($"The 'More Vehicles' mod version {modVersion} cannot be started because of incompatible mods"); return; } Log.Info("The 'More Vehicles' mod has been enabled, version: " + modVersion); IPatch[] patches = { CinematicCameraControllerPatch.GetNearestVehicle, CinematicCameraControllerPatch.GetRandomVehicle, CinematicCameraControllerPatch.GetVehicleWithName, OutsideConnectionAIPatch.DummyTrafficProbability, PathVisualizerPatch.AddPathsImpl, ResidentAIPatch.DoRandomMove, TouristAIPatch.DoRandomMove, VehicleManagerPatch.DataDeserialize, VehicleManagerPatch.SimulationStepImpl, VehicleManagerPatch.UpdateData, VehiclePatch.GetTargetFrame, }; patcher = new MethodPatcher(HarmonyId, patches); var patchedMethods = patcher.Apply(); if (patchedMethods.Count == patches.Length) { PluginManager.instance.eventPluginsChanged += ModsChanged; VehicleManagerCustomizer.Customize(); } else { Log.Error("The 'More Vehicles' mod failed to perform method redirections"); patcher.Revert(); patcher = null; } }