summaryrefslogtreecommitdiff
path: root/src/SMAPI.Mods.ConsoleCommands/Framework
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2021-02-21 23:05:17 -0500
committerJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2021-02-21 23:05:17 -0500
commitdb011ee751bdfb8bbd9abbeb706966db4c4e2461 (patch)
tree4c1ca1c2fb2db41ac0d8b337e2f17209b4ad66f5 /src/SMAPI.Mods.ConsoleCommands/Framework
parentf1505b0ebe5c8fa7cf3c160231f0ed7d1bd6619a (diff)
parent9c4c10d2d22cbf67ccadbd35fdf1ffced0541cc2 (diff)
downloadSMAPI-db011ee751bdfb8bbd9abbeb706966db4c4e2461.tar.gz
SMAPI-db011ee751bdfb8bbd9abbeb706966db4c4e2461.tar.bz2
SMAPI-db011ee751bdfb8bbd9abbeb706966db4c4e2461.zip
Merge branch 'develop' into stable
Diffstat (limited to 'src/SMAPI.Mods.ConsoleCommands/Framework')
-rw-r--r--src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/SetTimeCommand.cs20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/SetTimeCommand.cs b/src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/SetTimeCommand.cs
index 6782e38a..2d4b4565 100644
--- a/src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/SetTimeCommand.cs
+++ b/src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/SetTimeCommand.cs
@@ -1,5 +1,5 @@
-using System;
using System.Linq;
+using Microsoft.Xna.Framework;
using StardewValley;
namespace StardewModdingAPI.Mods.ConsoleCommands.Framework.Commands.World
@@ -45,12 +45,8 @@ namespace StardewModdingAPI.Mods.ConsoleCommands.Framework.Commands.World
/// <param name="time">The time of day.</param>
private void SafelySetTime(int time)
{
- // define conversion between game time and TimeSpan
- TimeSpan ToTimeSpan(int value) => new TimeSpan(0, value / 100, value % 100, 0);
- int FromTimeSpan(TimeSpan span) => (span.Hours * 100) + span.Minutes;
-
// transition to new time
- int intervals = (int)((ToTimeSpan(time) - ToTimeSpan(Game1.timeOfDay)).TotalMinutes / 10);
+ int intervals = Utility.CalculateMinutesBetweenTimes(Game1.timeOfDay, time) / 10;
if (intervals > 0)
{
for (int i = 0; i < intervals; i++)
@@ -60,10 +56,20 @@ namespace StardewModdingAPI.Mods.ConsoleCommands.Framework.Commands.World
{
for (int i = 0; i > intervals; i--)
{
- Game1.timeOfDay = FromTimeSpan(ToTimeSpan(Game1.timeOfDay).Subtract(TimeSpan.FromMinutes(20))); // offset 20 minutes so game updates to next interval
+ Game1.timeOfDay = Utility.ModifyTime(Game1.timeOfDay, -20); // offset 20 mins so game updates to next interval
Game1.performTenMinuteClockUpdate();
}
}
+
+ // reset ambient light
+ // White is the default non-raining color. If it's raining or dark out, UpdateGameClock
+ // below will update it automatically.
+ Game1.outdoorLight = Color.White;
+ Game1.ambientLight = Color.White;
+
+ // run clock update (to correct lighting, etc)
+ Game1.gameTimeInterval = 0;
+ Game1.UpdateGameClock(Game1.currentGameTime);
}
}
}