// 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 EndUpdate() { updating = false; EvaluateDependencies(); LoadSettings(); ModSettingsManager.SaveBinarySettings(this); }
private static void Setup() { ModSettingsManager.setPanelDescription($"Made by Metrosexual Fruitcake#6969\n\nVersion {CustomEmotesAPI.VERSION}"); ModSettingsManager.setPanelTitle("Custom Emotes"); ModSettingsManager.CreateCategory("Controls"); }
private static void AddKeyBind(string name, string desc, KeyCode key, string category) { var thing = new RiskOfOptions.OptionConstructors.KeyBind() { Name = name, Description = desc, DefaultValue = key, CategoryName = category }; ModSettingsManager.AddOption(thing); }
private ModSettingsManager GetManager() { var manager = new ModSettingsManager(tempFilePath, logger); manager.BeforeModSettingsSaved += () => savedModifiedPacks = manager.ModSettingsPacks.Where(p => p.HasUnsavedChanges).ToArray(); manager.AfterModSettingsSaved += () => afterSavedCallbackInvoked = true; return(manager); }
internal static void AddStepSliderOption(ConfigEntry <float> configEntry, float min, float max, float step) { StepSliderConfig config = new StepSliderConfig(); config.min = min; config.max = max; config.increment = step; ModSettingsManager.AddOption(new StepSliderOption(configEntry, config)); }
public static void doOptions() { ModSettingsManager.setPanelTitle("Hitbox Viewer"); ModSettingsManager.setPanelDescription("Enable/disable hitbox or hurtbox viewer"); ModSettingsManager.addOption(new ModOption(ModOption.OptionType.Bool, "Enable Hitboxes", "", "1")); ModSettingsManager.addListener(ModSettingsManager.getOption("Enable Hitboxes"), new UnityEngine.Events.UnityAction <bool>(hitboxBoolEvent)); ModSettingsManager.addOption(new ModOption(ModOption.OptionType.Bool, "Enable Hurtboxes", "", "0")); ModSettingsManager.addListener(ModSettingsManager.getOption("Enable Hurtboxes"), new UnityEngine.Events.UnityAction <bool>(hurtboxBoolEvent)); }
private static void Yes() { AddKeyBind("Emote Wheel", "Displays the emote wheel.", KeyCode.C, "Controls"); ModSettingsManager.AddListener(new UnityAction <KeyCode>(delegate(KeyCode keyCode) { EmoteWheel.emoteButton = keyCode; }), "Emote Wheel", "Controls"); AddKeyBind("left", "Displays the emote wheel.", KeyCode.Mouse0, "Controls"); ModSettingsManager.AddListener(new UnityAction <KeyCode>(delegate(KeyCode keyCode) { EmoteWheel.leftClick = keyCode; }), "left", "Controls"); AddKeyBind("right", "Displays the emote wheel.", KeyCode.Mouse1, "Controls"); ModSettingsManager.AddListener(new UnityAction <KeyCode>(delegate(KeyCode keyCode) { EmoteWheel.rightClick = keyCode; }), "right", "Controls"); }
protected override void SetItem(int index, Mod item) { base.SetItem(index, item); if (!updating) { EvaluateDependencies(); LoadSettings(); if (item.Active) { ModSettingsManager.SaveBinarySettings(this); } } }
protected override void RemoveItem(int index) { var item = this[index]; bool active = item.Active; base.RemoveItem(index); if (!updating) { EvaluateDependencies(); if (active) { ModSettingsManager.SaveBinarySettings(this); } } }
void Start() { selected = gameObjects[0]; events = input.GetFieldValue <RoR2.UI.MPEventSystem>("eventSystem"); emoteButton = ModSettingsManager.GetOption("Emote Wheel", "Controls").GetValue <KeyCode>(); leftClick = ModSettingsManager.GetOption("left", "Controls").GetValue <KeyCode>(); rightClick = ModSettingsManager.GetOption("right", "Controls").GetValue <KeyCode>(); for (int i = 0; i < gameObjects.Count; i++) { rightPage[i] = CustomEmotesAPI.allClipNames[UnityEngine.Random.Range(0, CustomEmotesAPI.allClipNames.Count)]; leftPage[i] = CustomEmotesAPI.allClipNames[UnityEngine.Random.Range(0, CustomEmotesAPI.allClipNames.Count)]; middlePage[i] = gameObjects[i].GetComponentInChildren <TextMeshProUGUI>().text; } }
// 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); } }
public static void readOptions() { string disableHit = ModSettingsManager.getOptionValue("Enable Hitboxes"); if (!string.IsNullOrEmpty(disableHit)) { HitboxRevealer.showingHitBoxes = disableHit == "1"; } string disableHurt = ModSettingsManager.getOptionValue("Enable Hurtboxes"); if (!string.IsNullOrEmpty(disableHurt)) { HitboxRevealer.showingHurtBoxes = disableHurt == "1"; } }
internal static void Init(string description) { ModSettingsManager.SetModDescription(description); using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("icon")) { Texture2D texture = new Texture2D(0, 0); byte[] imgData = new byte[stream.Length]; stream.Read(imgData, 0, (int)stream.Length); if (ImageConversion.LoadImage(texture, imgData)) { ModSettingsManager.SetModIcon( Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0, 0)) ); } } }
// 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); } }
private static void ActivateMods(CommandLine commandLine) { var mods = new ModCollection(); var modpacks = new ModpackCollection(); ModManager.BeginUpdateTemplates(); ModSettingsManager.LoadSettings(); ModSettingsManager.BeginUpdate(); Mod.LoadMods(mods, modpacks); ModpackTemplateList.Instance.PopulateModpackList(mods, modpacks, null); mods.ForEach(mod => mod.Active = false); string modpackName; if (commandLine.TryGetArgument('p', "modpack", out modpackName)) { Modpack modpack = modpacks.Find(modpackName); if (modpack != null) { modpack.Active = true; } else { MessageBox.Show( $"No modpack named '{modpackName}' found.\nThe game will be launched without any mods enabled.", "Error loading modpack!", MessageBoxButton.OK, MessageBoxImage.Warning); } } ModManager.EndUpdateTemplates(true); ModManager.SaveTemplates(); ModSettingsManager.EndUpdate(true); ModSettingsManager.SaveBinarySettings(mods); }
internal static void AddCheckboxOption(ConfigEntry <bool> configEntry) { ModSettingsManager.AddOption(new CheckBoxOption(configEntry)); }
internal static void AddChoiceOption <T>(ConfigEntry <T> configEntry) where T : Enum { ModSettingsManager.AddOption(new ChoiceOption(configEntry)); }
internal static void AddKeyBindOption(ConfigEntry <KeyboardShortcut> configEntry) { ModSettingsManager.AddOption(new KeyBindOption(configEntry)); }