Decompiled source of RoseLib v1.0.1

RoseLib.dll

Decompiled a day ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using CustomStoryLogs;
using GameNetcodeStuff;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using RoseLib;
using RoseLib.src;
using UnityEngine;
using UnityEngine.Events;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("RoseLib")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("A collection of tools for RosiesMoons / their standalones.")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+0ab90fd4498b5ae158b802d14660721717abfd2e")]
[assembly: AssemblyProduct("RoseLib")]
[assembly: AssemblyTitle("RoseLib")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
public class EventRandom : MonoBehaviour
{
	[Header("Random Chance")]
	public float chancePercent;

	[Header("Systems")]
	[SerializeField]
	public UnityEvent eventPlayer;

	private Random random;

	private void Awake()
	{
		random = new Random(StartOfRound.Instance.randomMapSeed);
	}

	public void TriggerRandom()
	{
		if (!((float)random.Next(100) < chancePercent))
		{
			eventPlayer.Invoke();
		}
	}
}
public class ParticleDisabler : MonoBehaviour
{
	[SerializeField]
	public ParticleSystem[] particleSystem;

	private void Update()
	{
		PlayerControllerB[] allPlayerScripts = StartOfRound.Instance.allPlayerScripts;
		foreach (PlayerControllerB val in allPlayerScripts)
		{
			if ((Object)(object)val.currentAudioTrigger == (Object)null)
			{
				break;
			}
			if (val.isInsideFactory || val.isInHangarShipRoom || val.currentAudioTrigger.insideLighting)
			{
				ParticleSystem[] array = particleSystem;
				foreach (ParticleSystem val2 in array)
				{
					((Component)val2).gameObject.SetActive(false);
				}
			}
			else
			{
				ParticleSystem[] array2 = particleSystem;
				foreach (ParticleSystem val3 in array2)
				{
					((Component)val3).gameObject.SetActive(true);
				}
			}
		}
	}
}
public class PeriodicAudioParticleEvent : MonoBehaviour
{
	[Header("Intervals (Seconds)")]
	public float interval;

	public bool useMinMax;

	public int minInterval;

	public int maxInterval;

	[Header("Systems")]
	public bool playAudio;

	public AudioSource audioSource;

	[SerializeField]
	public AudioClip[] audioClips;

	public bool playEvents;

	[SerializeField]
	public UnityEvent[] randomEvents;

	private Random random;

	private void Start()
	{
		random = new Random(StartOfRound.Instance.randomMapSeed);
		audioSource = ((Component)this).GetComponent<AudioSource>();
		randomEvents = ((Component)this).GetComponent<UnityEvent[]>();
		((MonoBehaviour)this).Invoke("InvokePeriodicEvent", interval);
	}

	private void InvokePeriodicEvent()
	{
		float num = random.Next(minInterval, maxInterval);
		if (playAudio)
		{
			AudioClip val = audioClips[random.Next(0, audioClips.Length)];
			audioSource.PlayOneShot(val);
			Plugin.Logger.LogInfo((object)$"Playing random audioclip: {val}!");
		}
		if (playEvents)
		{
			UnityEvent val2 = randomEvents[random.Next(0, randomEvents.Length)];
			val2.Invoke();
			Plugin.Logger.LogInfo((object)"Playing random event!");
		}
		if (useMinMax)
		{
			((MonoBehaviour)this).Invoke("InvokePeriodicEvent", num);
		}
		else
		{
			((MonoBehaviour)this).Invoke("InvokePeriodicEvent", interval);
		}
	}
}
namespace RoseLib
{
	[BepInPlugin("RoseLib", "RoseLib", "1.0.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Plugin : BaseUnityPlugin
	{
		internal static ManualLogSource Logger;

		internal static RoseLibConfig BoundConfig { get; private set; }

		private void Awake()
		{
			BoundConfig = new RoseLibConfig(((BaseUnityPlugin)this).Config);
			Logger = ((BaseUnityPlugin)this).Logger;
			Assets.PopulateAssets();
			GameObject val = Assets.MyCustomAssets.LoadAsset<GameObject>("StoryLog");
			int vanillaStoryLogModel = CustomStoryLogs.RegisterCustomLogModel(val);
			RegisterLogs(BoundConfig, vanillaStoryLogModel);
			InitializeNetworkBehaviours();
			Logger.LogInfo((object)"Plugin RoseLib is loaded!");
		}

		private void InitializeNetworkBehaviours()
		{
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
		}

		private void RegisterLogs(RoseLibConfig config, int vanillaStoryLogModel)
		{
			//IL_0055: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_011f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0133: Unknown result type (might be due to invalid IL or missing references)
			//IL_0185: Unknown result type (might be due to invalid IL or missing references)
			//IL_0199: Unknown result type (might be due to invalid IL or missing references)
			//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0251: Unknown result type (might be due to invalid IL or missing references)
			//IL_0265: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_031d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0331: Unknown result type (might be due to invalid IL or missing references)
			//IL_0383: Unknown result type (might be due to invalid IL or missing references)
			//IL_0397: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_044f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0463: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c9: Unknown result type (might be due to invalid IL or missing references)
			if (config.shouldRegisterLogs.Value)
			{
				if (config.registerLogDumbBugs.Value)
				{
					int num = CustomStoryLogs.RegisterCustomLog("Yorimor.CustomStoryLogs", "Dumb Bugs - June 16, 1965", "David Indenburg\r\nJune 16, 1965\r\n\r\nThese damn bugs! I hate them with my whole being. They ruined my career, apparently the ITDA is planning on wiping them out off this planet as well as those dumb spiders. But as well as those pests being destroyed, the entire environment will be as well. This is a \"long term\" solution, but I just have a bad feeling that it'll cause so so much worse. This was my shipping port, and the IDTA thinks they can just stroll on along and kill it! It was one damn person that brought those pests to MY moon, never trusting anyone ever again.\r\n\tI have no idea what I will do after this invasion of my property. I have to find a completely new moon to settle on! Eve obviously isn't an option anymore since all of those idiots went missing. I was thinking about that uninhabited moon, Summit. Or Vow, I could choose either or, but I have no clue. All this costs and I'm not willing to pay for a replacement to my perfect moon.\r\n\tChrist, I just saw one of those bugs.. It was larger than usual? Like a queen or something, terrifying. I am going to leave before I get kidnapped by it or something. I'm leaving this log here as a memoriam to this moon, if anyone finds this, leave. This place is probably a hell-hole anyways.. Farewell Affliction...\r\n\r\n\r\n", false, false);
					CustomStoryLogs.RegisterCustomLogCollectable("Yorimor.CustomStoryLogs", num, "59 Affliction", new Vector3(-64.775f, 6.525f, -40.585f), new Vector3(-90f, 0f, 45f), vanillaStoryLogModel);
				}
				if (config.registerLogFlowerman.Value)
				{
					int num2 = CustomStoryLogs.RegisterCustomLog("Yorimor.CustomStoryLogs", "The Flowerman - April 15, 1957", "4/15/1957 - Ava Liebe, Chief of the Eve Colonization Project\r\n\r\n\tI am writing this as a testment to the likely lost to time Eve colony. Whoever finds this will know to leave this place as it was found..\r\n\tWe landed here around a couple months ago, and ever since, odd things have been happening. From weird chittering in the forests, to important technology going missing, the colonists and I were rightfully worried. During our stay at our resource mining encampment, it got too much to handle. We sent Andy and a few others periodically to find the source of the sounds.\r\n\tIt was tragic... Every 10 to 20 minutes, a single scream emenated from the forests of this godforsaken moon. I was striken with fear, it paralyzed me. I couldn't bring myself to help them... I ran, sprinted even. I took only a few things with me, including this blank recording. Which I am currently recording on.\r\n\tI swear every so often I see something in the corner of my eye, watching me.. I swear it was humanoid in shape, but it almost blended in with the bark and leaves of the surrounding trees. I don't have long left.. It is after me, it is intelligent, and it is a merciless hunter. It was trying to manipulate me into starting an emergency ship. So I urge you, the listener, to leave Eve before this thing can hijack your ship and spread across the galaxy. Please..\r\n\r\n\r\n", false, false);
					CustomStoryLogs.RegisterCustomLogCollectable("Yorimor.CustomStoryLogs", num2, "127 Eve-M", new Vector3(-121.5f, -4.82f, -56.6f), new Vector3(-91.175f, 0f, 0f), vanillaStoryLogModel);
				}
				if (config.registerLogDiscovery.Value)
				{
					int num3 = CustomStoryLogs.RegisterCustomLog("Yorimor.CustomStoryLogs", "Discovery - May 25, 1959", "\t\"Hello, is this thing working? Okay, good. This is Olivia Plannet, a member of the Company's task force of biologists. The year is 1959-” \r\n\r\n[a short delay is noted here] \r\n“-2 years later after a disaster. A couple of us arrived here not too long ago after the Eve Colonization project's catastrophe to investigate what happened here.”\r\n\r\n[pages rustle around, while Olivia clears her throat]\r\n\t“We have found something interesting, very interesting. An infant of some sort of intelligent life form which resides here. We call it the Flowerman due to its intelligence and plant-like appearance. There should be one in stasis right next to this log. We don't know much right now, but my colleagues and I feel it is best to bring creatures like this to Sector-0.\r\n\tOlivia, signing off.\"\r\n\r\n[Whimpers from what seems to be a tank from the left of the recording continue for around 2 minutes before someone slams on said tank]\r\n\r\n\r\n", false, false);
					CustomStoryLogs.RegisterCustomLogCollectable("Yorimor.CustomStoryLogs", num3, "127 Eve-M", new Vector3(89.453f, 0.951f, 111.002f), new Vector3(-90f, -180f, 89.155f), vanillaStoryLogModel);
				}
				if (config.registerLogLyra.Value)
				{
					int num4 = CustomStoryLogs.RegisterCustomLog("Yorimor.CustomStoryLogs", "Lyra - February 12, 1959", "I don't like this place, it feels kinda spooky. I think it'd be a funny idea to let everything out though. Imagine like, the looks on the higher-ups faces when I release our new monster we made. I mean, aren't they named after like clowns or something, jester, clown, close enough. I'm going to let like some of them go in some cargo ships, that'd be hilarious. Maybe they could actually have a good use then.\r\n\r\nLyra, the Company's Chaotic Engineer :3\r\n\r\n\r\n", false, false);
					CustomStoryLogs.RegisterCustomLogCollectable("Yorimor.CustomStoryLogs", num4, "71 Sector-0", new Vector3(-5.25f, -1.985f, 98.45f), new Vector3(-90f, 0f, -30f), vanillaStoryLogModel);
				}
				if (config.registerLogMonster.Value)
				{
					int num5 = CustomStoryLogs.RegisterCustomLog("Yorimor.CustomStoryLogs", "Monster - February 12, 1960", "\tWe've created something... Something indescribable. It's this.. thing? They told us to create a weapon of war, but we can't control this. The higher ups call it \"Jeb\". There is a rumour that we are moving the operation to a different moon across the solar system due to the pure danger of this monster. I have no idea what we will do with the other entities, we barely know anything about Rapax-Folium, for all we know it could escape after we leave. But they say termination will cost too much time, time which could danger all of us.\r\n\tSome people think that the higher-ups will start hiring people to find something, anything, to feed this crazed-with-hunger monster. Maybe on an abandonded moon to keep this private to the general public, but sadly, no one knows right now.\r\n\tJeb is insatiable, I have no clue what to do. It'll devour Thistle in its entirety if we don't do anything about it... So, since I have no idea what to do.. I am writing this log to let any future employees know to keep going, do not stop feeding this monster, it is the only way to keep us safe, to keep the nebula we call home.. safe.\r\n\r\nOlivia Plannet, a Genetic Engineer\r\n\r\n\r\n", false, false);
					CustomStoryLogs.RegisterCustomLogCollectable("Yorimor.CustomStoryLogs", num5, "71 Sector-0", new Vector3(-50.625f, -0.975f, -105f), new Vector3(-90f, 0f, 60f), vanillaStoryLogModel);
				}
				if (config.registerLogDrill.Value)
				{
					int num6 = CustomStoryLogs.RegisterCustomLog("Yorimor.CustomStoryLogs", "Drill - Oct 18, 1968", "Desmond. October 18, 1968. Second encrypted log. I don't have enough resources to power this drill.  We found a power apparatus, one of those old batteries that they put on facilities to power them, it was on Vow, but we need something... more powerful. I've been researching the archives of the hangar ship's terminal, and I stumbled on some heavily encrypted code hidden deep within it. A place called.. Sector-0?  I can't figure out how to route to this place, but I'll figure it out eventually, and when I do... We are figuring out what the Company actually is, and what is stored within...\r\n\r\n\r\n", false, false);
					CustomStoryLogs.RegisterCustomLogCollectable("Yorimor.CustomStoryLogs", num6, "71 Gordion", new Vector3(7.7f, -18.25f, -9.23f), new Vector3(-90f, 0f, 150f), vanillaStoryLogModel);
				}
				if (config.registerLogExpedition.Value)
				{
					int num7 = CustomStoryLogs.RegisterCustomLog("Yorimor.CustomStoryLogs", "Expedition - Aug 13, 2052", "Desmond... August 13, 2052? Where am I? Something is wrong, why does the ship read 83 years in the future. Oh god- Sigurd... I can't remember what happened, why am I here? Where are the others? This feels worse than what I thought.. What has the Company done, whatever this is... the energy here feels so much worse than whatever monster the Company Building contained... Dear God, if there even is one left- Help Me.\r\n\r\n\r\n", false, false);
					CustomStoryLogs.RegisterCustomLogCollectable("Yorimor.CustomStoryLogs", num7, "813 Penumbra", new Vector3(-146.9133f, 8.688f, 245.6493f), new Vector3(-90f, 0f, 90f), vanillaStoryLogModel);
				}
				if (config.registerLogAltar.Value)
				{
					int num8 = CustomStoryLogs.RegisterCustomLog("Yorimor.CustomStoryLogs", "Altar - Aug 15, 2052", "Desmond again. August 15, 2052. I am terribly confused, I stumbled upon what seems to be an altar of some kind...? This.. obelisk is whispering to me. I can remember some things, these things appeared every so often when landing on those dangerous eclipsed moons.. It told me instructions, I need to complete them, that is why I am here.. To save Sigurd and the others, to get the retribution I need against the Company, to complete my goal, my purpose... Thank you our master of the stars, thank you the one true God. The sacrifice must go on, the sacrifice must go on, the sacr1fice muSt go on, the saCCrF11ce muSt GGo 0n, tHeE sAcCri1FCe muSSt Go o-\r\n\r\n\r\n", false, false);
					CustomStoryLogs.RegisterCustomLogCollectable("Yorimor.CustomStoryLogs", num8, "813 Penumbra", new Vector3(167.401f, 52.231f, 73.68f), new Vector3(-13.787f, -73.282f, 26.628f), vanillaStoryLogModel);
				}
				if (config.registerLogAutomatons.Value)
				{
					int num9 = CustomStoryLogs.RegisterCustomLog("Yorimor.CustomStoryLogs", "Automatons - Jul 22, 2383", "Jul 22, 2383:\r\nAfter various reports of issues and strange signals being produced from this planet, our military decided it would be in our best interest to look around. Me and my crew are here to investigate these reports on behalf of the English Military. Notes will be filed below.\r\n\r\n- Report 68-a: Residue is found across the facility halls, likely an oil of some sorts.\r\n- Report 68-b: Whirring and mechanical sounds seem to be heard within the facility and outside of the facility.\r\n- Report 68-c: What seems to be a derelict robotic creature seems to be found standing in the hills.\r\n- Report 68-d: Soldier D-92870 is missing after being coerced by what seems to be a child in distress. It has been 30 minutes since we have heard from D-92870.\r\n- Report 68-e: The source of the distressed child has been uncovered, the previously mentioned derelict automaton seems to have been a guise to blend into the surrounding architecture. It seems as every automaton here is alive and hunting humans.\r\n- Report 68-f: Soldier-76209 is in distress, for the betterment of our task, the soldier has been executed.\r\n- Report 68-g: After consulting with the General, the consensus of retreating becomes more clear. Automatons are becoming active with what seems to be a kill-on-sight instruction.\r\n- Report 68-h: The rest of the crew and I have retreated, the General seems to be unhappy with our findings. More research will be conducted, the English Military has set up a base ground on 290 Summit to reconstruct these automatons if needed.\r\n\r\nThus concludes the July 22nd, 2383 report of 68-Artifice.\r\n\r\n\r\n", false, false);
					CustomStoryLogs.RegisterCustomLogCollectable("Yorimor.CustomStoryLogs", num9, "68 Artifice", new Vector3(2.715f, -3.7f, -90f), new Vector3(-90f, 0f, 41.5f), vanillaStoryLogModel);
				}
				if (config.registerLogReconstruction.Value)
				{
					int num10 = CustomStoryLogs.RegisterCustomLog("Yorimor.CustomStoryLogs", "Reconstruction - May 30, 2387", "Reconstruction \"A16-L31\": 67\r\n\n - One year after outpost was setup on 290 Summit.\r\n - Reconstruction went poorly as always.\r\n    - Rogue automatons destroyed much of the facility and warehouses, although deactivated, it seems to have send a distress signal towards the direction of the area registration of G-S.0. \r\n - Two new observations have been discovered.\r\n    - A16-L31 seems to hold a version of conscience in some regard, making tampering with its internal code near impossible. We still have hope.\r\n    - A16-L31 holds the technology and resources in various compartments to \"reproduce\". This artificial reproduction seems to allow these technological frankensteins to periodically upgrade themselves and colonize more of Thistle.\r\n\r\n\r\n", false, false);
					CustomStoryLogs.RegisterCustomLogCollectable("Yorimor.CustomStoryLogs", num10, "290 Summit", new Vector3(30.95f, 0.65f, 201.75f), new Vector3(-90f, -125f, 0f), vanillaStoryLogModel);
				}
				if (config.registerLogPenumbra.Value)
				{
					int num11 = CustomStoryLogs.RegisterCustomLog("Yorimor.CustomStoryLogs", "Penumbra - ??? ??, ????", "Discover 813 Penumbra, for you are now our Vessel. \r\n\r\nUncover what eluded even the Company's gaze.\r\n\r\nFind Us.\r\n\r\n", false, false);
					CustomStoryLogs.RegisterCustomLogCollectable("Yorimor.CustomStoryLogs", num11, "290 Summit", new Vector3(50.21431f, -15.21802f, -116.1859f), new Vector3(-76.925f, -44.524f, 43.493f), vanillaStoryLogModel);
				}
				if (config.registerLogCorruption.Value)
				{
					int num12 = CustomStoryLogs.RegisterCustomLog("Yorimor.CustomStoryLogs", "Corruption - ??? ??, ????", "This place reeks of corruption. \r\n\r\nHelp our cause\r\n\r\nHelp us remove it, destroy Embrion in [DATA CORRUPTED]'s name, in our guidance\r\n\r\n\r\n", false, false);
					CustomStoryLogs.RegisterCustomLogCollectable("Yorimor.CustomStoryLogs", num12, "5 Embrion", new Vector3(-192f, 6.365f, -5.8f), new Vector3(-90f, 0f, 195f), vanillaStoryLogModel);
				}
			}
		}
	}
	public static class Assets
	{
		public static AssetBundle MyCustomAssets;

		public static void PopulateAssets()
		{
			string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			MyCustomAssets = AssetBundle.LoadFromFile(Path.Combine(directoryName, "roselibassets"));
			if ((Object)(object)MyCustomAssets == (Object)null)
			{
				Plugin.Logger.LogError((object)"Failed to load assets from roselibassets.");
			}
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "RoseLib";

		public const string PLUGIN_NAME = "RoseLib";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}
namespace RoseLib.src
{
	[Serializable]
	internal class RoseLibConfig
	{
		public readonly ConfigEntry<bool> shouldRegisterLogs;

		public readonly ConfigEntry<bool> registerLogDumbBugs;

		public readonly ConfigEntry<bool> registerLogFlowerman;

		public readonly ConfigEntry<bool> registerLogDiscovery;

		public readonly ConfigEntry<bool> registerLogLyra;

		public readonly ConfigEntry<bool> registerLogMonster;

		public readonly ConfigEntry<bool> registerLogDrill;

		public readonly ConfigEntry<bool> registerLogExpedition;

		public readonly ConfigEntry<bool> registerLogAltar;

		public readonly ConfigEntry<bool> registerLogAutomatons;

		public readonly ConfigEntry<bool> registerLogReconstruction;

		public readonly ConfigEntry<bool> registerLogPenumbra;

		public readonly ConfigEntry<bool> registerLogCorruption;

		public RoseLibConfig(ConfigFile cfg)
		{
			cfg.SaveOnConfigSet = false;
			shouldRegisterLogs = cfg.Bind<bool>("Logs", "shouldRegisterLogs", true, "If Logs should be registered on Awake()");
			registerLogDumbBugs = cfg.Bind<bool>("Logs.Individual", "registerLogDumbBugs", true, "If the log: 'registerLogDumbBugs' should be registered. Won't register if shouldRegisterLogs is FALSE.");
			registerLogFlowerman = cfg.Bind<bool>("Logs.Individual", "registerLogFlowerman", true, "If the log: 'registerLogFlowerman' should be registered. Won't register if shouldRegisterLogs is FALSE.");
			registerLogDiscovery = cfg.Bind<bool>("Logs.Individual", "registerLogDiscovery", true, "If the log: 'registerLogDiscovery' should be registered. Won't register if shouldRegisterLogs is FALSE.");
			registerLogLyra = cfg.Bind<bool>("Logs.Individual", "registerLogLyra", true, "If the log: 'registerLogLyra' should be registered. Won't register if shouldRegisterLogs is FALSE.");
			registerLogMonster = cfg.Bind<bool>("Logs.Individual", "registerLogMonster", true, "If the log: 'registerLogMonster' should be registered. Won't register if shouldRegisterLogs is FALSE.");
			registerLogDrill = cfg.Bind<bool>("Logs.Individual", "registerLogDrill", true, "If the log: 'registerLogDrill' should be registered. Won't register if shouldRegisterLogs is FALSE.");
			registerLogExpedition = cfg.Bind<bool>("Logs.Individual", "registerLogExpedition", true, "If the log: 'registerLogExpedition' should be registered. Won't register if shouldRegisterLogs is FALSE.");
			registerLogAltar = cfg.Bind<bool>("Logs.Individual", "registerLogAltar", true, "If the log: 'registerLogAltar' should be registered. Won't register if shouldRegisterLogs is FALSE.");
			registerLogAutomatons = cfg.Bind<bool>("Logs.Individual", "registerLogAutomatons", true, "If the log: 'registerLogAutomatons' should be registered. Won't register if shouldRegisterLogs is FALSE.");
			registerLogReconstruction = cfg.Bind<bool>("Logs.Individual", "registerLogReconstruction", true, "If the log: 'registerLogRecontruction' should be registered. Won't register if shouldRegisterLogs is FALSE.");
			registerLogPenumbra = cfg.Bind<bool>("Logs.Individual", "registerLogPenumbra", true, "If the log: 'registerLogPenumbra' should be registered. Won't register if shouldRegisterLogs is FALSE.");
			registerLogCorruption = cfg.Bind<bool>("Logs.Individual", "registerLogCorruption", true, "If the log: 'registerLogCorruption' should be registered. Won't register if shouldRegisterLogs is FALSE.");
			ClearOrphanedEntries(cfg);
			cfg.Save();
			cfg.SaveOnConfigSet = true;
			static void ClearOrphanedEntries(ConfigFile cfg)
			{
				PropertyInfo propertyInfo = AccessTools.Property(typeof(ConfigFile), "OrphanedEntries");
				Dictionary<ConfigDefinition, string> dictionary = (Dictionary<ConfigDefinition, string>)propertyInfo.GetValue(cfg);
				dictionary.Clear();
			}
		}
	}
}