Features merge from experimental:

Settings rework
Finger tracking networks sync only if hands are tracked
Working fix for animator override controller
Mass center offset calculations
Steps scaling
This commit is contained in:
SDraw 2023-03-16 09:20:45 +03:00
parent 8338fb758a
commit 971466da24
No known key found for this signature in database
GPG key ID: BB95B4DAB2BB8BB5
13 changed files with 474 additions and 451 deletions

View file

@ -18,13 +18,13 @@ namespace ml_dht
FaceOverride
}
static bool ms_enabled = false;
static bool ms_headTracking = true;
static bool ms_eyeTracking = true;
static bool ms_blinking = true;
static bool ms_mirrored = false;
static float ms_smoothing = 0.5f;
static bool ms_faceOverride = true;
public static bool Enabled { get; private set; } = false;
public static bool HeadTracking { get; private set; } = true;
public static bool EyeTracking { get; private set; } = true;
public static bool Blinking { get; private set; } = true;
public static bool Mirrored { get; private set; } = false;
public static float Smoothing { get; private set; } = 0.5f;
public static bool FaceOverride { get; private set; } = true;
static MelonLoader.MelonPreferences_Category ms_category = null;
static List<MelonLoader.MelonPreferences_Entry> ms_entries = null;
@ -43,13 +43,13 @@ namespace ml_dht
ms_entries = new List<MelonLoader.MelonPreferences_Entry>()
{
ms_category.CreateEntry(ModSetting.Enabled.ToString(), false),
ms_category.CreateEntry(ModSetting.HeadTracking.ToString(), false),
ms_category.CreateEntry(ModSetting.EyeTracking.ToString(), true),
ms_category.CreateEntry(ModSetting.Blinking.ToString(), true),
ms_category.CreateEntry(ModSetting.Mirrored.ToString(), false),
ms_category.CreateEntry(ModSetting.Smoothing.ToString(), 50),
ms_category.CreateEntry(ModSetting.FaceOverride.ToString(), true)
ms_category.CreateEntry(ModSetting.Enabled.ToString(), Enabled),
ms_category.CreateEntry(ModSetting.HeadTracking.ToString(), HeadTracking),
ms_category.CreateEntry(ModSetting.EyeTracking.ToString(), EyeTracking),
ms_category.CreateEntry(ModSetting.Blinking.ToString(), Blinking),
ms_category.CreateEntry(ModSetting.Mirrored.ToString(), Mirrored),
ms_category.CreateEntry(ModSetting.Smoothing.ToString(), (int)(Smoothing * 50f)),
ms_category.CreateEntry(ModSetting.FaceOverride.ToString(), FaceOverride)
};
Load();
@ -81,13 +81,13 @@ namespace ml_dht
static void Load()
{
ms_enabled = (bool)ms_entries[(int)ModSetting.Enabled].BoxedValue;
ms_headTracking = (bool)ms_entries[(int)ModSetting.HeadTracking].BoxedValue;
ms_eyeTracking = (bool)ms_entries[(int)ModSetting.EyeTracking].BoxedValue;
ms_blinking = (bool)ms_entries[(int)ModSetting.Blinking].BoxedValue;
ms_mirrored = (bool)ms_entries[(int)ModSetting.Mirrored].BoxedValue;
ms_smoothing = ((int)ms_entries[(int)ModSetting.Smoothing].BoxedValue) * 0.01f;
ms_faceOverride = (bool)ms_entries[(int)ModSetting.FaceOverride].BoxedValue;
Enabled = (bool)ms_entries[(int)ModSetting.Enabled].BoxedValue;
HeadTracking = (bool)ms_entries[(int)ModSetting.HeadTracking].BoxedValue;
EyeTracking = (bool)ms_entries[(int)ModSetting.EyeTracking].BoxedValue;
Blinking = (bool)ms_entries[(int)ModSetting.Blinking].BoxedValue;
Mirrored = (bool)ms_entries[(int)ModSetting.Mirrored].BoxedValue;
Smoothing = ((int)ms_entries[(int)ModSetting.Smoothing].BoxedValue) * 0.01f;
FaceOverride = (bool)ms_entries[(int)ModSetting.FaceOverride].BoxedValue;
}
static void OnSliderUpdate(string p_name, string p_value)
@ -98,8 +98,8 @@ namespace ml_dht
{
case ModSetting.Smoothing:
{
ms_smoothing = int.Parse(p_value) * 0.01f;
SmoothingChange?.Invoke(ms_smoothing);
Smoothing = int.Parse(p_value) * 0.01f;
SmoothingChange?.Invoke(Smoothing);
}
break;
}
@ -116,43 +116,43 @@ namespace ml_dht
{
case ModSetting.Enabled:
{
ms_enabled = bool.Parse(p_value);
EnabledChange?.Invoke(ms_enabled);
Enabled = bool.Parse(p_value);
EnabledChange?.Invoke(Enabled);
}
break;
case ModSetting.HeadTracking:
{
ms_headTracking = bool.Parse(p_value);
HeadTrackingChange?.Invoke(ms_headTracking);
HeadTracking = bool.Parse(p_value);
HeadTrackingChange?.Invoke(HeadTracking);
}
break;
case ModSetting.EyeTracking:
{
ms_eyeTracking = bool.Parse(p_value);
EyeTrackingChange?.Invoke(ms_eyeTracking);
EyeTracking = bool.Parse(p_value);
EyeTrackingChange?.Invoke(EyeTracking);
}
break;
case ModSetting.Blinking:
{
ms_blinking = bool.Parse(p_value);
BlinkingChange?.Invoke(ms_blinking);
Blinking = bool.Parse(p_value);
BlinkingChange?.Invoke(Blinking);
}
break;
case ModSetting.Mirrored:
{
ms_mirrored = bool.Parse(p_value);
MirroredChange?.Invoke(ms_mirrored);
Mirrored = bool.Parse(p_value);
MirroredChange?.Invoke(Mirrored);
}
break;
case ModSetting.FaceOverride:
{
ms_faceOverride = bool.Parse(p_value);
FaceOverrideChange?.Invoke(ms_faceOverride);
FaceOverride = bool.Parse(p_value);
FaceOverrideChange?.Invoke(FaceOverride);
}
break;
}
@ -160,34 +160,5 @@ namespace ml_dht
ms_entries[(int)l_setting].BoxedValue = bool.Parse(p_value);
}
}
public static bool Enabled
{
get => ms_enabled;
}
public static bool HeadTracking
{
get => ms_headTracking;
}
public static bool EyeTracking
{
get => ms_eyeTracking;
}
public static bool Blinking
{
get => ms_blinking;
}
public static bool Mirrored
{
get => ms_mirrored;
}
public static float Smoothing
{
get => ms_smoothing;
}
public static bool FaceOverride
{
get => ms_faceOverride;
}
}
}