mirror of
https://github.com/NotAKidoS/NAK_CVR_Mods.git
synced 2025-09-02 06:19:22 +00:00
add back btkui addon
This commit is contained in:
parent
a27d42d876
commit
eae03f0ec2
4 changed files with 61 additions and 9 deletions
|
@ -16,10 +16,7 @@ public class DesktopVRIK : MonoBehaviour
|
||||||
// DesktopVRIK Settings
|
// DesktopVRIK Settings
|
||||||
public bool
|
public bool
|
||||||
Setting_Enabled = true,
|
Setting_Enabled = true,
|
||||||
Setting_HipMovement = true,
|
Setting_PlantFeet = true;
|
||||||
Setting_ResetOnLand = true,
|
|
||||||
Setting_PlantFeet = true,
|
|
||||||
Setting_EnforceViewPosition;
|
|
||||||
public float
|
public float
|
||||||
Setting_BodyLeanWeight,
|
Setting_BodyLeanWeight,
|
||||||
Setting_BodyHeadingLimit,
|
Setting_BodyHeadingLimit,
|
||||||
|
|
|
@ -18,6 +18,9 @@
|
||||||
<Reference Include="Assembly-CSharp-firstpass">
|
<Reference Include="Assembly-CSharp-firstpass">
|
||||||
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\ChilloutVR\ChilloutVR_Data\Managed\Assembly-CSharp-firstpass.dll</HintPath>
|
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\ChilloutVR\ChilloutVR_Data\Managed\Assembly-CSharp-firstpass.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="BTKUILib">
|
||||||
|
<HintPath>..\..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\ChilloutVR\Mods\BTKUILib.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="Cohtml.Runtime">
|
<Reference Include="Cohtml.Runtime">
|
||||||
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\ChilloutVR\ChilloutVR_Data\Managed\Cohtml.Runtime.dll</HintPath>
|
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\ChilloutVR\ChilloutVR_Data\Managed\Cohtml.Runtime.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
|
52
DesktopVRIK/Integrations/BTKUIAddon.cs
Normal file
52
DesktopVRIK/Integrations/BTKUIAddon.cs
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
using BTKUILib;
|
||||||
|
using BTKUILib.UIObjects;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
|
namespace NAK.Melons.DesktopVRIK;
|
||||||
|
|
||||||
|
public static class BTKUIAddon
|
||||||
|
{
|
||||||
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||||
|
public static void Init()
|
||||||
|
{
|
||||||
|
//Add myself to the Misc Menu
|
||||||
|
|
||||||
|
Page miscPage = QuickMenuAPI.MiscTabPage;
|
||||||
|
Category miscCategory = miscPage.AddCategory(DesktopVRIKMod.SettingsCategory);
|
||||||
|
|
||||||
|
AddMelonToggle(ref miscCategory, DesktopVRIKMod.m_entryEnabled);
|
||||||
|
|
||||||
|
//Add my own page to not clog up Misc Menu
|
||||||
|
|
||||||
|
Page desktopVRIKPage = miscCategory.AddPage("DesktopVRIK Settings", "", "Configure the settings for DesktopVRIK.", "DesktopVRIK");
|
||||||
|
desktopVRIKPage.MenuTitle = "DesktopVRIK Settings";
|
||||||
|
desktopVRIKPage.MenuSubtitle = "Simplified settings for VRIK on Desktop.";
|
||||||
|
|
||||||
|
Category desktopVRIKCategory = desktopVRIKPage.AddCategory("DesktopVRIK");
|
||||||
|
|
||||||
|
// General Settings
|
||||||
|
AddMelonToggle(ref desktopVRIKCategory, DesktopVRIKMod.m_entryEnabled);
|
||||||
|
AddMelonToggle(ref desktopVRIKCategory, DesktopVRIKMod.m_entryPlantFeet);
|
||||||
|
|
||||||
|
// Calibration Settings
|
||||||
|
AddMelonToggle(ref desktopVRIKCategory, DesktopVRIKMod.m_entryUseVRIKToes);
|
||||||
|
AddMelonToggle(ref desktopVRIKCategory, DesktopVRIKMod.m_entryFindUnmappedToes);
|
||||||
|
|
||||||
|
// Body Leaning Weight
|
||||||
|
AddMelonSlider(ref desktopVRIKPage, DesktopVRIKMod.m_entryBodyLeanWeight, 0, 1f, 1);
|
||||||
|
|
||||||
|
// Max Root Heading Limit & Weights
|
||||||
|
AddMelonSlider(ref desktopVRIKPage, DesktopVRIKMod.m_entryBodyHeadingLimit, 0, 90f, 0);
|
||||||
|
AddMelonSlider(ref desktopVRIKPage, DesktopVRIKMod.m_entryPelvisHeadingWeight, 0, 1f, 1);
|
||||||
|
AddMelonSlider(ref desktopVRIKPage, DesktopVRIKMod.m_entryChestHeadingWeight, 0, 1f, 1);
|
||||||
|
}
|
||||||
|
private static void AddMelonToggle(ref Category category, MelonLoader.MelonPreferences_Entry<bool> entry)
|
||||||
|
{
|
||||||
|
category.AddToggle(entry.DisplayName, entry.Description, entry.Value).OnValueUpdated += b => entry.Value = b;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void AddMelonSlider(ref Page page, MelonLoader.MelonPreferences_Entry<float> entry, float min, float max, int decimalPlaces = 2)
|
||||||
|
{
|
||||||
|
page.AddSlider(entry.DisplayName, entry.Description, entry.Value, min, max, decimalPlaces).OnValueUpdated += f => entry.Value = f;
|
||||||
|
}
|
||||||
|
}
|
|
@ -23,8 +23,7 @@ public class DesktopVRIKMod : MelonMod
|
||||||
{
|
{
|
||||||
m_categoryDesktopVRIK = MelonPreferences.CreateCategory(SettingsCategory);
|
m_categoryDesktopVRIK = MelonPreferences.CreateCategory(SettingsCategory);
|
||||||
m_entryEnabled = m_categoryDesktopVRIK.CreateEntry<bool>("Enabled", true, description: "Toggle DesktopVRIK entirely. Requires avatar reload.");
|
m_entryEnabled = m_categoryDesktopVRIK.CreateEntry<bool>("Enabled", true, description: "Toggle DesktopVRIK entirely. Requires avatar reload.");
|
||||||
m_entryEnforceViewPosition = m_categoryDesktopVRIK.CreateEntry<bool>("Enforce View Position", false, description: "Corrects view position to use VRIK offsets.");
|
//m_entryEnforceViewPosition = m_categoryDesktopVRIK.CreateEntry<bool>("Enforce View Position", false, description: "Corrects view position to use VRIK offsets.");
|
||||||
m_entryResetIKOnLand = m_categoryDesktopVRIK.CreateEntry<bool>("Reset IK On Land", true, description: "Reset Solver IK when landing on the ground.");
|
|
||||||
m_entryPlantFeet = m_categoryDesktopVRIK.CreateEntry<bool>("Enforce Plant Feet", true, description: "Forces VRIK Plant Feet enabled. This prevents the little hover when you stop moving.");
|
m_entryPlantFeet = m_categoryDesktopVRIK.CreateEntry<bool>("Enforce Plant Feet", true, description: "Forces VRIK Plant Feet enabled. This prevents the little hover when you stop moving.");
|
||||||
m_entryUseVRIKToes = m_categoryDesktopVRIK.CreateEntry<bool>("Use VRIK Toes", false, description: "Should VRIK use your humanoid toes for IK solving? This can cause your feet to idle behind you.");
|
m_entryUseVRIKToes = m_categoryDesktopVRIK.CreateEntry<bool>("Use VRIK Toes", false, description: "Should VRIK use your humanoid toes for IK solving? This can cause your feet to idle behind you.");
|
||||||
m_entryFindUnmappedToes = m_categoryDesktopVRIK.CreateEntry<bool>("Find Unmapped Toes", false, description: "Should DesktopVRIK look for unmapped toe bones if humanoid rig does not have any?");
|
m_entryFindUnmappedToes = m_categoryDesktopVRIK.CreateEntry<bool>("Find Unmapped Toes", false, description: "Should DesktopVRIK look for unmapped toe bones if humanoid rig does not have any?");
|
||||||
|
@ -50,12 +49,13 @@ public class DesktopVRIKMod : MelonMod
|
||||||
if (!DesktopVRIK.Instance) return;
|
if (!DesktopVRIK.Instance) return;
|
||||||
// DesktopVRIK Settings
|
// DesktopVRIK Settings
|
||||||
DesktopVRIK.Instance.Setting_Enabled = m_entryEnabled.Value;
|
DesktopVRIK.Instance.Setting_Enabled = m_entryEnabled.Value;
|
||||||
DesktopVRIK.Instance.Setting_BodyLeanWeight = Mathf.Clamp01(m_entryBodyLeanWeight.Value);
|
|
||||||
DesktopVRIK.Instance.Setting_ResetOnLand = m_entryResetIKOnLand.Value;
|
|
||||||
DesktopVRIK.Instance.Setting_PlantFeet = m_entryPlantFeet.Value;
|
DesktopVRIK.Instance.Setting_PlantFeet = m_entryPlantFeet.Value;
|
||||||
|
|
||||||
|
DesktopVRIK.Instance.Setting_BodyLeanWeight = Mathf.Clamp01(m_entryBodyLeanWeight.Value);
|
||||||
DesktopVRIK.Instance.Setting_BodyHeadingLimit = Mathf.Clamp(m_entryBodyHeadingLimit.Value, 0f, 90f);
|
DesktopVRIK.Instance.Setting_BodyHeadingLimit = Mathf.Clamp(m_entryBodyHeadingLimit.Value, 0f, 90f);
|
||||||
DesktopVRIK.Instance.Setting_PelvisHeadingWeight = (1f - Mathf.Clamp01(m_entryPelvisHeadingWeight.Value));
|
DesktopVRIK.Instance.Setting_PelvisHeadingWeight = (1f - Mathf.Clamp01(m_entryPelvisHeadingWeight.Value));
|
||||||
DesktopVRIK.Instance.Setting_ChestHeadingWeight = (1f - Mathf.Clamp01(m_entryChestHeadingWeight.Value));
|
DesktopVRIK.Instance.Setting_ChestHeadingWeight = (1f - Mathf.Clamp01(m_entryChestHeadingWeight.Value));
|
||||||
|
|
||||||
// Calibration Settings
|
// Calibration Settings
|
||||||
DesktopVRIK.Instance.Calibrator.Setting_UseVRIKToes = m_entryUseVRIKToes.Value;
|
DesktopVRIK.Instance.Calibrator.Setting_UseVRIKToes = m_entryUseVRIKToes.Value;
|
||||||
DesktopVRIK.Instance.Calibrator.Setting_FindUnmappedToes = m_entryFindUnmappedToes.Value;
|
DesktopVRIK.Instance.Calibrator.Setting_FindUnmappedToes = m_entryFindUnmappedToes.Value;
|
||||||
|
@ -68,7 +68,7 @@ public class DesktopVRIKMod : MelonMod
|
||||||
if (MelonMod.RegisteredMelons.Any(it => it.Info.Name == "BTKUILib"))
|
if (MelonMod.RegisteredMelons.Any(it => it.Info.Name == "BTKUILib"))
|
||||||
{
|
{
|
||||||
MelonLogger.Msg("Initializing BTKUILib support.");
|
MelonLogger.Msg("Initializing BTKUILib support.");
|
||||||
//BTKUIAddon.Init();
|
BTKUIAddon.Init();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue