private static void PlayHorseSound(string soundName, Horse horse, HorseConfig config) { if (horse?.currentLocation != null && !Game1.options.muteAnimalSounds && !config.DisableHorseSounds) { horse.currentLocation.playSoundAt(soundName, horse.getTileLocation()); } }
public static void VerifyConfigValues(HorseConfig config, HorseOverhaul mod) { bool invalidConfig = false; if (config.MaxMovementSpeedBonus < 0f) { config.MaxMovementSpeedBonus = 0f; invalidConfig = true; } SaddleBagOption res; if (Enum.TryParse(config.VisibleSaddleBags, true, out res)) { // reassign to ensure casing is correct config.VisibleSaddleBags = res.ToString(); } else { config.VisibleSaddleBags = SaddleBagOption.Disabled.ToString(); invalidConfig = true; } if (invalidConfig) { mod.DebugLog("At least one config value was out of range and was reset."); mod.Helper.WriteConfig(config); } }
public static void SetUpModConfigMenu(HorseConfig config, HorseOverhaul mod) { GenericModConfigMenuAPI api = mod.Helper.ModRegistry.GetApi <GenericModConfigMenuAPI>("spacechase0.GenericModConfigMenu"); if (api == null) { return; } var manifest = mod.ModManifest; api.RegisterModConfig(manifest, () => config = new HorseConfig(), delegate { mod.Helper.WriteConfig(config); VerifyConfigValues(config, mod); }); api.RegisterLabel(manifest, "General", null); api.RegisterSimpleOption(manifest, "Thin Horse", null, () => config.ThinHorse, (bool val) => config.ThinHorse = val); api.RegisterSimpleOption(manifest, "Saddle Bag", null, () => config.SaddleBag, (bool val) => config.SaddleBag = val); api.RegisterLabel(manifest, "Friendship", null); api.RegisterSimpleOption(manifest, "Movement Speed (MS)", null, () => config.MovementSpeed, (bool val) => config.MovementSpeed = val); api.RegisterSimpleOption(manifest, "Maximum MS Bonus", null, () => config.MaxMovementSpeedBonus, (float val) => config.MaxMovementSpeedBonus = val); api.RegisterSimpleOption(manifest, "Petting", null, () => config.Petting, (bool val) => config.Petting = val); api.RegisterSimpleOption(manifest, "Water", null, () => config.Water, (bool val) => config.Water = val); api.RegisterSimpleOption(manifest, "Feeding", null, () => config.Feeding, (bool val) => config.Feeding = val); api.RegisterLabel(manifest, "Other", null); api.RegisterSimpleOption(manifest, "Disable Stable Sprites", null, () => config.DisableStableSpriteChanges, (bool val) => config.DisableStableSpriteChanges = val); api.RegisterSimpleOption(manifest, "Pet Feeding", null, () => config.PetFeeding, (bool val) => config.PetFeeding = val); api.RegisterLabel(manifest, "(Menu Key Rebinding Only Available In Config File)", null); }
public static void VerifyConfigValues(HorseConfig config, HorseOverhaul mod) { bool invalidConfig = false; if (config.MaxMovementSpeedBonus < 0f) { config.MaxMovementSpeedBonus = 0f; invalidConfig = true; } if (invalidConfig) { mod.DebugLog("At least one config value was out of range and was reset."); mod.Helper.WriteConfig(config); } }
public static void SetUpModConfigMenu(HorseConfig config, HorseOverhaul mod) { IGenericModConfigMenuAPI api = mod.Helper.ModRegistry.GetApi <IGenericModConfigMenuAPI>("spacechase0.GenericModConfigMenu"); if (api == null) { return; } var manifest = mod.ModManifest; api.RegisterModConfig( manifest, () => config = new HorseConfig(), delegate { mod.Helper.WriteConfig(config); VerifyConfigValues(config, mod); }); api.RegisterLabel(manifest, "General", null); api.RegisterSimpleOption(manifest, "Thin Horse", null, () => config.ThinHorse, (bool val) => config.ThinHorse = val); api.RegisterSimpleOption(manifest, "Saddle Bags", null, () => config.SaddleBag, (bool val) => config.SaddleBag = val); api.RegisterChoiceOption(manifest, "Visible Saddle Bags", null, () => config.VisibleSaddleBags.ToString(), (string val) => config.VisibleSaddleBags = val, Enum.GetNames(typeof(SaddleBagOption))); api.RegisterLabel(manifest, "Friendship", null); api.RegisterSimpleOption(manifest, "Movement Speed (MS)", null, () => config.MovementSpeed, (bool val) => config.MovementSpeed = val); api.RegisterSimpleOption(manifest, "Maximum MS Bonus", null, () => config.MaxMovementSpeedBonus, (float val) => config.MaxMovementSpeedBonus = val); api.RegisterSimpleOption(manifest, "Petting", null, () => config.Petting, (bool val) => config.Petting = val); api.RegisterSimpleOption(manifest, "Water", null, () => config.Water, (bool val) => config.Water = val); api.RegisterSimpleOption(manifest, "Feeding", null, () => config.Feeding, (bool val) => config.Feeding = val); api.RegisterLabel(manifest, "Other", null); api.RegisterSimpleOption(manifest, "Pet Feeding", null, () => config.PetFeeding, (bool val) => config.PetFeeding = val); api.RegisterSimpleOption(manifest, "Allow Multiple Feedings A Day", null, () => config.AllowMultipleFeedingsADay, (bool val) => config.AllowMultipleFeedingsADay = val); api.RegisterSimpleOption(manifest, "Disable Stable Sprite Changes", null, () => config.DisableStableSpriteChanges, (bool val) => config.DisableStableSpriteChanges = val); // this is a spacer api.RegisterLabel(manifest, string.Empty, null); api.RegisterLabel(manifest, "(Menu Key Rebinding Only Available In Config File)", null); }
public override void Entry(IModHelper helper) { Config = Helper.ReadConfig <HorseConfig>(); HorseConfig.VerifyConfigValues(Config, this); Helper.Events.GameLoop.GameLaunched += delegate { CheckForKeybindConflict(); HorseConfig.SetUpModConfigMenu(Config, this); }; Helper.Events.GameLoop.SaveLoaded += delegate { SetStableOverlays(); }; Helper.Events.GameLoop.Saving += delegate { SaveChestsAndReset(); }; Helper.Events.GameLoop.DayStarted += delegate { OnDayStarted(); }; helper.Events.GameLoop.UpdateTicked += delegate { LateDayStarted(); }; helper.Events.Input.ButtonPressed += OnButtonPressed; helper.Events.Input.ButtonsChanged += OnButtonsChanged; Patcher.PatchAll(this); }
public static void SetUpModConfigMenu(HorseConfig config, HorseOverhaul mod) { IGenericModConfigMenuAPI api = mod.Helper.ModRegistry.GetApi <IGenericModConfigMenuAPI>("spacechase0.GenericModConfigMenu"); if (api == null) { return; } var manifest = mod.ModManifest; api.RegisterModConfig( manifest, delegate { // if the world is ready, then we are not in the main menu, so reset should only reset the keybindings if (Context.IsWorldReady) { config.HorseMenuKey = HorseMenuKeyDefault; config.PetMenuKey = PetMenuKeyDefault; config.AlternateSaddleBagAndFeedKey = AlternateSaddleBagAndFeedKeyDefault; config.DisableMainSaddleBagAndFeedKey = false; } else { config = new HorseConfig(); } }, delegate { mod.Helper.WriteConfig(config); VerifyConfigValues(config, mod); } ); api.SetTitleScreenOnlyForNextOptions(manifest, true); api.RegisterLabel(manifest, "General", null); api.RegisterSimpleOption(manifest, "Thin Horse", null, () => config.ThinHorse, (bool val) => config.ThinHorse = val); api.RegisterSimpleOption(manifest, "Saddle Bags", null, () => config.SaddleBag, (bool val) => config.SaddleBag = val); api.RegisterChoiceOption(manifest, "Visible Saddle Bags", null, () => config.VisibleSaddleBags.ToString(), (string val) => config.VisibleSaddleBags = val, Enum.GetNames(typeof(SaddleBagOption))); api.RegisterLabel(manifest, "Friendship", null); api.RegisterSimpleOption(manifest, "Movement Speed (MS)", null, () => config.MovementSpeed, (bool val) => config.MovementSpeed = val); api.RegisterSimpleOption(manifest, "Maximum MS Bonus", null, () => config.MaxMovementSpeedBonus, (float val) => config.MaxMovementSpeedBonus = val); api.RegisterSimpleOption(manifest, "Petting", null, () => config.Petting, (bool val) => config.Petting = val); api.RegisterSimpleOption(manifest, "Water", null, () => config.Water, (bool val) => config.Water = val); api.RegisterSimpleOption(manifest, "Feeding", null, () => config.Feeding, (bool val) => config.Feeding = val); api.RegisterSimpleOption(manifest, "Heater", null, () => config.HorseHeater, (bool val) => config.HorseHeater = val); api.RegisterLabel(manifest, "Other", null); api.RegisterSimpleOption(manifest, "Horse Hoofstep Effects", null, () => config.HorseHoofstepEffects, (bool val) => config.HorseHoofstepEffects = val); api.RegisterSimpleOption(manifest, "Disable Horse Sounds", null, () => config.DisableHorseSounds, (bool val) => config.DisableHorseSounds = val); api.RegisterSimpleOption(manifest, "New Food System", null, () => config.NewFoodSystem, (bool val) => config.NewFoodSystem = val); api.RegisterSimpleOption(manifest, "Pet Feeding", null, () => config.PetFeeding, (bool val) => config.PetFeeding = val); api.RegisterSimpleOption(manifest, "Allow Multiple Feedings A Day", null, () => config.AllowMultipleFeedingsADay, (bool val) => config.AllowMultipleFeedingsADay = val); api.RegisterSimpleOption(manifest, "Disable Stable Sprite Changes", null, () => config.DisableStableSpriteChanges, (bool val) => config.DisableStableSpriteChanges = val); api.SetTitleScreenOnlyForNextOptions(manifest, false); api.RegisterLabel(manifest, "Keybindings", null); api.AddKeybindList(manifest, () => config.HorseMenuKey, (KeybindList keybindList) => config.HorseMenuKey = keybindList, () => "Horse Menu Key"); api.AddKeybindList(manifest, () => config.PetMenuKey, (KeybindList keybindList) => config.PetMenuKey = keybindList, () => "Pet Menu Key"); api.AddKeybindList(manifest, () => config.AlternateSaddleBagAndFeedKey, (KeybindList keybindList) => config.AlternateSaddleBagAndFeedKey = keybindList, () => "Alternate Saddle Bag\nAnd Feed Key"); api.RegisterSimpleOption(manifest, "Disable Main Saddle Bag\nAnd Feed Key", null, () => config.DisableMainSaddleBagAndFeedKey, (bool val) => config.DisableMainSaddleBagAndFeedKey = val); }
public static void PlayHorsePettingSound(Horse horse, HorseConfig config) { int number = Game1.random.Next(2); PlayHorseSound(HorseSnickerSound + number, horse, config); }
public static void PlayHorseEatSound(Horse horse, HorseConfig config) { PlayHorseSound(HorseSnortSound, horse, config); }