// called during Verse.Mod instantiation private void InitializeController() { try { ReadOwnVersion(); Logger.Message("version {0}", LibraryVersion); PrepareReflection(); ApplyHarmonyPatches(); Settings = new ModSettingsManager(); Settings.BeforeModSettingsSaved += OnBeforeModSettingsSaved; UpdateFeatures = new UpdateFeatureManager(); UpdateFeatures.OnEarlyInitialize(); TickDelayScheduler = new TickDelayScheduler(); DistributedTicker = new DistributedTickScheduler(); DoLater = new DoLaterScheduler(); LogUploader = new LogPublisher(); var librarySettings = Settings.GetModSettings(ModIdentifier); QuickstartController.OnEarlyInitialize(librarySettings); ModSpotter = new ModSpottingManager(); ModSpotter.OnEarlyInitialize(); new LibraryVersionChecker(LibraryVersion, Logger).OnEarlyInitialize(); LoadOrderChecker.ValidateLoadOrder(); EnumerateModAssemblies(); EarlyInitializeChildMods(); } catch (Exception e) { Logger.ReportException(e); } }
public void MultipleDefsTest() { void AssertFilteredDefs(IEnumerable <string> firstTimeSeenPackageIds, IEnumerable <string> expectedDefNames, string assertionMessage) { var results = UpdateFeatureManager.FilterFeatureDefsByMatchingAudience( defs, firstTimeSeenPackageIds.Contains, null ).Select(d => d.defName); Assert.That(results, Is.EquivalentTo(expectedDefNames), assertionMessage); } AssertFilteredDefs( new[] { "mod1", "mod2" }, new[] { "2", "4", "5" }, "both first seen" ); AssertFilteredDefs( new[] { "mod1" }, new[] { "2", "4" }, "mod1 first seen" ); AssertFilteredDefs( new[] { "mod2" }, new[] { "1", "3", "4", "5" }, "mod2 first seen" ); AssertFilteredDefs( Enumerable.Empty <string>(), new[] { "1", "3", "4" }, "none first seen" ); }
public void NullPackageIdTest() { var noPackageDef = new UpdateFeatureDef(); Assert.IsNull(noPackageDef.modContentPack); Assert.IsNull(noPackageDef.OverridePackageId); Assert.Throws <InvalidOperationException>(() => { var _ = UpdateFeatureManager.FilterFeatureDefsByMatchingAudience( new[] { noPackageDef }, s => false, ex => throw ex ).ToArray(); } ); }
// called during Verse.Mod instantiation private void InitializeController() { try { PrepareReflection(); ApplyHarmonyPatches(); Settings = new ModSettingsManager(OnSettingsChanged); UpdateFeatures = new UpdateFeatureManager(); TickDelayScheduler = new TickDelayScheduler(); DistributedTicker = new DistributedTickScheduler(); LogUploader = new LogPublisher(); ReadOwnVersionFile(); LoadOrderChecker.ValidateLoadOrder(); } catch (Exception e) { Logger.ReportException(e); } }
// called during Verse.Mod instantiation private void InitializeController() { try { ReadOwnVersion(); Logger.Message("version {0}", LibraryVersion); PrepareReflection(); ApplyHarmonyPatches(); Settings = new ModSettingsManager(OnSettingsChanged); UpdateFeatures = new UpdateFeatureManager(); TickDelayScheduler = new TickDelayScheduler(); DistributedTicker = new DistributedTickScheduler(); DoLater = new DoLaterScheduler(); LogUploader = new LogPublisher(); LoadOrderChecker.ValidateLoadOrder(); EnumerateModAssemblies(); EarlyInitializeChildMods(); } catch (Exception e) { Logger.ReportException(e); } }
internal void Initalize() { if (Settings != null) // double initialization safeguard by scene object, shouldn't happen { Logger.Error("Repeat initialization detected"); return; } try { PrepareReflection(); Settings = new ModSettingsManager(OnSettingsChanged); UpdateFeatures = new UpdateFeatureManager(); CallbackScheduler = new CallbackScheduler(); DistributedTicker = new DistributedTickScheduler(); LogUploader = new LogPublisher(); reloadWatcher = new DefReloadWatcher(OnDefReloadDetected); RegisterOwnSettings(); ReadOwnVersionFile(); LoadReloadInitialize(); } catch (Exception e) { Logger.ReportException(e); } }