public void newDay(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { BackgroundHandler.updateBackground(); ForegroundHandler.updateForeground(); ParticleHandler.updateParticleSystems(Game1.currentLocation); //ParticleSystem testSystem = new ParticleSystem("Content/Particles/Test_P"); //testSystem.tileLocation = new Microsoft.Xna.Framework.Vector2(24, 10); //ParticleSystem testSystem = new ParticleSystem(Game1.mouseCursors, new Microsoft.Xna.Framework.Rectangle(32, 0, 10, 10), new Microsoft.Xna.Framework.Vector2(24, 10), 4, 0.1f, 5f, 1, 24000, 0, 0, -0.05f, 0.55f, // new Dictionary<int, float> // { // {ParticleSystem.Out, 0 }, // {ParticleSystem.North, -2 }, // {ParticleSystem.East, -2 }, // {ParticleSystem.Up, 0 }, // {ParticleSystem.Right, 0 } // }, // new Dictionary<int, float> // { // {ParticleSystem.Out, 0 }, // {ParticleSystem.North, 10f }, // {ParticleSystem.East, 10f }, // {ParticleSystem.Up, 0 }, // {ParticleSystem.Right, 0 } // } //); //ParticleHandler.systems.Add(testSystem); }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { if (!Game1.isRaining || !Game1.IsMasterGame) { return; } foreach (var l in Game1.locations) { if (l.terrainFeatures.Pairs.Any() && l is Farm && l.map.Properties.ContainsKey("Underground") && l.map.Properties["Underground"] == "true") { foreach (var k in l.terrainFeatures.Pairs) { if (k.Value is HoeDirt dirt) { dirt.state.Value = HoeDirt.dry; } } //rewater foreach (var o in l.objects.Pairs) { Monitor.Log($"Parent Sheet Index is {o.Value.ParentSheetIndex}", LogLevel.Info); if (o.Value.ParentSheetIndex == 621 || o.Value.ParentSheetIndex == 599 || o.Value.ParentSheetIndex == 645 || o.Value.ParentSheetIndex == 1113) { o.Value.DayUpdate(l); } } } } }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { if (!config.RandomizeMonsterPositionInHutch) { return; } foreach (var item in Game1.getFarm().buildings) { if (item?.indoors?.Value is SlimeHutch hutch) { foreach (var monster in hutch.characters) { int tries = 50; Vector2 tile = hutch.getRandomTile(); while ((!hutch.isTileLocationTotallyClearAndPlaceable(tile) || tile.Y >= 12f) && tries > 0) { tile = hutch.getRandomTile(); tries--; } tile *= 64; if (tries > 0) { monster.Position = tile; } } } } }
private void OnDayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { if (DoNothing) { return; } Monitor.Log($"Testing API: {ClimateAPI.GetAmtOfRainSinceDay1()}, {ClimateAPI.GetNumDaysOfStreak()} and {ClimateAPI.GetCurrentWeatherStreak()}"); }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { if (isTenting) { Helper.Events.GameLoop.TimeChanged += GameLoop_TimeChanged; Helper.Events.Input.ButtonPressed += Input_ButtonPressed; } }
private void GameLoop_DayStarted(object?sender, StardewModdingAPI.Events.DayStartedEventArgs e) { Game1.options.musicVolumeLevel = musicOutsideEvent; Game1.musicCategory.SetVolume(musicOutsideEvent); Game1.musicPlayerVolume = musicOutsideEvent; eventTriggered = false; }
/// <summary> /// Refresh the stock of every store at the start of each day /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { Monitor.Log($"Refreshing stock for all custom shops...", LogLevel.Debug); foreach (Shop Store in Shops.Values) { Store.UpdateItemPriceAndStock(); } }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { string text = "I was just thinking about the last %year years...\"/pause 1000/speak spouse \"We've been through a lot together, haven't we?$h"; DialoguePatches.AddWrapperToString("Data\\ExtraDialogue:SummitEvent_Dialogue2_Spouse", ref text); Monitor.Log($"prefixed: {text}"); DialoguePatches.FixString(Game1.getCharacterFromName("Shane"), ref text); Monitor.Log($"fixed: {text}"); }
private void OnDayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { LogDebug($"Autograbbing on day start"); var locations = Game1.locations.Concat(Game1.getFarm().buildings.Select(building => building.indoors.Value)).Where(location => location != null); foreach (var location in locations) { GrabAtLocation(location); } }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { if (Config.JukeboxRingEnabled) { if (Game1.player.craftingRecipes.ContainsKey("Mini-Jukebox") && !Game1.player.craftingRecipes.ContainsKey("Jukebox Ring")) { Game1.player.craftingRecipes.Add("Jukebox Ring", 0); } } }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { foreach (var location in Game1.locations) { if (location.IsGreenhouse) { Harvest(location); } } }
void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { pet = null; SetState(PetState.Vanilla); hasFetchedToday = false; if (GetPet() != null && !(Game1.getFarm().characters.Contains(pet) && !(Game1.getLocationFromName(Game1.player.homeLocation).characters.Contains(pet)))) { pet.warpToFarmHouse(Game1.player); } }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { foreach (var shopid in MapTKShop.Bought.Keys) { if (MapTKShop.GetShop(Plato.ModHelper, shopid) is MapTKShop shop && (shop.Restock == "Daily" || (shop.Restock == "Monthly" && Game1.dayOfMonth == 1) || (shop.Restock == "Yearly" && Game1.dayOfMonth == 1 && Game1.currentSeason.ToLower() == "spring"))) { MapTKShop.Bought.Remove(shopid); } } }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { foreach (Building b in Game1.getFarm().buildings) { if (b.nameOfIndoorsWithoutUnique != "SlimeHutch") { continue; } ((SlimeHutch)b.indoors).TryRefillWater(); } }
private void OnNewDay(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { //new day reset TimeElapsed = 0; CurrentRainAmt = (Game1.isRaining ? 70 : 0); if (Game1.random.NextDouble() <= ModOptions.VariableRainChance && Game1.isRaining) { Game1.hudMessages.Add(new HUDMessage("The rain today will be variable")); IsVariableRain = true; } }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { if (CheckForMapAccess()) { if (IsMainPlayer()) { ResetDailyValues(); SetMaxNumberOfTrainsAndStartTime(); } UpdateTrainLootChances(); } }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { lastFadeAlpha = 1f; displayTicks = 0; clickedOnQuote = false; dailyQuote = GetAQuote(Config.RandomQuote); if (dailyQuote != null) { Monitor.Log($"Today's quote: {dailyQuote.quote}\r\n\r\n-- {dailyQuote.author}", LogLevel.Debug); Helper.Events.Display.Rendering += Display_Rendering; Helper.Events.Display.Rendered += Display_Rendered; } }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { var spawn = Helper.Data.ReadSaveData <LastOverWorldChestSpawn>("lastOverworldChestSpawn") ?? new LastOverWorldChestSpawn(); int days = Game1.Date.TotalDays - spawn.lastOverworldChestSpawn; Monitor.Log($"Last spawn: {days} days ago"); if (spawn.lastOverworldChestSpawn < 1 || Game1.Date.TotalDays < 2 || (Config.RespawnInterval > 0 && days >= Config.RespawnInterval)) { Monitor.Log($"Respawning chests", LogLevel.Debug); spawn.lastOverworldChestSpawn = Game1.Date.TotalDays; Helper.Data.WriteSaveData("lastOverworldChestSpawn", spawn); RespawnChests(); } }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { curedNPCs.Clear(); curedFarmers.Clear(); //Utils.AddZombiePlayer(Game1.player.uniqueMultiplayerID); if (Game1.random.NextDouble() < config.DailyZombificationChance) { Utils.MakeRandomZombie(); } if (zombieTextures.Count > 0 && !Game1.player.mailReceived.Contains("ZombieCure")) { Game1.mailbox.Add("ZombieCure"); } }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { Farm farm = Game1.getFarm(); if (Game1.isRaining) { foreach (KeyValuePair <Vector2, Object> kvp in farm.objects.Pairs) { if (kvp.Value.bigCraftable && kvp.Value.Name.EndsWith("Pet Bowl")) { kvp.Value.modData["aedenthorn.PetBowl/Watered"] = "true"; } } } }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { if (Game1.player.hasOrWillReceiveMail(AquariumOpenAfterLandslide) || Game1.player.hasOrWillReceiveMail(AquariumOpenLater)) { return; } if (Game1.Date.TotalDays == 30) { Game1.player.mailbox.Add(AquariumOpenAfterLandslide); } if (Game1.Date.TotalDays > 30) { Game1.player.mailbox.Add(AquariumOpenLater); } }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { //Check and log the trues if (Game1.IsMasterGame) { this.Monitor.Log("isMasterGame was true this is not expected.", LogLevel.Warn); } if (Game1.player.uniqueMultiplayerID == Game1.MasterPlayer.uniqueMultiplayerID) { this.Monitor.Log("Unique multiplayer ID was the same this is not expected.", LogLevel.Warn); } if (Game1.player.name == Game1.MasterPlayer.name) { this.Monitor.Log("player.name was that same this is not expected.", LogLevel.Warn); } if (Context.IsMainPlayer) { this.Monitor.Log("SMAPI Context IsMainPlayer was true this is not expected.", LogLevel.Warn); } //Check and log the nots if (!Game1.IsMasterGame) { this.Monitor.Log("isMasterGame was true this is expected."); } if (Game1.player.uniqueMultiplayerID != Game1.MasterPlayer.uniqueMultiplayerID) { this.Monitor.Log("Unique multiplayer ID was the same this is expected."); } if (Game1.player.name != Game1.MasterPlayer.name) { this.Monitor.Log("player.name was that same this is expected."); } if (!Context.IsMainPlayer) { this.Monitor.Log("SMAPI Context IsMainPlayer was true this is expected."); } }
private static void DayStarted_UpdateWaterColor(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { CachedWaterColors.Clear(); //clear the cache to allow changes by the game HashSet <GameLocation> locationsToUpdate = new HashSet <GameLocation>(); //create a set of distinct locations to update foreach (Farmer player in Game1.getOnlineFarmers()) //for each active player { if (player.currentLocation != null) //if this player has a location { locationsToUpdate.Add(player.currentLocation); //add it to the set } } foreach (GameLocation location in locationsToUpdate) //for each location in the set { UpdateWaterColor(location); //update it } }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { foreach (Building building in Game1.getFarm().buildings) { this.Monitor.VerboseLog($"Checking Building {building.buildingType.Value}"); if (building is Coop || building is Barn) { if (building.indoors.Value is AnimalHouse indoors && indoors.Objects.Values.Any(p => p.Name.Contains("arecrow"))) { foreach (FarmAnimal animal in indoors.animals.Values) { animal.pet(Game1.MasterPlayer); this.Monitor.VerboseLog($" Petting {animal.Name}"); } } } } }
private void OnDayStart(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { var zoneAreas = Helper.Data.ReadJsonFile <ModData>("assets/ModData.json").ZoneAreas; Zones = new Dictionary <GameLocation, string>(); foreach (var loc in Game1.locations) { var zone = zoneAreas.Where(area => area.Value.Contains(loc.Name)).Select(area => area.Key).FirstOrDefault() ?? loc.Name; Zones.Add(loc, zone); LogDebug($"Zoned {loc.Name} as {zone}"); if (loc is BuildableGameLocation buildableLoc) { foreach (var building in buildableLoc.buildings.Where(building => building.indoors.Value != null)) { Zones.Add(building.indoors.Value, zone); LogDebug($"Zoned interior {building.indoors.Value.Name} as {zone}"); } } } }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { startedWalking = false; if (!Config.EnableMod || Utility.isFestivalDay(Game1.dayOfMonth, Game1.currentSeason)) { return; } var robin = Game1.getCharacterFromName("Robin"); if (robin is null) { Monitor.Log($"Couldn't find Robin", LogLevel.Warn); return; } robin.shouldPlayRobinHammerAnimation.Value = false; robin.ignoreScheduleToday = false; robin.resetCurrentDialogue(); robin.reloadDefaultLocation(); Game1.warpCharacter(robin, robin.DefaultMap, robin.DefaultPosition / 64f); Farm farm = Game1.getFarm(); }
private void OnDayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { var seasonNumber = seasonNumbers[Game1.currentSeason]; var calendarDay = seasonNumber * 28 + Game1.dayOfMonth; var mineChanges = MineShaft.permanentMineChanges; LogDebug($"Number of mine changes: {mineChanges.Count}"); foreach (var kvp in mineChanges) { var mineLevel = kvp.Key; var mineLevelChanges = kvp.Value; if (calendarDay % 2 == 0 && mineLevelChanges.coalCartsLeft <= 0) { mineLevelChanges.coalCartsLeft++; LogDebug($"Refreshing coal carts for mine level {mineLevel}"); } if (calendarDay % 6 == 0 && mineLevelChanges.platformContainersLeft <= 0) { mineLevelChanges.platformContainersLeft += 12; LogDebug($"Refreshing platform containers for mine level {mineLevel}"); } } }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { TodaysStock = null; }
public void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { Helper.Events.GameLoop.UpdateTicked += GameLoop_UpdateTicked; }
private void GameLoop_DayStarted(object sender, StardewModdingAPI.Events.DayStartedEventArgs e) { FindSeedMakers(); }