using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using Lethal_Company_Mod.Changes;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("Lethal Company Mod")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("HP")]
[assembly: AssemblyProduct("Lethal Company Mod")]
[assembly: AssemblyCopyright("Copyright © HP 2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("a3cc6305-0a94-4ba5-9a34-c1174e5040f9")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace Lethal_Company_ColdBoot_Freecam
{
[BepInPlugin("Ray.CBFreecam", "LC ColdBoot Freecam", "1.0.0.0")]
public class LCMod_RayCBFreecam : BaseUnityPlugin
{
private const string modGUID = "Ray.CBFreecam";
private const string modName = "LC ColdBoot Freecam";
private const string modVersion = "1.0.0.0";
private readonly Harmony harm = new Harmony("Ray.CBFreecam");
private static LCMod_RayCBFreecam Instance;
internal ManualLogSource mls;
private void Awake()
{
if ((Object)(object)Instance == (Object)null)
{
Instance = this;
}
mls = Logger.CreateLogSource("Ray.CBFreecam");
mls.LogInfo((object)"Cold Boots hacked! :3");
harm.PatchAll(typeof(LCMod_RayCBFreecam));
harm.PatchAll(typeof(coldBootFix));
}
}
}
namespace Lethal_Company_Mod.Changes
{
[HarmonyPatch(typeof(ColdOpenCinematicCutscene))]
internal class coldBootFix
{
private static GameObject EmptyGameObject = new GameObject();
private static Transform rawPosition = EmptyGameObject.transform;
private static Transform fakeCameraTransform = EmptyGameObject.transform;
private static bool inheritedPosition = false;
private static float cameraUp = 0f;
[HarmonyPatch("Update")]
[HarmonyPostfix]
private static void coldBootCameraFix(ref Camera ___cam)
{
//IL_0046: Unknown result type (might be due to invalid IL or missing references)
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
//IL_0065: Unknown result type (might be due to invalid IL or missing references)
//IL_006a: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
//IL_009c: Unknown result type (might be due to invalid IL or missing references)
//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
//IL_0104: Unknown result type (might be due to invalid IL or missing references)
//IL_0129: Unknown result type (might be due to invalid IL or missing references)
//IL_012e: Unknown result type (might be due to invalid IL or missing references)
//IL_0139: Unknown result type (might be due to invalid IL or missing references)
//IL_013e: Unknown result type (might be due to invalid IL or missing references)
//IL_0144: Unknown result type (might be due to invalid IL or missing references)
//IL_0153: Unknown result type (might be due to invalid IL or missing references)
//IL_0158: Unknown result type (might be due to invalid IL or missing references)
//IL_015e: Unknown result type (might be due to invalid IL or missing references)
//IL_0163: Unknown result type (might be due to invalid IL or missing references)
//IL_0168: Unknown result type (might be due to invalid IL or missing references)
//IL_016f: Unknown result type (might be due to invalid IL or missing references)
//IL_0174: Unknown result type (might be due to invalid IL or missing references)
//IL_017a: Unknown result type (might be due to invalid IL or missing references)
//IL_0184: Unknown result type (might be due to invalid IL or missing references)
//IL_0189: Unknown result type (might be due to invalid IL or missing references)
//IL_01a5: Unknown result type (might be due to invalid IL or missing references)
//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
//IL_01c4: Unknown result type (might be due to invalid IL or missing references)
//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
//IL_01ea: Unknown result type (might be due to invalid IL or missing references)
//IL_01fa: Unknown result type (might be due to invalid IL or missing references)
if (!inheritedPosition)
{
inheritedPosition = true;
rawPosition.position = ((Component)___cam).transform.position;
}
Vector2 val = IngamePlayerSettings.Instance.playerInput.actions.FindAction("Look", false).ReadValue<Vector2>() * 0.008f * (float)IngamePlayerSettings.Instance.settings.lookSensitivity;
if (IngamePlayerSettings.Instance.settings.invertYAxis)
{
val.y *= -1f;
}
rawPosition.Rotate(new Vector3(0f, val.x, 0f));
cameraUp -= val.y;
cameraUp = Mathf.Clamp(cameraUp, -80f, 80f);
((Component)rawPosition).transform.localEulerAngles = new Vector3(cameraUp, ((Component)rawPosition).transform.localEulerAngles.y, 0f);
Vector2 val2 = IngamePlayerSettings.Instance.playerInput.actions.FindAction("Move", false).ReadValue<Vector2>();
Vector3 val3 = ((Component)rawPosition).transform.right * val2.x + ((Component)rawPosition).transform.forward * val2.y;
Transform obj = rawPosition;
obj.position += val3 * Time.deltaTime * 15f;
((Component)___cam).transform.position = Vector3.Lerp(((Component)fakeCameraTransform).transform.position, ((Component)rawPosition).transform.position, 3f * Time.deltaTime);
((Component)___cam).transform.rotation = Quaternion.Slerp(((Component)fakeCameraTransform).transform.rotation, rawPosition.rotation, 3f * Time.deltaTime);
}
}
}