Decompiled source of MultiplayerMapsInSinglePlayer v2.3.0

Mods/MultiplayerMapsInSinglePlayer.dll

Decompiled 2 weeks ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using Il2Cpp;
using Il2CppRUMBLE.Audio;
using Il2CppRUMBLE.Interactions.InteractionBase;
using Il2CppRUMBLE.Managers;
using Il2CppRUMBLE.Networking.MatchFlow;
using Il2CppRUMBLE.Players.Subsystems;
using Il2CppRUMBLE.Utilities;
using Il2CppTMPro;
using MelonLoader;
using MultiplayerMapsInSinglePlayer;
using RumbleModdingAPI.RMAPI;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.SceneManagement;

[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), "MultiplayerMapsInSinglePlayer", "2.3.0", "UlvakSkillz", null)]
[assembly: MelonGame("Buckethead Entertainment", "RUMBLE")]
[assembly: MelonColor(255, 195, 0, 255)]
[assembly: MelonAuthorColor(255, 195, 0, 255)]
[assembly: VerifyLoaderVersion(0, 6, 2, true)]
[assembly: AssemblyTitle("MultiplayerMapsInSinglePlayer")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("MultiplayerMapsInSinglePlayer")]
[assembly: AssemblyCopyright("Copyright ©  2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("a1ecbc05-cfec-4a4b-ba0b-5bf9bf4f1186")]
[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 MultiplayerMapsInSinglePlayer;

public class main : MelonMod
{
	private bool DDOLInit = false;

	private GameObject ddolButton;

	private GameObject gymButtonMap0;

	private GameObject gymButtonMap1;

	private GameObject returntoGymButton;

	private GameObject textPanel;

	private GameObject textPanelText;

	private GameObject gymTextPanelTitle;

	private GameObject gymTextPanelTitleText;

	private GameObject gymTextPanelRing;

	private GameObject gymTextPanelRingText;

	private GameObject gymTextPanelPit;

	private GameObject gymTextPanelPitText;

	private GameObject returnToGymPanel;

	private GameObject returnToGymPanelText;

	private GameObject modParent;

	private SceneManager sceneManager;

	public override void OnLateInitializeMelon()
	{
		Actions.onMapInitialized += MapLoaded;
	}

	private void MapLoaded(string scene)
	{
		//IL_0140: Unknown result type (might be due to invalid IL or missing references)
		//IL_0165: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0316: Unknown result type (might be due to invalid IL or missing references)
		//IL_033b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0360: Unknown result type (might be due to invalid IL or missing references)
		//IL_0385: Unknown result type (might be due to invalid IL or missing references)
		//IL_03aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_03cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_03f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0419: Unknown result type (might be due to invalid IL or missing references)
		//IL_043e: 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_0488: Unknown result type (might be due to invalid IL or missing references)
		//IL_04fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0507: Expected O, but got Unknown
		//IL_05be: Unknown result type (might be due to invalid IL or missing references)
		//IL_05fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0623: Unknown result type (might be due to invalid IL or missing references)
		//IL_069f: Unknown result type (might be due to invalid IL or missing references)
		//IL_06a6: Expected O, but got Unknown
		//IL_0707: Unknown result type (might be due to invalid IL or missing references)
		//IL_072c: Unknown result type (might be due to invalid IL or missing references)
		//IL_07eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0810: Unknown result type (might be due to invalid IL or missing references)
		//IL_0835: Unknown result type (might be due to invalid IL or missing references)
		//IL_08a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a6e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a75: Expected O, but got Unknown
		//IL_0ade: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b03: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bc2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0be7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c0c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c3f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c46: Expected O, but got Unknown
		//IL_0c87: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ca8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cc9: Unknown result type (might be due to invalid IL or missing references)
		//IL_093c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0969: Unknown result type (might be due to invalid IL or missing references)
		//IL_0970: Expected O, but got Unknown
		//IL_09b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_09d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_09f3: Unknown result type (might be due to invalid IL or missing references)
		switch (scene)
		{
		case "Gym":
			if (!DDOLInit)
			{
				sceneManager = Singleton<SceneManager>.instance;
				ddolButton = Create.NewButton();
				ddolButton.active = false;
				Object.DontDestroyOnLoad((Object)(object)ddolButton);
				textPanel = Object.Instantiate<GameObject>(((Component)MatchmakingSettings.GetGameObject().transform.GetChild(1)).gameObject);
				textPanelText = Object.Instantiate<GameObject>(((Component)MatchmakingSettings.GetGameObject().transform.GetChild(3)).gameObject);
				textPanelText.transform.parent = textPanel.transform;
				((Object)textPanel).name = "TextPanel";
				textPanel.active = false;
				Object.DontDestroyOnLoad((Object)(object)textPanel);
				DDOLInit = true;
			}
			gymButtonMap0 = Object.Instantiate<GameObject>(ddolButton);
			((Object)gymButtonMap0).name = "Teleport To Ring Button";
			gymButtonMap1 = Object.Instantiate<GameObject>(ddolButton);
			((Object)gymButtonMap1).name = "Teleport To Pit Button";
			gymButtonMap0.transform.position = new Vector3(5.2317f, 1.4f, 10.2582f);
			gymButtonMap0.transform.rotation = Quaternion.Euler(1.0437f, 31.2109f, 335.5875f);
			((Component)gymButtonMap0.transform.GetChild(0)).gameObject.GetComponent<InteractionButton>().onPressed.AddListener(UnityAction.op_Implicit((Action)delegate
			{
				LoadMap0();
			}));
			gymButtonMap1.transform.position = new Vector3(5.4477f, 1.4f, 10.6f);
			gymButtonMap1.transform.rotation = Quaternion.Euler(1.0437f, 31.2109f, 335.5875f);
			((Component)gymButtonMap1.transform.GetChild(0)).gameObject.GetComponent<InteractionButton>().onPressed.AddListener(UnityAction.op_Implicit((Action)delegate
			{
				LoadMap1();
			}));
			gymButtonMap0.active = true;
			gymButtonMap1.active = true;
			gymTextPanelTitle = Object.Instantiate<GameObject>(textPanel);
			gymTextPanelRing = Object.Instantiate<GameObject>(textPanel);
			gymTextPanelPit = Object.Instantiate<GameObject>(textPanel);
			((Object)gymTextPanelTitle).name = "Teleport Title";
			((Object)gymTextPanelRing).name = "Ring Plate";
			((Object)gymTextPanelPit).name = "Pit Plate";
			gymTextPanelTitleText = ((Component)gymTextPanelTitle.transform.GetChild(0)).gameObject;
			gymTextPanelRingText = ((Component)gymTextPanelRing.transform.GetChild(0)).gameObject;
			gymTextPanelPitText = ((Component)gymTextPanelPit.transform.GetChild(0)).gameObject;
			gymTextPanelTitle.transform.position = new Vector3(5.1022f, 1.4485f, 10.2802f);
			gymTextPanelTitle.transform.rotation = Quaternion.Euler(344.7058f, 302.3016f, 270f);
			gymTextPanelTitle.transform.localScale = new Vector3(0.3548f, 0.3288f, 0.2806f);
			gymTextPanelRing.transform.position = new Vector3(5.2791f, 1.3159f, 10.1191f);
			gymTextPanelRing.transform.rotation = Quaternion.Euler(320.3004f, 302.3016f, 270f);
			gymTextPanelRing.transform.localScale = new Vector3(0.1548f, 0.1288f, 0.2806f);
			gymTextPanelRingText.transform.localScale = new Vector3(7.5414f, 3.6636f, 6.462f);
			gymTextPanelPit.transform.position = new Vector3(5.504f, 1.3159f, 10.4646f);
			gymTextPanelPit.transform.rotation = Quaternion.Euler(320.3004f, 302.3016f, 270f);
			gymTextPanelPit.transform.localScale = new Vector3(0.1548f, 0.1288f, 0.2806f);
			gymTextPanelPitText.transform.localScale = new Vector3(7.5414f, 3.6636f, 6.462f);
			gymTextPanelTitle.active = true;
			gymTextPanelRing.active = true;
			gymTextPanelPit.active = true;
			((TMP_Text)gymTextPanelTitleText.GetComponent<TextMeshPro>()).text = "Teleport To Maps:";
			((TMP_Text)gymTextPanelRingText.GetComponent<TextMeshPro>()).text = "Ring";
			((TMP_Text)gymTextPanelPitText.GetComponent<TextMeshPro>()).text = "Pit";
			modParent = new GameObject();
			((Object)modParent).name = "MultiplayerMapsInSinglePlayer";
			gymButtonMap0.transform.parent = modParent.transform;
			gymButtonMap1.transform.parent = modParent.transform;
			gymTextPanelTitle.transform.parent = modParent.transform;
			gymTextPanelRing.transform.parent = modParent.transform;
			gymTextPanelPit.transform.parent = modParent.transform;
			gymTextPanelTitleText.transform.localScale = new Vector3(4.4f, 4f, 4f);
			modParent.transform.parent = MatchConsole.GetGameObject().transform;
			modParent.transform.localPosition = new Vector3(-11.1941f, -0.3117f, -2.9644f);
			modParent.transform.localRotation = Quaternion.Euler(0f, 56.4394f, 359.9398f);
			break;
		case "Map0":
			if (Singleton<PlayerManager>.instance.AllPlayers.Count == 1)
			{
				GameObject gameObject = CollissionGutter.GetGameObject();
				gameObject.layer = 9;
				Object.Destroy((Object)(object)gameObject.GetComponent<KillPlayerOnCollision>());
				Pedestals.GetGameObject().active = false;
				MatchHandler instance2 = Singleton<MatchHandler>.instance;
				instance2.CurrentMatchPhase = (MatchPhase)2;
				GameObject val3 = new GameObject();
				((Object)val3).name = "MultiplayerMapsInMatchmaking";
				returntoGymButton = Object.Instantiate<GameObject>(ddolButton);
				returntoGymButton.transform.parent = val3.transform;
				((Object)returntoGymButton).name = "Return To Gym Button";
				returntoGymButton.transform.position = new Vector3(1.9859f, -4.0983f, 18.9987f);
				returntoGymButton.transform.rotation = Quaternion.Euler(357.8411f, 272.1151f, 76.6469f);
				((Component)returntoGymButton.transform.GetChild(0)).gameObject.GetComponent<InteractionButton>().onPressed.AddListener(UnityAction.op_Implicit((Action)delegate
				{
					LoadGym();
				}));
				returntoGymButton.active = true;
				returnToGymPanel = Object.Instantiate<GameObject>(textPanel);
				returnToGymPanel.transform.parent = val3.transform;
				((Object)returnToGymPanel).name = "Return To Gym Plate";
				returnToGymPanelText = ((Component)returnToGymPanel.transform.GetChild(0)).gameObject;
				returnToGymPanel.transform.position = new Vector3(1.7225f, -3.9242f, 19.0338f);
				returnToGymPanel.transform.rotation = Quaternion.Euler(270f, 272.8807f, 0f);
				returnToGymPanel.transform.localScale = new Vector3(0.3548f, 0.3288f, 0.2806f);
				returnToGymPanel.active = true;
				((TMP_Text)returnToGymPanelText.GetComponent<TextMeshPro>()).text = "Return to Gym";
				GameObject val4 = Object.Instantiate<GameObject>(returntoGymButton);
				((Object)val4).name = "Respawn Player Button";
				val4.transform.parent = val3.transform;
				val4.transform.position = new Vector3(2.5859f, -4.0983f, 18.9787f);
				((Component)val4.transform.GetChild(0)).gameObject.GetComponent<InteractionButton>().onPressed.AddListener(UnityAction.op_Implicit((Action)delegate
				{
					((Component)Singleton<PlayerManager>.instance.localPlayer.Controller).GetComponent<PlayerResetSystem>().ResetPlayerController();
				}));
				GameObject val5 = Object.Instantiate<GameObject>(returnToGymPanel);
				((Object)val5).name = "Respawn Player Panel";
				val5.transform.parent = val3.transform;
				val5.transform.position = new Vector3(2.3459f, -3.9242f, 19.0187f);
				((TMP_Text)((Component)val5.transform.GetChild(0)).GetComponent<TextMeshPro>()).text = "Respawn";
				GameObject val6 = new GameObject("QuickSwapper");
				val6.transform.parent = val3.transform;
				ShiftstoneQuickswapper.GetGameObject().transform.parent = val6.transform;
				val6.transform.position = new Vector3(1.2436f, -3.7218f, 16.8382f);
				val3.transform.position = new Vector3(25.7f, -5.8f, -18.64f);
				val3.transform.rotation = Quaternion.Euler(343.2917f, 305.4231f, 0f);
				instance2.FadeIn();
			}
			break;
		case "Map1":
			if (Singleton<PlayerManager>.instance.AllPlayers.Count == 1)
			{
				SceneProcessors.GetGameObject().GetComponent<SceneProcessorBatch>().ExecuteBatch();
				Pedestals.GetGameObject().active = false;
				MatchHandler instance = Singleton<MatchHandler>.instance;
				instance.CurrentMatchPhase = (MatchPhase)2;
				GameObject val = new GameObject();
				((Object)val).name = "MultiplayerMapsInMatchmaking";
				instance.FadeIn();
				returntoGymButton = Object.Instantiate<GameObject>(ddolButton);
				((Object)returntoGymButton).name = "Return To Gym Button";
				returntoGymButton.transform.parent = val.transform;
				returntoGymButton.transform.position = new Vector3(0f, 0.9909f, 10.719f);
				returntoGymButton.transform.rotation = Quaternion.Euler(358.2508f, 93.5928f, 274.9258f);
				((Component)returntoGymButton.transform.GetChild(0)).gameObject.GetComponent<InteractionButton>().onPressed.AddListener(UnityAction.op_Implicit((Action)delegate
				{
					LoadGym();
				}));
				returntoGymButton.active = true;
				returnToGymPanel = Object.Instantiate<GameObject>(textPanel);
				((Object)returnToGymPanel).name = "Return To Gym Plate";
				returnToGymPanel.transform.parent = val.transform;
				returnToGymPanelText = ((Component)returnToGymPanel.transform.GetChild(0)).gameObject;
				returnToGymPanel.transform.position = new Vector3(-0.257f, 1.221f, 10.7388f);
				returnToGymPanel.transform.rotation = Quaternion.Euler(270f, 270f, 0f);
				returnToGymPanel.transform.localScale = new Vector3(0.3548f, 0.3288f, 0.2806f);
				returnToGymPanel.active = true;
				((TMP_Text)returnToGymPanelText.GetComponent<TextMeshPro>()).text = "Return to Gym";
				GameObject val2 = new GameObject("QuickSwapper");
				val2.transform.parent = val.transform;
				ShiftstoneQuickswapper.GetGameObject().transform.parent = val2.transform;
				val2.transform.position = new Vector3(-0.6655f, 1.4164f, 8.5891f);
				val.transform.position = new Vector3(-4.4457f, -1.99f, 1.7281f);
				val.transform.rotation = Quaternion.Euler(350f, 240.6918f, 0f);
			}
			break;
		}
	}

	private void LoadGym()
	{
		DestroyStructures();
		sceneManager.LoadSceneAsync(1, false, false, 2f, (LoadSceneMode)0, (AudioCall)null);
	}

	private void LoadMap0()
	{
		DestroyStructures();
		sceneManager.LoadSceneAsync(3, false, false, 2f, (LoadSceneMode)0, (AudioCall)null);
	}

	private void LoadMap1()
	{
		DestroyStructures();
		sceneManager.LoadSceneAsync(4, false, false, 2f, (LoadSceneMode)0, (AudioCall)null);
	}

	public void DestroyStructures()
	{
		Singleton<PoolManager>.instance.ResetPools((AssetType)3);
	}
}