[NAK_CVR_MODS] some cleanup to repo

This commit is contained in:
NotAKidoS 2024-04-23 16:01:33 -05:00
parent 9944ad7611
commit 926cdcef66
16 changed files with 183964 additions and 1350 deletions

182879
.ManagedLibs/netstandard.xml Normal file

File diff suppressed because it is too large Load diff

View file

@ -8,6 +8,9 @@
<!-- Didn't put in the Directory.Build.props because it spams funny warnings... -->
<ItemGroup>
<Reference Include="ECM2">
<HintPath>..\.ManagedLibs\ECM2.dll</HintPath>
</Reference>
<Reference Include="ml_prm">
<HintPath>$(MsBuildThisFileDirectory)\..\.ManagedLibs\ml_prm.dll</HintPath>
<Private>False</Private>

View file

@ -18,9 +18,9 @@ public class CommandBase
{
string partialName = argument.Replace("*", "").Trim();
if (String.IsNullOrWhiteSpace(partialName)) return false;
return AuthManager.username.Contains(partialName);
return AuthManager.Username.Contains(partialName);
}
return AuthManager.username == argument;
return AuthManager.Username == argument;
}
internal static void LocalCommandIgnoreOthers(string argument, Action<string[]> callback)

View file

@ -39,5 +39,53 @@ internal class ChatBoxCommands : CommandBase
API.SendMessage($"You have to ping first, {GetPlayerUsername(sender)}!", false, true, true);
});
});
Commands.RegisterCommand("sudo",
onCommandSent: (message, sound, displayMsg) =>
{
LocalCommandIgnoreOthers(message, args =>
{
if (args.Length > 1)
{
string command = string.Join(" ", args.Skip(1));
API.SendMessage($"/{command}", false, true, true);
}
});
},
onCommandReceived: (sender, message, sound, displayMsg) =>
{
RemoteCommandListenForAll(message, args =>
{
if (args.Length > 1)
{
string command = string.Join(" ", args.Skip(1));
API.SendMessage($"/{command}", false, true, true);
}
});
});
Commands.RegisterCommand("say",
onCommandSent: (message, sound, displayMsg) =>
{
LocalCommandIgnoreOthers(message, args =>
{
if (args.Length > 0)
{
string text = string.Join(" ", args);
API.SendMessage(text, false, true, true);
}
});
},
onCommandReceived: (sender, message, sound, displayMsg) =>
{
RemoteCommandListenForAll(message, args =>
{
if (args.Length > 0)
{
string text = string.Join(" ", args);
API.SendMessage(text, false, true, true);
}
});
});
}
}

View file

@ -1,5 +1,8 @@
using ABI_RC.Core;
using ABI_RC.Core.Vivox;
using ABI_RC.Core.Base;
using ABI_RC.Core.Player;
using ABI_RC.Systems.Movement;
using UnityEngine;
namespace NAK.ChatBoxExtensions.Integrations;
@ -28,14 +31,87 @@ internal class ChilloutVRBaseCommands : CommandBase
{
LocalCommandIgnoreOthers(message, args =>
{
VivoxDeviceHandler.InputMuted = true;
AudioManagement.SetMicrophoneActive(false);
});
},
onCommandReceived: (sender, message, sound, displayMsg) =>
{
RemoteCommandListenForAll(message, args =>
{
VivoxDeviceHandler.InputMuted = false;
AudioManagement.SetMicrophoneActive(false);
});
});
// teleport [x] [y] [z]
Commands.RegisterCommand("teleport",
onCommandSent: (message, sound, displayMsg) =>
{
LocalCommandIgnoreOthers(message, args =>
{
if (args.Length > 2 && float.TryParse(args[0], out float x) && float.TryParse(args[1], out float y) && float.TryParse(args[2], out float z))
{
BetterBetterCharacterController.Instance.TeleportPlayerTo(new Vector3(x, y, z), false, false);
}
});
},
onCommandReceived: (sender, message, sound, displayMsg) =>
{
RemoteCommandListenForAll(message, args =>
{
if (args.Length > 2 && float.TryParse(args[0], out float x) && float.TryParse(args[1], out float y) && float.TryParse(args[2], out float z))
{
BetterBetterCharacterController.Instance.TeleportPlayerTo(new Vector3(x, y, z), false, false);
}
});
});
// tp [x] [y] [z]
Commands.RegisterCommand("tp",
onCommandSent: (message, sound, displayMsg) =>
{
LocalCommandIgnoreOthers(message, args =>
{
if (args.Length > 2 && float.TryParse(args[0], out float x) && float.TryParse(args[1], out float y) && float.TryParse(args[2], out float z))
{
BetterBetterCharacterController.Instance.TeleportPlayerTo(new Vector3(x, y, z), false, false);
}
});
},
onCommandReceived: (sender, message, sound, displayMsg) =>
{
RemoteCommandListenForAll(message, args =>
{
if (args.Length > 2 && float.TryParse(args[0], out float x) && float.TryParse(args[1], out float y) && float.TryParse(args[2], out float z))
{
BetterBetterCharacterController.Instance.TeleportPlayerTo(new Vector3(x, y, z), false, false);
}
});
});
// teleport [player]
Commands.RegisterCommand("teleport",
onCommandSent: (message, sound, displayMsg) =>
{
LocalCommandIgnoreOthers(message, args =>
{
if (args.Length > 0)
{
string player = args[0];
CVRPlayerEntity playerEnt = CVRPlayerManager.Instance.NetworkPlayers.FirstOrDefault(x => x.Username == player);
if (playerEnt != null) BetterBetterCharacterController.Instance.TeleportPlayerTo(playerEnt.PuppetMaster.transform.position, false, false);
}
});
},
onCommandReceived: (sender, message, sound, displayMsg) =>
{
RemoteCommandListenForAll(message, args =>
{
if (args.Length > 0)
{
string player = args[0y];
CVRPlayerEntity playerEnt = CVRPlayerManager.Instance.NetworkPlayers.FirstOrDefault(x => x.Username == player);
if (playerEnt != null) BetterBetterCharacterController.Instance.TeleportPlayerTo(playerEnt.PuppetMaster.transform.position, false, false);
}
});
});
}

