Decompiled source of StreamerCam v2.0.0

Mods/StreamerCam.dll

Decompiled 13 hours ago
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using Il2CppLiv.Lck;
using Il2CppRUMBLE.Managers;
using Il2CppRUMBLE.Recording.LCK;
using Il2CppRUMBLE.Utilities;
using MelonLoader;
using RockCamDetachedPreviewManager;
using Rock_Cam_Essentials;
using RumbleModUI;
using StreamerCam;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: MelonInfo(typeof(Main), "StreamerCam", "2.0.0", "Deterraleon", null)]
[assembly: MelonGame("Buckethead Entertainment", "RUMBLE")]
[assembly: MelonColor(255, 123, 0, 123)]
[assembly: MelonAuthorColor(255, 255, 119, 255)]
[assembly: VerifyLoaderVersion(0, 6, 6, true)]
[assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]
[assembly: AssemblyCompany("StreamerCam")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("StreamerCam")]
[assembly: AssemblyTitle("StreamerCam")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace StreamerCam;

public static class BuildInfo
{
	public const string ModName = "StreamerCam";

	public const string ModVersion = "2.0.0";

	public const string Author = "Deterraleon";
}
public class Main : MelonMod
{
	public class Preview : DetachedPreview
	{
		private GameObject UI;

		public Preview()
		{
			base.name = "STREAMER CAM";
			base.preview = null;
			base.Initiate = initiate;
			base.Start = start;
			base.End = end;
		}

		public bool initiate(Rock_Cam Camera)
		{
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Expected O, but got Unknown
			GameObject gameObject = ((Component)((Component)Singleton<PlayerManager>.instance.localPlayer.Controller).transform.FindChild("UI").FindChild("LocalUI")).gameObject;
			UI = Object.Instantiate<GameObject>(((Component)gameObject.transform.FindChild("ScreenSpaceUI")).gameObject, gameObject.transform);
			base.preview = new Preview();
			base.preview.AttachingMonitor = (LckMonitor)(object)UI.GetComponent<LckMonitorWithRawImage>();
			base.preview.Mode = (PreviewMode)5;
			base.preview.LocalizedKey = "RockCam.DetachedPreview.StreamerCam";
			((Component)UI.transform.FindChild("BG")).gameObject.SetActive(false);
			UI.active = false;
			monitor = ((Component)UI.transform.FindChild("ScreenSpaceMonitor")).gameObject.GetComponent<RectTransform>();
			Save();
			MelonLogger.Msg("Camera Adjusted");
			return true;
		}

		public bool start(Rock_Cam Camera)
		{
			((MelonBase)Melon<Main>.Instance).LoggerInstance.Msg("Started streamer cam");
			UI.active = true;
			return true;
		}

		public bool end(Rock_Cam Camera)
		{
			UI.active = false;
			return true;
		}
	}

	private Mod StreamerCam = new Mod();

	private static List<ModSetting> settings = new List<ModSetting>();

	private static bool enabled = true;

	private static GameObject UIs;

	private static GameObject monitorObject;

	private static RectTransform monitor;

	private static Vector2 initScale;

	private static Vector2 initPosition;

	public override void OnLateInitializeMelon()
	{
		UI.instance.UI_Initialized += UIInit;
		Melon<Main>.Instance.AddPreview((DetachedPreview)(object)new Preview());
	}

	private void UIInit()
	{
		//IL_004b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0055: Expected O, but got Unknown
		//IL_0075: Unknown result type (might be due to invalid IL or missing references)
		//IL_007f: Expected O, but got Unknown
		//IL_009f: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a9: Expected O, but got Unknown
		//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d3: Expected O, but got Unknown
		//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fd: Expected O, but got Unknown
		StreamerCam.ModName = "StreamerCam";
		StreamerCam.ModVersion = "2.0.0";
		StreamerCam.SetFolder("StreamerCam");
		settings.Add((ModSetting)(object)StreamerCam.AddToList("Enabled", false, 0, "Toggles Mod On/Off", new Tags()));
		settings.Add((ModSetting)(object)StreamerCam.AddToList("Offset x", -320f, "", new Tags()));
		settings.Add((ModSetting)(object)StreamerCam.AddToList("Offset y", -115f, "", new Tags()));
		settings.Add((ModSetting)(object)StreamerCam.AddToList("Scale x", 0.125f, "", new Tags()));
		settings.Add((ModSetting)(object)StreamerCam.AddToList("Scale y", 0.125f, "", new Tags()));
		StreamerCam.GetFromFile();
		StreamerCam.ModSaved += Save;
		UI.instance.AddMod(StreamerCam);
	}

	public static void Save()
	{
		//IL_005c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0061: Unknown result type (might be due to invalid IL or missing references)
		//IL_009b: Unknown result type (might be due to invalid IL or missing references)
		enabled = (bool)settings[0].SavedValue;
		if (enabled)
		{
			((Component)monitor).transform.localScale = Vector2.op_Implicit(new Vector2((float)settings[3].SavedValue, (float)settings[4].SavedValue));
			monitor.anchoredPosition = new Vector2((float)settings[1].SavedValue, (float)settings[2].SavedValue);
		}
	}
}