Got darker night working somewhat. Needs a lot of tweaking.

This commit is contained in:
Joshua Navarro 2018-12-24 12:00:58 -08:00
parent 5c78f88e6a
commit 15455416a8
6 changed files with 121 additions and 2 deletions

View File

@ -0,0 +1,49 @@
using StardewValley;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Revitalize.Framework.Illuminate;
using System.IO;
namespace Revitalize.Framework.Environment
{
public class DarkerNight
{
public static float IncrediblyDark = 0.9f;
public static float VeryDark = 0.75f;
public static float SomewhatDark = 0.50f;
public static DarkerNightConfig Config;
public static void InitializeConfig()
{
if (File.Exists(Path.Combine(Revitalize.ModCore.ModHelper.DirectoryPath, "Configs", "DarkerNightConfig.json")))
{
Config = Revitalize.ModCore.ModHelper.Data.ReadJsonFile<DarkerNightConfig>(Path.Combine("Configs", "DarkerNightConfig.json"));
}
else
{
Config = new DarkerNightConfig();
Revitalize.ModCore.ModHelper.Data.WriteJsonFile<DarkerNightConfig>(Path.Combine("Configs", "DarkerNightConfig.json"),Config);
}
}
public static void setDarkerNightColor()
{
if (Game1.player == null) return;
if (Game1.player.currentLocation.IsOutdoors && Game1.timeOfDay>= Game1.getTrulyDarkTime())
{
//Game1.ambientLight = Game1.ambientLight.GreyScaleAverage();
Game1.outdoorLight = Game1.ambientLight*Config.DarknessIntensity;
Revitalize.ModCore.log("OUT: " + Game1.outdoorLight);
Revitalize.ModCore.log("Ambient"+Game1.ambientLight);
}
}
}
}

View File

@ -0,0 +1,21 @@
using Microsoft.Xna.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Revitalize.Framework.Environment
{
public class DarkerNightConfig
{
public float DarknessIntensity;
public DarkerNightConfig()
{
this.DarknessIntensity = .9f;
}
}
}

View File

@ -0,0 +1,19 @@
using Microsoft.Xna.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Revitalize.Framework.Illuminate
{
public static class ColorExtensions
{
public static Color GreyScaleAverage(this Color color)
{
int value = (color.R + color.G + color.B) / 3;
return new Color(new Vector3(value));
}
}
}

View File

@ -17,13 +17,16 @@ namespace Revitalize.Framework.Objects
{
/// <summary>
/// A custom object template.
///
/// Todo:
/// -Multiple Lights
/// -Events when walking over?
/// -Inventories
/// </summary>
public class CustomObject : PySObject
{
public string id;
public BasicItemInformation info;
public GameLocation location;
/// <summary>

View File

@ -11,6 +11,8 @@ using System.Text;
using System.Threading.Tasks;
using Revitalize.Framework.Graphics;
using Revitalize.Framework.Graphics.Animations;
using Revitalize.Framework.Environment;
using System.IO;
namespace Revitalize
{
@ -27,7 +29,29 @@ namespace Revitalize
ModHelper = helper;
ModMonitor = Monitor;
createDirectories();
initailizeComponents();
ModHelper.Events.GameLoop.SaveLoaded += GameLoop_SaveLoaded;
ModHelper.Events.GameLoop.TimeChanged += GameLoop_TimeChanged;
}
private void createDirectories()
{
Directory.CreateDirectory(Path.Combine(this.Helper.DirectoryPath, "Configs"));
}
private void initailizeComponents()
{
DarkerNight.InitializeConfig();
}
private void GameLoop_TimeChanged(object sender, StardewModdingAPI.Events.TimeChangedEventArgs e)
{
DarkerNight.setDarkerNightColor();
}
private void GameLoop_SaveLoaded(object sender, StardewModdingAPI.Events.SaveLoadedEventArgs e)

View File

@ -45,9 +45,12 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Framework\Environment\DarkerNight.cs" />
<Compile Include="Framework\Environment\DarkerNightConfig.cs" />
<Compile Include="Framework\Graphics\Animations\Animation.cs" />
<Compile Include="Framework\Graphics\Animations\AnimationManager.cs" />
<Compile Include="Framework\Graphics\Texture2DExtended.cs" />
<Compile Include="Framework\Illuminate\ColorExtensions.cs" />
<Compile Include="Framework\Objects\BasicItemInformation.cs" />
<Compile Include="Framework\Objects\CustomObject.cs" />
<Compile Include="Framework\Objects\MultiTiledComponent.cs" />