View file

@ -25,7 +25,6 @@ public static class Commands
private class Command
{
internal string Prefix;
// Command Sent (message)

File diff suppressed because it is too large Load diff

View file

@ -37,10 +37,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BetterShadowClone", "Better
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FuckCameraIndicator", "FuckCameraIndicator\FuckCameraIndicator.csproj", "{0BE10630-EA6A-40FB-B3AF-5C2018F22BD3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "YouAreAClone", "YouAreAClone\YouAreAClone.csproj", "{7778B600-111E-4C8B-AE2B-E9750CECE02A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nevermind", "Nevermind\Nevermind.csproj", "{AC4857DD-F6D9-436D-A3EE-D148A518E642}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShadowCloneFallback", "ShadowCloneFallback\ShadowCloneFallback.csproj", "{69AF3C10-1BB1-4746-B697-B5A81D78C8D9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StopClosingMyMenuOnWorldLoad", "StopClosingMyMenuOnWorldLoad\StopClosingMyMenuOnWorldLoad.csproj", "{9FA83514-13F8-412C-9790-C2B750E0E7E7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -115,14 +117,18 @@ Global
{0BE10630-EA6A-40FB-B3AF-5C2018F22BD3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0BE10630-EA6A-40FB-B3AF-5C2018F22BD3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0BE10630-EA6A-40FB-B3AF-5C2018F22BD3}.Release|Any CPU.Build.0 = Release|Any CPU
{7778B600-111E-4C8B-AE2B-E9750CECE02A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7778B600-111E-4C8B-AE2B-E9750CECE02A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7778B600-111E-4C8B-AE2B-E9750CECE02A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7778B600-111E-4C8B-AE2B-E9750CECE02A}.Release|Any CPU.Build.0 = Release|Any CPU
{AC4857DD-F6D9-436D-A3EE-D148A518E642}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AC4857DD-F6D9-436D-A3EE-D148A518E642}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AC4857DD-F6D9-436D-A3EE-D148A518E642}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AC4857DD-F6D9-436D-A3EE-D148A518E642}.Release|Any CPU.Build.0 = Release|Any CPU
{69AF3C10-1BB1-4746-B697-B5A81D78C8D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{69AF3C10-1BB1-4746-B697-B5A81D78C8D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{69AF3C10-1BB1-4746-B697-B5A81D78C8D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{69AF3C10-1BB1-4746-B697-B5A81D78C8D9}.Release|Any CPU.Build.0 = Release|Any CPU
{9FA83514-13F8-412C-9790-C2B750E0E7E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9FA83514-13F8-412C-9790-C2B750E0E7E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9FA83514-13F8-412C-9790-C2B750E0E7E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9FA83514-13F8-412C-9790-C2B750E0E7E7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

908
References.Items.props Normal file
View file

@ -0,0 +1,908 @@
<Project>
<ItemGroup>
<Reference Include="0Harmony">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\0Harmony.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="MelonLoader">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\MelonLoader.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Mono.Cecil">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Mono.Cecil.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Assembly-CSharp-firstpass">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Assembly-CSharp-firstpass.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Assembly-CSharp">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Assembly-CSharp.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Aura2_Core">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Aura2_Core.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="AVProVideo.Extensions.Timeline">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\AVProVideo.Extensions.Timeline.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="AVProVideo.Extensions.UnityUI">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\AVProVideo.Extensions.UnityUI.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="AVProVideo.Extensions.VisualEffectGraph">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\AVProVideo.Extensions.VisualEffectGraph.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="AVProVideo.Runtime">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\AVProVideo.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="AwesomeTechnologies.TouchReactSystemPro.Runtime">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\AwesomeTechnologies.TouchReactSystemPro.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="AwesomeTechnologies.VegetationStudioPro.Runtime">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\AwesomeTechnologies.VegetationStudioPro.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Bhaptics.Tact">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Bhaptics.Tact.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Boxophobic.TheVehetationEngine.Runtime">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Boxophobic.TheVehetationEngine.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Boxophobic.Utils.Scripts">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Boxophobic.Utils.Scripts.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Cinemachine">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Cinemachine.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="cohtml.Net">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\cohtml.Net.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Cohtml.RenderingBackend">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Cohtml.RenderingBackend.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Cohtml.Runtime">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Cohtml.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Crc32.NET">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Crc32.NET.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="DarkRift.Client">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\DarkRift.Client.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="DarkRift">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\DarkRift.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ECM2">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\ECM2.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ECM2.Examples">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\ECM2.Examples.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ECM2.Walkthrough">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\ECM2.Walkthrough.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="endel.nativewebsocket">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\endel.nativewebsocket.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="FMODUnity">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\FMODUnity.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="FMODUnityResonance">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\FMODUnityResonance.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ICSharpCode.SharpZipLib">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\ICSharpCode.SharpZipLib.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="JWT">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\JWT.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="LibVLCSharp">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\LibVLCSharp.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="MagicaCloth">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\MagicaCloth.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="MagicaClothV2">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\MagicaClothV2.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="MeshBakerCore">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\MeshBakerCore.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Mono.Security">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Mono.Security.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="MPUIKit">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\MPUIKit.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="mscorlib">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\mscorlib.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="MTJobSystem">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\MTJobSystem.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="NewBlood.EngineInternals">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\NewBlood.EngineInternals.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Newtonsoft.Json.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="NicoKuroKusagi">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\NicoKuroKusagi.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Oculus.LipSync">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Oculus.LipSync.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="PICO.Platform">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\PICO.Platform.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="PWCommon3DLL">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\PWCommon3DLL.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="SALSA-LipSync">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\SALSA-LipSync.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="SALSA">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\SALSA.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ShapesRuntime">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\ShapesRuntime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="SteamAudioUnity">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\SteamAudioUnity.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="SteamVR">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\SteamVR.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="SteamVR_Actions">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\SteamVR_Actions.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Buffers">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Buffers.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.ComponentModel.Composition">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.ComponentModel.Composition.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Configuration">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Configuration.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Core">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Core.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Data.DataSetExtensions">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Data.DataSetExtensions.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Data">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Data.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Drawing">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Drawing.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.EnterpriseServices">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.EnterpriseServices.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Reflection.Emit">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Reflection.Emit.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Reflection.Emit.ILGeneration">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Reflection.Emit.ILGeneration.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Reflection.Emit.Lightweight">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Reflection.Emit.Lightweight.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.IO.Compression">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.IO.Compression.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.IO.Compression.FileSystem">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.IO.Compression.FileSystem.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Memory">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Memory.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Net.Http">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Net.Http.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Numerics">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Numerics.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Runtime">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Runtime.Serialization">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Runtime.Serialization.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Security">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Security.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.ServiceModel.Internals">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.ServiceModel.Internals.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Transactions">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Transactions.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Xml">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Xml.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Xml.Linq">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\System.Xml.Linq.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Tobii.GameIntegration.Net">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Tobii.GameIntegration.Net.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="TobiiXRCore">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\TobiiXRCore.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="TobiiXRDevTools">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\TobiiXRDevTools.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="TobiiXRG2OM">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\TobiiXRG2OM.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="TobiiXRSDK">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\TobiiXRSDK.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UniTask.Addressables">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UniTask.Addressables.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UniTask">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UniTask.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UniTask.DOTween">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UniTask.DOTween.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UniTask.Linq">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UniTask.Linq.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UniTask.TextMeshPro">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UniTask.TextMeshPro.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.AI.Navigation">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.AI.Navigation.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Analytics.DataPrivacy">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Analytics.DataPrivacy.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Burst">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Burst.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Burst.Unsafe">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Burst.Unsafe.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Collections">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Collections.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Collections.LowLevel.ILSupport">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Collections.LowLevel.ILSupport.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Deformations">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Deformations.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Entities">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Entities.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Entities.Hybrid">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Entities.Hybrid.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Entities.Hybrid.HybridComponents">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Entities.Hybrid.HybridComponents.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.InputSystem">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.InputSystem.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.InternalAPIEngineBridge.002">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.InternalAPIEngineBridge.002.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.InternalAPIEngineBridge.003">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.InternalAPIEngineBridge.003.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.InternalAPIEngineBridge.012">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.InternalAPIEngineBridge.012.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Jobs">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Jobs.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Mathematics">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Mathematics.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Mathematics.Extensions">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Mathematics.Extensions.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Mathematics.Extensions.Hybrid">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Mathematics.Extensions.Hybrid.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Platforms.Common">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Platforms.Common.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Polybrush">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Polybrush.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Postprocessing.Runtime">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Postprocessing.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.ProBuilder.Csg">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.ProBuilder.Csg.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.ProBuilder">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.ProBuilder.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.ProBuilder.KdTree">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.ProBuilder.KdTree.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.ProBuilder.Poly2Tri">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.ProBuilder.Poly2Tri.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.ProBuilder.Stl">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.ProBuilder.Stl.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Profiling.Core">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Profiling.Core.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Properties">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Properties.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Properties.Reflection">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Properties.Reflection.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Properties.UI">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Properties.UI.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.RenderPipelines.Core.Runtime">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.RenderPipelines.Core.Runtime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.RenderPipelines.Core.ShaderLibrary">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.RenderPipelines.Core.ShaderLibrary.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Scenes">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Scenes.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.ScriptableBuildPipeline">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.ScriptableBuildPipeline.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Serialization">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Serialization.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Services.Analytics">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Analytics.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Services.Authentication">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Authentication.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Services.Core.Analytics">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Analytics.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Services.Core.Configuration">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Configuration.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Services.Core.Device">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Device.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Services.Core">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Services.Core.Environments">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Environments.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Services.Core.Environments.Internal">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Environments.Internal.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Services.Core.Internal">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Internal.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Services.Core.Networking">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Networking.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Services.Core.Registration">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Registration.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Services.Core.Scheduler">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Scheduler.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Services.Core.Telemetry">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Telemetry.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Services.Core.Threading">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Threading.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.TextMeshPro">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.TextMeshPro.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Timeline">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Timeline.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Transforms">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Transforms.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Transforms.Hybrid">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Transforms.Hybrid.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.VectorGraphics">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.VectorGraphics.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.XR.CoreUtils">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.CoreUtils.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.XR.Hands">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.Hands.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.XR.Hands.Samples.VisualizerSample">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.Hands.Samples.VisualizerSample.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.XR.Management">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.Management.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.XR.Oculus">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.Oculus.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.XR.OpenVR">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenVR.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.XR.OpenXR">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenXR.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.XR.OpenXR.Features.ConformanceAutomation">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenXR.Features.ConformanceAutomation.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.XR.OpenXR.Features.MetaQuestSupport">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenXR.Features.MetaQuestSupport.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.XR.OpenXR.Features.MockRuntime">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenXR.Features.MockRuntime.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.XR.OpenXR.Features.OculusQuestSupport">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenXR.Features.OculusQuestSupport.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.XR.OpenXR.Features.PICOSupport">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenXR.Features.PICOSupport.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.XR.OpenXR.Features.RuntimeDebugger">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenXR.Features.RuntimeDebugger.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.XR.OpenXRPico">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenXRPico.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.AccessibilityModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.AccessibilityModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.AIModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.AIModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.AndroidJNIModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.AndroidJNIModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.AnimationModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.AnimationModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.ARModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.ARModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.AssetBundleModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.AssetBundleModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.AudioModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.AudioModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.ClothModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.ClothModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.ClusterInputModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.ClusterInputModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.ClusterRendererModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.ClusterRendererModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.CoreModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.CoreModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.CrashReportingModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.CrashReportingModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.DirectorModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.DirectorModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.DSPGraphModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.DSPGraphModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.GameCenterModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.GameCenterModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.GIModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.GIModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.GridModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.GridModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.HotReloadModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.HotReloadModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.ImageConversionModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.ImageConversionModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.IMGUIModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.IMGUIModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.InputLegacyModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.InputLegacyModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.InputModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.InputModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.JSONSerializeModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.JSONSerializeModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.LocalizationModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.LocalizationModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.NVIDIAModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.NVIDIAModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.ParticleSystemModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.ParticleSystemModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.PerformanceReportingModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.PerformanceReportingModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.Physics2DModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.Physics2DModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.PhysicsModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.PhysicsModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.ProfilerModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.ProfilerModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.ScreenCaptureModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.ScreenCaptureModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.SharedInternalsModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.SharedInternalsModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.SpatialTracking">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.SpatialTracking.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.SpriteMaskModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.SpriteMaskModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.SpriteShapeModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.SpriteShapeModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.StreamingModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.StreamingModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.SubstanceModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.SubstanceModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.SubsystemsModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.SubsystemsModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.TerrainModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.TerrainModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.TerrainPhysicsModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.TerrainPhysicsModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.TextCoreFontEngineModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.TextCoreFontEngineModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.TextCoreTextEngineModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.TextCoreTextEngineModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.TextRenderingModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.TextRenderingModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.TilemapModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.TilemapModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.TLSModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.TLSModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UI.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UIElementsModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UIElementsModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UIElementsNativeModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UIElementsNativeModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UIModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UIModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UmbraModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UmbraModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UNETModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UNETModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UnityAnalyticsCommonModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UnityAnalyticsCommonModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UnityAnalyticsModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UnityAnalyticsModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UnityConnectModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UnityConnectModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UnityCurlModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UnityCurlModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UnityTestProtocolModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UnityTestProtocolModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestAssetBundleModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UnityWebRequestAssetBundleModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestAudioModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UnityWebRequestAudioModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UnityWebRequestModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestTextureModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UnityWebRequestTextureModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestWWWModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UnityWebRequestWWWModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.VehiclesModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.VehiclesModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.VFXModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.VFXModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.VideoModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.VideoModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.VirtualTexturingModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.VirtualTexturingModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.VRModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.VRModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.WindModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.WindModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.XR.LegacyInputHelpers">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.XR.LegacyInputHelpers.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.XRModule">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.XRModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Valve.Newtonsoft.Json">
<HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\Valve.Newtonsoft.Json.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
</Project>

View file

@ -1,119 +0,0 @@
using System;
using System.IO;
using MelonLoader;
using System.Reflection;
using ABI_RC.Core.Player;
using ABI_RC.Core.Util;
using ABI_RC.Core.Util.AssetFiltering;
using ABI_RC.Systems.Camera;
using UnityEngine;
namespace NAK.YouAreAClone;
public class YouAreAClone : MelonMod
{
internal static MelonLogger.Instance Logger;
public override void OnInitializeMelon()
{
Logger = LoggerInstance;
//VRModeSwitchEvents.OnCompletedVRModeSwitch.AddListener(_ => FindCameras());
SharedFilter._avatarWhitelist.Add(typeof(FPRExclusion));
SharedFilter._localComponentWhitelist.Add(typeof(FPRExclusion));
try
{
LoadAssetBundle();
InitializePatches();
}
catch (Exception e)
{
Logger.Error(e);
}
}
#region Asset Bundle Loading
private const string YouAreACloneAssets = "YouAreAClone.assets";
private const string BoneHiderComputePath = "Assets/Koneko/ComputeShaders/BoneHider.compute";
//private const string MeshCopyComputePath = "Assets/Koneko/ComputeShaders/MeshCopy.compute";
private const string ShadowCloneComputePath = "Assets/NotAKid/Shaders/ShadowClone.compute";
private const string ShadowCloneShaderPath = "Assets/NotAKid/Shaders/ShadowClone.shader";
private const string DummyCloneShaderPath = "Assets/NotAKid/Shaders/DummyClone.shader";
private void LoadAssetBundle()
{
Logger.Msg($"Loading required asset bundle...");
using Stream resourceStream = MelonAssembly.Assembly.GetManifestResourceStream(YouAreACloneAssets);
using MemoryStream memoryStream = new();
if (resourceStream == null) {
Logger.Error($"Failed to load {YouAreACloneAssets}!");
return;
}
resourceStream.CopyTo(memoryStream);
AssetBundle assetBundle = AssetBundle.LoadFromMemory(memoryStream.ToArray());
if (assetBundle == null) {
Logger.Error($"Failed to load {YouAreACloneAssets}! Asset bundle is null!");
return;
}
// load shaders
ComputeShader shader = assetBundle.LoadAsset<ComputeShader>(BoneHiderComputePath);
shader.hideFlags |= HideFlags.DontUnloadUnusedAsset;
TransformHiderManager.shader = shader;
Logger.Msg($"Loaded {BoneHiderComputePath}!");
// load shadow clone shader
ComputeShader shadowCloneCompute = assetBundle.LoadAsset<ComputeShader>(ShadowCloneComputePath);
shadowCloneCompute.hideFlags |= HideFlags.DontUnloadUnusedAsset;
ShadowCloneHelper.shader = shadowCloneCompute;
Logger.Msg($"Loaded {ShadowCloneComputePath}!");
// load shadow clone material
Shader shadowCloneShader = assetBundle.LoadAsset<Shader>(ShadowCloneShaderPath);
shadowCloneShader.hideFlags |= HideFlags.DontUnloadUnusedAsset;
ShadowCloneHelper.shadowMaterial = new Material(shadowCloneShader);
Logger.Msg($"Loaded {ShadowCloneShaderPath}!");
Logger.Msg("Asset bundle successfully loaded!");
}
#endregion
#region Harmony Patches
private void InitializePatches()
{
HarmonyInstance.Patch(
typeof(TransformHiderForMainCamera).GetMethod(nameof(TransformHiderForMainCamera.ProcessHierarchy)),
prefix: new HarmonyLib.HarmonyMethod(typeof(YouAreAClone).GetMethod(nameof(OnTransformHiderForMainCamera_ProcessHierarchy_Prefix), BindingFlags.NonPublic | BindingFlags.Static))
);
HarmonyInstance.Patch(
typeof(PlayerSetup).GetMethod(nameof(PlayerSetup.ClearAvatar)),
prefix: new HarmonyLib.HarmonyMethod(typeof(YouAreAClone).GetMethod(nameof(OnPlayerSetup_ClearAvatar_Prefix), BindingFlags.NonPublic | BindingFlags.Static))
);
}
private static void OnPlayerSetup_ClearAvatar_Prefix()
{
TransformHiderManager.Instance.OnAvatarCleared();
ShadowCloneManager.Instance.OnAvatarCleared();
}
private static void OnTransformHiderForMainCamera_ProcessHierarchy_Prefix(ref bool __runOriginal)
{
if (!__runOriginal || (__runOriginal = !ModSettings.EntryEnabled.Value))
return; // if something else disabled, or we are disabled, don't run
ShadowCloneHelper.SetupAvatar(PlayerSetup.Instance._avatar);
}
#endregion
}

View file

@ -1,60 +0,0 @@
using MelonLoader;
using UnityEngine;
namespace NAK.BetterShadowClone;
public static class ModSettings
{
#region Melon Prefs
private const string SettingsCategory = nameof(ShadowCloneMod);
private static readonly MelonPreferences_Category Category =
MelonPreferences.CreateCategory(SettingsCategory);
internal static readonly MelonPreferences_Entry<bool> EntryEnabled =
Category.CreateEntry("Enabled", true,
description: "Enable Mirror Clone.");
internal static readonly MelonPreferences_Entry<bool> EntryUseShadowClone =
Category.CreateEntry("Use Shadow Clone", true,
description: "Should you have shadow clones?");
internal static readonly MelonPreferences_Entry<bool> EntryCopyMaterialToShadow =
Category.CreateEntry("Copy Material to Shadow", true,
description: "Should the shadow clone copy the material from the original mesh? Note: This can have a slight performance hit.");
internal static readonly MelonPreferences_Entry<bool> EntryDontRespectFPR =
Category.CreateEntry("Dont Respect FPR", false,
description: "Should the transform hider not respect FPR?");
internal static readonly MelonPreferences_Entry<bool> EntryDebugHeadHide =
Category.CreateEntry("Debug Head Hide", false,
description: "Should head be hidden for first render?");
internal static readonly MelonPreferences_Entry<bool> EntryDebugShowShadow =
Category.CreateEntry("Debug Show Shadow", false,
description: "Should the shadow clone be shown?");
internal static readonly MelonPreferences_Entry<bool> EntryDebugShowInFront =
Category.CreateEntry("Debug Show in Front", false,
description: "Should the shadow clone be shown in front?");
#endregion
internal static void Initialize()
{
foreach (MelonPreferences_Entry setting in Category.Entries)
setting.OnEntryValueChangedUntyped.Subscribe(OnSettingsChanged);
}
private static void OnSettingsChanged(object oldValue = null, object newValue = null)
{
TransformHiderManager.s_DisallowFprExclusions = EntryDontRespectFPR.Value;
TransformHiderManager.s_DebugHeadHide = EntryDebugHeadHide.Value;
ShadowCloneManager.s_CopyMaterialsToShadow = EntryCopyMaterialToShadow.Value;
ShadowCloneManager.s_DebugShowShadow = EntryDebugShowShadow.Value;
ShadowCloneManager.s_DebugShowInFront = EntryDebugShowInFront.Value;
}
}

View file

@ -1,29 +0,0 @@
using MelonLoader;
using NAK.BetterShadowClone.Properties;
using System.Reflection;
[assembly: AssemblyVersion(AssemblyInfoParams.Version)]
[assembly: AssemblyFileVersion(AssemblyInfoParams.Version)]
[assembly: AssemblyInformationalVersion(AssemblyInfoParams.Version)]
[assembly: AssemblyTitle(nameof(NAK.BetterShadowClone))]
[assembly: AssemblyCompany(AssemblyInfoParams.Author)]
[assembly: AssemblyProduct(nameof(NAK.BetterShadowClone))]
[assembly: MelonInfo(
typeof(NAK.BetterShadowClone.ShadowCloneMod),
nameof(NAK.BetterShadowClone),
AssemblyInfoParams.Version,
AssemblyInfoParams.Author,
downloadLink: "https://github.com/NotAKidOnSteam/NAK_CVR_Mods/tree/main/ShadowCloneMod"
)]
[assembly: MelonGame("Alpha Blend Interactive", "ChilloutVR")]
[assembly: MelonPlatform(MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
[assembly: MelonPlatformDomain(MelonPlatformDomainAttribute.CompatibleDomains.MONO)]
namespace NAK.BetterShadowClone.Properties;
internal static class AssemblyInfoParams
{
public const string Version = "1.0.0";
public const string Author = "NotAKidoS & Exterrata";
}

View file

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk" />

View file

@ -6,16 +6,17 @@ $cvrManagedDataPath = "\ChilloutVR_Data\Managed"
$cvrPath = $env:CVRPATH
$cvrExecutable = "ChilloutVR.exe"
$cvrDefaultPath = "E:\temp\CVR_Experimental"
$cvrDefaultPath = "C:\Program Files (x86)\Steam\steamapps\common\ChilloutVR"
# $cvrDefaultPath = "E:\temp\CVR_Experimental"
# Array with the dlls to strip
$dllsToStrip = @('Assembly-CSharp.dll','Assembly-CSharp-firstpass.dll','AVProVideo.Runtime.dll', 'Unity.TextMeshPro.dll', 'MagicaCloth.dll', 'Unity.Services.Vivox.dll')
$dllsToStrip = @('Assembly-CSharp.dll','Assembly-CSharp-firstpass.dll','AVProVideo.Runtime.dll', 'Unity.TextMeshPro.dll', 'MagicaCloth.dll', 'MagicaClothV2.dll')
# Array with the mods to grab
$modNames = @("BTKUILib", "BTKSAImmersiveHud", "ActionMenu", "MenuScalePatch", "ChatBox", "ml_prm")
$modNames = @("BTKUILib", "BTKSAImmersiveHud", "PortableMirrorMod", "VRBinding")
# Array with dlls to ignore from ManagedLibs
$cvrManagedLibNamesToIgnore = @("netstandard")
$cvrManagedLibNamesToIgnore = @("netstandard", "Mono.Cecil", "Unity.Burst.Cecil")
if ($cvrPath -and (Test-Path "$cvrPath\$cvrExecutable")) {
# Found ChilloutVR.exe in the existing CVRPATH
@ -56,17 +57,32 @@ Copy-Item $cvrPath$CecilallPath -Destination $managedLibsFolder
Copy-Item $cvrPath$cvrManagedDataPath"\*" -Destination $managedLibsFolder
# Saving XML ready libs for the Build.props file
$lib_names_xml = "<Project><ItemGroup>"
$lib_names_xml += '<Reference Include="0Harmony"><HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\0Harmony.dll</HintPath><Private>False</Private></Reference>'
$lib_names_xml += '<Reference Include="MelonLoader"><HintPath>$(MsBuildThisFileDirectory)\.ManagedLibs\MelonLoader.dll</HintPath><Private>False</Private></Reference>'
# Generate the References.Items.props file, that contains the references to all ManagedData Dlls
# Define indentation as a variable
$indent = ' ' # 4 spaces
$lib_names_xml = "<Project>`n${indent}<ItemGroup>`n"
# Manually add references with specific paths and settings
$lib_names_xml += "${indent}${indent}<Reference Include=`"0Harmony`">`n${indent}${indent}${indent}<HintPath>`$(MsBuildThisFileDirectory)\.ManagedLibs\0Harmony.dll</HintPath>`n${indent}${indent}${indent}<Private>False</Private>`n${indent}${indent}</Reference>`n"
$lib_names_xml += "${indent}${indent}<Reference Include=`"MelonLoader`">`n${indent}${indent}${indent}<HintPath>`$(MsBuildThisFileDirectory)\.ManagedLibs\MelonLoader.dll</HintPath>`n${indent}${indent}${indent}<Private>False</Private>`n${indent}${indent}</Reference>`n"
$lib_names_xml += "${indent}${indent}<Reference Include=`"Mono.Cecil`">`n${indent}${indent}${indent}<HintPath>`$(MsBuildThisFileDirectory)\.ManagedLibs\Mono.Cecil.dll</HintPath>`n${indent}${indent}${indent}<Private>False</Private>`n${indent}${indent}</Reference>`n"
# Iterate over files in a specified directory, adding them as references if not in the ignore list
foreach ($file in Get-ChildItem $cvrPath$cvrManagedDataPath"\*") {
if($cvrManagedLibNamesToIgnore -notcontains $file.BaseName) {
$lib_names_xml += "<Reference Include=`"$($file.BaseName)`"><HintPath>`$(MsBuildThisFileDirectory)\.ManagedLibs\$($file.BaseName).dll</HintPath><Private>False</Private></Reference>"
if ($cvrManagedLibNamesToIgnore -notcontains $file.BaseName) {
$lib_names_xml += "${indent}${indent}<Reference Include=`"$($file.BaseName)`">`n${indent}${indent}${indent}<HintPath>`$(MsBuildThisFileDirectory)\.ManagedLibs\$($file.BaseName).dll</HintPath>`n${indent}${indent}${indent}<Private>False</Private>`n${indent}${indent}</Reference>`n"
}
}
$lib_names_xml += "</ItemGroup></Project>"
$lib_names_xml | Out-File -Encoding UTF8 -FilePath lib_names.xml
# Close the ItemGroup and Project tags with proper formatting
$lib_names_xml += "${indent}</ItemGroup>`n</Project>"
# Output the constructed XML content to a file with UTF8 encoding
$lib_names_xml | Out-File -Encoding UTF8 -FilePath "References.Items.props"
Write-Host ""
Write-Host "Generated References.Items.props file containing the references to all common ManagedLibs"
@ -147,7 +163,7 @@ else {
# Loop through each DLL file to strip and call NStrip.exe
foreach($dllFile in $dllsToStrip) {
$dllPath = Join-Path -Path $managedLibsFolder -ChildPath $dllFile
& $nStripPath -p -n -cg --cg-exclude-events $dllPath $dllPath
& $nStripPath -p -n $dllPath $dllPath
}
Write-Host ""

View file

@ -1,132 +0,0 @@
# CVR and Melon Loader Dependencies
$0HarmonydllPath = "\MelonLoader\net35\0Harmony.dll"
$melonLoaderdllPath = "\MelonLoader\net35\MelonLoader.dll"
$cvrManagedDataPath = "\ChilloutVR_Data\Managed"
$cvrPath = $env:CVRPATH
$cvrExecutable = "ChilloutVR.exe"
$cvrDefaultPath = "C:\Program Files (x86)\Steam\steamapps\common\ChilloutVR"
if ($cvrPath -and (Test-Path "$cvrPath\$cvrExecutable")) {
# Found ChilloutVR.exe in the existing CVRPATH
Write-Host ""
Write-Host "Found the ChilloutVR folder on: $cvrPath"
}
else {
# Check if ChilloutVR.exe exists in default Steam location
if (Test-Path "$cvrDefaultPath\$cvrExecutable") {
# Set CVRPATH environment variable to default Steam location
Write-Host "Found the ChilloutVR on the default steam location, setting the CVRPATH Env Var at User Level!"
[Environment]::SetEnvironmentVariable("CVRPATH", $cvrDefaultPath, "User")
$env:CVRPATH = $cvrDefaultPath
$cvrPath = $env:CVRPATH
}
else {
Write-Host "[ERROR] ChilloutVR.exe not found in CVRPATH or the default Steam location."
Write-Host " Please define the Environment Variable CVRPATH pointing to the ChilloutVR folder!"
return
}
}
$scriptDir = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
$managedLibsFolder = $scriptDir + "\.ManagedLibs"
Write-Host ""
Write-Host "Copying the DLLs from the CVR, MelonLoader, and Mods folder to the ManagedLibs"
Copy-Item $cvrPath$0HarmonydllPath -Destination $managedLibsFolder
Copy-Item $cvrPath$melonLoaderdllPath -Destination $managedLibsFolder
Copy-Item $cvrPath$cvrManagedDataPath"\*" -Destination $managedLibsFolder
# Third Party Dependencies
$melonModsPath="\Mods\"
$modNames = @("BTKUILib", "UIExpansionKit", "ChatBox", "ml_prm")
$missingMods = New-Object System.Collections.Generic.List[string]
foreach ($modName in $modNames) {
$modDll = $modName + ".dll"
$modPath = $cvrPath + $melonModsPath + $modDll
$managedLibsModPath = "$managedLibsFolder\$modDll"
# Attempt to grab from the mods folder
if (Test-Path $modPath -PathType Leaf) {
Write-Host " Copying $modDll from $melonModsPath to \.ManagedLibs!"
Copy-Item $modPath -Destination $managedLibsFolder
}
# Check if they already exist in the ManagedLibs
elseif (Test-Path $managedLibsModPath -PathType Leaf) {
Write-Host " Ignoring $modDll since already exists in \.ManagedLibs!"
}
# If we fail, lets add to the missing mods list
else {
$missingMods.Add($modName)
}
}
if ($missingMods.Count -gt 0) {
# If we have missing mods, let's fetch them from the latest CVR Modding Group API
Write-Host ""
Write-Host "Failed to find $($missingMods.Count) mods. We're going to search in CVR MG verified mods" -ForegroundColor Red
Write-Host "You can download them and move to $managedLibsFolder"
$cvrModdingApiUrl = "https://api.cvrmg.com/v1/mods"
$cvrModdingDownloadUrl = "https://api.cvrmg.com/v1/mods/download/"
$latestModsResponse = Invoke-RestMethod $cvrModdingApiUrl -UseBasicParsing
foreach ($modName in $missingMods) {
$mod = $latestModsResponse | Where-Object { $_.name -eq $modName }
if ($mod) {
$modDownloadUrl = $cvrModdingDownloadUrl + $($mod._id)
# It seems power shell doesn't like to download .dll from https://api.cvrmg.com (messes with some anti-virus)
# Invoke-WebRequest -Uri $modDownloadUrl -OutFile $managedLibsFolder -UseBasicParsing
# Write-Host " $modName was downloaded successfully to $managedLibsFolder!"
Write-Host " $modName Download Url: $modDownloadUrl"
} else {
Write-Host " $modName was not found in the CVR Modding Group verified mods!"
}
}
}
Write-Host ""
Write-Host "Copied all libraries!"
Write-Host ""
Write-Host "Press any key to strip the Dlls using NStrip"
$HOST.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | OUT-NULL
$HOST.UI.RawUI.Flushinputbuffer()
Write-Host "NStrip Convert all private/protected stuff to public. Requires <AllowUnsafeBlocks>true></AllowUnsafeBlocks>"
# Create an array to hold the file names to strip
$dllsToStrip = @('Assembly-CSharp.dll','Assembly-CSharp-firstpass.dll','AVProVideo.Runtime.dll','cohtml.Net.dll','Cohtml.RenderingBackend.dll','Cohtml.Runtime.dll','SteamVR.dll','SteamVR_Actions.dll')
# Check if NStrip.exe exists in the current directory
if(Test-Path -Path ".\NStrip.exe") {
$nStripPath = ".\NStrip.exe"
}
else {
# Try to locate NStrip.exe in the PATH
$nStripPath = Get-Command -Name NStrip.exe -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Source
if($nStripPath -eq $null) {
# Display an error message if NStrip.exe could not be found
Write-Host "Could not find NStrip.exe in the current directory nor in the PATH." -ForegroundColor Red
Write-Host "Visit https://github.com/bbepis/NStrip/releases/latest to grab a copy." -ForegroundColor Red
return
}
}
# Loop through each DLL file to strip and call NStrip.exe
foreach($dllFile in $dllsToStrip) {
$dllPath = Join-Path -Path $managedLibsFolder -ChildPath $dllFile
& $nStripPath -p -n $dllPath $dllPath
}
Write-Host ""
Write-Host "Copied all libraries and stripped the DLLs!"
Write-Host ""
Write-Host "Press any key to exit"
$HOST.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | OUT-NULL
$HOST.UI.RawUI.Flushinputbuffer()