Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of SolidCompany v1.0.1
SolidCompany.dll
Decompiled 2 years agousing System; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using LethalLib.Modules; using SolidCompany.Patches; 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("SolidCompany")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("SolidCompany")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("b316263b-eb86-414e-afd1-282161c28d53")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: AssemblyVersion("1.0.0.0")] namespace SolidCompany { [BepInPlugin("Fusition.SolidCompany", "Solid Company", "1.1.1.0")] public class SCModBase : BaseUnityPlugin { private const string modGUID = "Fusition.SolidCompany"; private const string modName = "Solid Company"; private const string modVersion = "1.1.1.0"; private readonly Harmony harmony = new Harmony("Fusition.SolidCompany"); private static SCModBase Instance; private readonly float scrollSpeed = 0.4f; internal ManualLogSource fusLogSource; private void Awake() { //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Expected O, but got Unknown if ((Object)(object)Instance == (Object)null) { Instance = this; } ((Object)((Component)this).gameObject).hideFlags = (HideFlags)61; fusLogSource = Logger.CreateLogSource("Fusition.SolidCompany"); string text = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "solidcompanyassets"); AssetBundle val = AssetBundle.LoadFromFile(text); string[] allAssetNames = val.GetAllAssetNames(); foreach (string text2 in allAssetNames) { fusLogSource.LogInfo((object)text2); } Item val2 = val.LoadAsset<Item>("Assets/Scrap/CheeseWheelItem.asset"); if ((Object)(object)val2 == (Object)null) { fusLogSource.LogError((object)"Failed to load prefab from asset bundle"); } NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab); Utilities.FixMixerGroups(val2.spawnPrefab); Items.RegisterScrap(val2, 60, (LevelTypes)(-1)); fusLogSource.LogInfo((object)"SolidCompany awoken"); MethodInfo methodInfo = AccessTools.Method(typeof(PlayerControllerB), "RaycastSpectateCameraAroundPivot", (Type[])null, (Type[])null); MethodInfo methodInfo2 = AccessTools.Method(typeof(PlayerControllerB_Patch), "RaycastSpectateCameraAroundPivot_Patch", (Type[])null, (Type[])null); harmony.Patch((MethodBase)methodInfo, new HarmonyMethod(methodInfo2), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); } private void Update() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) if (UnityInput.Current.mouseScrollDelta.y != 0f) { PlayerControllerB_Patch.zoomDistance = (PlayerControllerB_Patch.zoomDistance + UnityInput.Current.mouseScrollDelta.y / -120f * scrollSpeed).Clamp(1f, 15f); } if (UnityInput.Current.GetKeyDown((KeyCode)112)) { PlayerControllerB_Patch.firstPersonSpectatorToggle = !PlayerControllerB_Patch.firstPersonSpectatorToggle; } } } internal static class Util { public static T Clamp<T>(this T val, T min, T max) where T : IComparable<T> { if (val.CompareTo(min) < 0) { return min; } if (val.CompareTo(max) > 0) { return max; } return val; } } } namespace SolidCompany.Patches { [HarmonyPatch(typeof(PlayerControllerB))] public class PlayerControllerB_Patch { public static float zoomDistance = 1.4f; public static bool firstPersonSpectatorToggle = false; [HarmonyPatch("Update")] [HarmonyPrefix] public static bool RaycastSpectateCameraAroundPivot_Patch(PlayerControllerB __instance, RaycastHit ___hit, int ___walkableSurfacesNoPlayersMask) { //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) if (!firstPersonSpectatorToggle) { Ray val = default(Ray); ((Ray)(ref val))..ctor(__instance.spectateCameraPivot.position, -__instance.spectateCameraPivot.forward); if (Physics.Raycast(val, ref ___hit, zoomDistance, ___walkableSurfacesNoPlayersMask, (QueryTriggerInteraction)1)) { ((Component)__instance.playersManager.spectateCamera).transform.position = ((Ray)(ref val)).GetPoint(((RaycastHit)(ref ___hit)).distance - 0.25f); } else { ((Component)__instance.playersManager.spectateCamera).transform.position = ((Ray)(ref val)).GetPoint(zoomDistance - 0.1f); } ((Component)__instance.playersManager.spectateCamera).transform.LookAt(__instance.spectateCameraPivot); } else { ((Component)__instance.playersManager.spectateCamera).transform.position = __instance.spectateCameraPivot.position + new Vector3(0f, 0.0354f, 0f); } return false; } } }