extensions

This commit is contained in:
Noah Pilarski 2024-06-04 18:39:03 -04:00
parent b357dafa8f
commit f00d323de9
2 changed files with 41 additions and 3 deletions

View File

@ -1,11 +1,11 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace NewHorizons.Utility namespace NewHorizons.Utility
{ {
public static class CollectionUtilities public static class CollectionUtilities
{ {
public static T KeyByValue<T, W>(Dictionary<T, W> dict, W val) public static T KeyByValue<T, W>(Dictionary<T, W> dict, W val, T defaultValue = default)
{ {
T key = default; T key = defaultValue;
foreach (KeyValuePair<T, W> pair in dict) foreach (KeyValuePair<T, W> pair in dict)
{ {
if (EqualityComparer<W>.Default.Equals(pair.Value, val)) if (EqualityComparer<W>.Default.Equals(pair.Value, val))

View File

@ -387,5 +387,43 @@ namespace NewHorizons.Utility
// return Regex.Replace(text.Trim(), @"[^\S\r\n]+", "GUH"); // return Regex.Replace(text.Trim(), @"[^\S\r\n]+", "GUH");
return Regex.Replace(text.Trim(), @"\s+", " ").ToLowerInvariant(); return Regex.Replace(text.Trim(), @"\s+", " ").ToLowerInvariant();
} }
public static void Stabilize(this SingularityController singularity)
{
singularity._state = SingularityController.State.Stable;
singularity._timer = 0f;
singularity._baseRadius = singularity._targetRadius;
singularity._currentRadius = singularity._targetRadius;
singularity._renderer.SetActivation(active: true);
singularity._renderer.SetMaterialProperty(singularity._propID_Radius, singularity._targetRadius);
if (singularity._owAmbientSource != null) singularity._owAmbientSource.FadeIn(0.5f);
singularity.enabled = true;
}
public static void OpenEyesImmediate(this PlayerCameraEffectController playerCameraEffectController)
{
playerCameraEffectController._lastOpenness = 1;
playerCameraEffectController._wakeCurve = playerCameraEffectController._fastWakeCurve;
playerCameraEffectController._isOpeningEyes = false;
playerCameraEffectController._isClosingEyes = false;
playerCameraEffectController._eyeAnimDuration = 0;
playerCameraEffectController._eyeAnimStartTime = Time.time;
playerCameraEffectController._owCamera.postProcessingSettings.eyeMask.openness = 1;
playerCameraEffectController._owCamera.postProcessingSettings.bloom.threshold = playerCameraEffectController._owCamera.postProcessingSettings.bloomDefault.threshold;
playerCameraEffectController._owCamera.postProcessingSettings.eyeMaskEnabled = false;
}
public static void CloseEyesImmediate(this PlayerCameraEffectController playerCameraEffectController)
{
playerCameraEffectController._lastOpenness = 0f;
playerCameraEffectController._wakeCurve = playerCameraEffectController._fastWakeCurve;
playerCameraEffectController._isOpeningEyes = false;
playerCameraEffectController._isClosingEyes = false;
playerCameraEffectController._eyeAnimDuration = 0;
playerCameraEffectController._eyeAnimStartTime = Time.time;
playerCameraEffectController._owCamera.postProcessingSettings.eyeMask.openness = 0f;
playerCameraEffectController._owCamera.postProcessingSettings.bloom.threshold = 0f;
playerCameraEffectController._owCamera.postProcessingSettings.eyeMaskEnabled = true;
}
} }
} }