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 Better Terminal Scanner v1.0.3
BetterTerminalScanner.dll
Decompiled 4 months agousing System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Logging; using HarmonyLib; 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("BetterTerminalScanner")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("BetterTerminalScanner")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("8a85892c-c96c-4b28-b010-b5415a0f21cb")] [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 BetterTerminalScanner; [BepInPlugin("com.chris.scrap.terminal", "Scrap Terminal", "1.0.3")] public class Plugin : BaseUnityPlugin { private const string GUID = "com.chris.scrap.terminal"; private const string NAME = "Scrap Terminal"; private const string VERSION = "1.0.3"; internal static ManualLogSource mls; internal static Harmony harmony = new Harmony("com.chris.scrap.terminal"); private void Awake() { mls = ((BaseUnityPlugin)this).Logger; harmony.PatchAll(typeof(TerminalPatch)); mls.LogInfo((object)"Loaded succesfully"); } } [HarmonyPatch(typeof(Terminal))] internal class TerminalPatch { [HarmonyPatch("TextPostProcess")] [HarmonyPrefix] private static bool TextPostProcessPrefix(ref string modifiedDisplayText, TerminalNode node, ref string __result, Terminal __instance) { string text = modifiedDisplayText.Trim(); if (text.Contains("[scanForItems]")) { __result = Utilities.ScanDisplayText(); return false; } return true; } } internal class Utilities { internal static bool ShouldListItem(GrabbableObject item) { if (!item.itemProperties.isScrap) { return false; } if (item.isInShipRoom || item.isInElevator) { return false; } StunGrenadeItem val = (StunGrenadeItem)(object)((item is StunGrenadeItem) ? item : null); if (val != null) { return !val.hasExploded; } return true; } internal static string ScanDisplayText() { string text = ""; int num = 0; GrabbableObject[] source = Object.FindObjectsOfType<GrabbableObject>(); GrabbableObject[] array = (from obj in source where ShouldListItem(obj) orderby obj.itemProperties.itemName select obj).ToArray(); if (array.Length == 0) { return "\n\n\nNo objects were found.\n\n"; } GrabbableObject[] array2 = array; foreach (GrabbableObject val in array2) { text += $"\n* {val.itemProperties.itemName} // ${val.scrapValue}"; num += val.scrapValue; } return $"\n\n\nThere are {array.Length} objects outside the ship, totalling a value of ${num}.\n{text}\n\n"; } }