Decompiled source of 2 Story RV Cruiser MelanieMelicious v0.2.3

MelanieRV.dll

Decompiled 3 weeks ago
using 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.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using Microsoft.CodeAnalysis;
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("2 sToRy sHiP")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("this one")]
[assembly: AssemblyCopyright("Copyright ©  2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("3b42a851-dbf6-428d-a7f2-0af1d6039c22")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
[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;
		}
	}
}
internal class HarmonyPatches
{
	[HarmonyPostfix]
	[HarmonyPatch(typeof(VehicleController), "Awake")]
	[HarmonyAfter(new string[] { "mborsh.CruiserTerminal", "4902.Cruiser_Additions" })]
	private static void AwakePostPatch(VehicleController __instance)
	{
		Setup.RVSetup(__instance);
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(VehicleController), "Start")]
	[HarmonyAfter(new string[] { "mborsh.CruiserTerminal", "4902.Cruiser_Additions" })]
	private static void StartPostPatch(VehicleController __instance)
	{
		Setup.RVSetup(__instance);
	}
}
internal class Setup : MonoBehaviour
{
	private static Transform rv;

	internal static void RVSetup(VehicleController RVControl)
	{
		//IL_1089: Unknown result type (might be due to invalid IL or missing references)
		//IL_10b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_012d: Unknown result type (might be due to invalid IL or missing references)
		//IL_014a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0167: Unknown result type (might be due to invalid IL or missing references)
		//IL_0184: Unknown result type (might be due to invalid IL or missing references)
		//IL_0376: Unknown result type (might be due to invalid IL or missing references)
		//IL_03a6: 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_03f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_042a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0213: Unknown result type (might be due to invalid IL or missing references)
		//IL_0757: Unknown result type (might be due to invalid IL or missing references)
		//IL_0469: Unknown result type (might be due to invalid IL or missing references)
		//IL_0492: Unknown result type (might be due to invalid IL or missing references)
		//IL_04bb: Unknown result type (might be due to invalid IL or missing references)
		//IL_04e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_050d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0536: Unknown result type (might be due to invalid IL or missing references)
		//IL_055f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0588: Unknown result type (might be due to invalid IL or missing references)
		//IL_05b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_05da: Unknown result type (might be due to invalid IL or missing references)
		//IL_0603: Unknown result type (might be due to invalid IL or missing references)
		//IL_062c: Unknown result type (might be due to invalid IL or missing references)
		//IL_066d: Unknown result type (might be due to invalid IL or missing references)
		//IL_06c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0709: Unknown result type (might be due to invalid IL or missing references)
		//IL_0245: Unknown result type (might be due to invalid IL or missing references)
		//IL_0254: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a2: 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_02f4: 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_034f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0870: Unknown result type (might be due to invalid IL or missing references)
		//IL_088d: Unknown result type (might be due to invalid IL or missing references)
		//IL_08aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_08c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_08e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0901: Unknown result type (might be due to invalid IL or missing references)
		//IL_091e: Unknown result type (might be due to invalid IL or missing references)
		//IL_093b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0958: Unknown result type (might be due to invalid IL or missing references)
		//IL_0976: Unknown result type (might be due to invalid IL or missing references)
		//IL_0993: Unknown result type (might be due to invalid IL or missing references)
		//IL_09a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_09b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0beb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c18: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c41: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c6a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c93: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cbc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ce5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d0e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d37: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d60: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d91: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dba: Unknown result type (might be due to invalid IL or missing references)
		//IL_0de3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e0c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e35: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e5e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e87: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eb0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ed9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f02: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f2c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f56: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f80: Unknown result type (might be due to invalid IL or missing references)
		//IL_0faa: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fd4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ffe: Unknown result type (might be due to invalid IL or missing references)
		//IL_1030: Unknown result type (might be due to invalid IL or missing references)
		//IL_105e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0816: Unknown result type (might be due to invalid IL or missing references)
		//IL_0825: Unknown result type (might be due to invalid IL or missing references)
		rv = ((Component)RVControl).transform;
		if (!Object.op_Implicit((Object)(object)rv.Find("Meshes/MainBody/MelanieRVFloor0(Clone)")))
		{
			Material[] array = (Material[])(object)new Material[6]
			{
				Plugin.bundle.LoadAsset<Material>("Assets/MelanieRV/Material/ClosetFrame0.mat"),
				((Renderer)((Component)rv.Find("Meshes/MainBody")).GetComponent<MeshRenderer>()).materials[1],
				((Renderer)GameObject.Find("Meshes/MainBody").GetComponent<MeshRenderer>()).materials[2],
				Plugin.bundle.LoadAsset<Material>("Assets/MelanieRV/Material/SteelGray.mat"),
				Plugin.bundle.LoadAsset<Material>("Assets/MelanieRV/Material/BlackRubber.mat"),
				((Renderer)GameObject.Find("Environment/HangarShip/CatwalkShip").GetComponent<MeshRenderer>()).materials[0]
			};
			BoxCollider[] components = ((Component)rv).GetComponents<BoxCollider>();
			BoxCollider[] components2 = ((Component)rv.Find("Triggers/RightShelfPlacementCollider")).GetComponents<BoxCollider>();
			GameObject val = Object.Instantiate<GameObject>(Plugin.bundle.LoadAsset<GameObject>("Assets/MelanieRV/Prefab/MelanieRVFloor0.prefab"), rv.Find("Meshes/MainBody"));
			((Component)rv).GetComponent<Rigidbody>().mass = RVConfig.mass.Value;
			Color color = default(Color);
			ColorUtility.TryParseHtmlString(RVConfig.colorExt.Value, ref color);
			array[0].color = color;
			ColorUtility.TryParseHtmlString(RVConfig.colorInt.Value, ref color);
			array[3].color = color;
			ColorUtility.TryParseHtmlString(RVConfig.colorBorder.Value, ref color);
			array[4].color = color;
			ColorUtility.TryParseHtmlString(RVConfig.colorGlass.Value, ref color);
			array[2].color = color;
			if (RVConfig.floor2.Value)
			{
				GameObject val2 = Object.Instantiate<GameObject>(Plugin.bundle.LoadAsset<GameObject>("Assets/MelanieRV/Prefab/MelanieRVFloor1.prefab"), rv.Find("Meshes/MainBody/MelanieRVFloor0(Clone)"));
				BoxCollider[] components3 = ((Component)rv.Find("Meshes/MainBody/MelanieRVFloor0(Clone)/MelanieRVFloor1(Clone)/Clip")).GetComponents<BoxCollider>();
				((Renderer)val2.GetComponent<MeshRenderer>()).materials = (Material[])(object)new Material[3]
				{
					array[0],
					array[3],
					array[2]
				};
				components[9].center = new Vector3(0f, 5.6f, -1.4f);
				BoxCollider[] array2 = components3;
				foreach (BoxCollider val3 in array2)
				{
					BoxCollider val4 = ((Component)rv).gameObject.AddComponent<BoxCollider>();
					val4.center = val3.center;
					val4.size = val3.size;
				}
				Object.Destroy((Object)(object)((Component)components3[0]).gameObject);
				Move(new string[2] { "Triggers/BackPhysicsRegion", "Triggers/ItemDropRegion" }, new Vector3(0f, 2.6f, -2.8f));
				Move(new string[1] { "VehicleBounds" }, new Vector3(0f, 2.6f, -2.5f));
				Move(new string[1] { "Meshes/MainBody/MelanieRVFloor0(Clone)/Roof0" }, new Vector3(0f, 0f, 4f));
				Size(new string[1] { "Triggers/BackPhysicsRegion" }, new Vector3(3.1f, 6f, 5.1f));
				Size(new string[2] { "Triggers/ItemDropRegion", "VehicleBounds" }, new Vector3(3.3f, 8f, 7f));
			}
			else
			{
				components[9].center = new Vector3(0f, 2.3f, -1.4f);
				Move(new string[2] { "Triggers/BackPhysicsRegion", "VehicleBounds" }, new Vector3(0f, 0.6f, -2.8f));
				Move(new string[1] { "Triggers/ItemDropRegion" }, new Vector3(0f, 1f, -2.5f));
				Size(new string[1] { "Triggers/BackPhysicsRegion" }, new Vector3(3.1f, 2.1f, 5.1f));
				Size(new string[2] { "Triggers/ItemDropRegion", "VehicleBounds" }, new Vector3(3.3f, 4f, 7f));
			}
			if (RVConfig.bigTire.Value)
			{
				Move(new string[1] { "Colliders/BackWheel" }, new Vector3(0f, -2f, -3f));
				Move(new string[1] { "Colliders/CenterWheel" }, new Vector3(0.6f, -2f, -0.1f));
				Move(new string[1] { "Colliders/CenterWheel (1)" }, new Vector3(-0.6f, -2f, -1.5f));
				Move(new string[1] { "Colliders/FrontWheel" }, new Vector3(0.8f, -2f, 2.8f));
				Move(new string[1] { "Colliders/FrontWheel (1)" }, new Vector3(0.1f, -2f, 4.6f));
				Move(new string[1] { "Colliders/FrontWheel (2)" }, new Vector3(-0.6f, -2f, 1.6f));
				Move(new string[1] { "Colliders/BackWheelColliders/BackLeftTireCollider" }, new Vector3(-3f, -0.6f, 0.5f));
				Move(new string[1] { "Colliders/BackWheelColliders/BackRightTireCollider" }, new Vector3(3f, -0.6f, 0.5f));
				Move(new string[1] { "Colliders/FrontWheelColliders/FrontLeftTireCollider" }, new Vector3(-3f, -0.6f, -0.6f));
				Move(new string[1] { "Colliders/FrontWheelColliders/FrontRightTireCollider" }, new Vector3(3f, -0.6f, -0.6f));
				Move(new string[1] { "Meshes/Wheels/FrontWheelAxisContainer" }, new Vector3(0f, 1f, 3.51f));
				Move(new string[1] { "GiantCylinderMagnet/MagnetPoint" }, new Vector3(0f, 0f, -3f), dir: false);
				Size(new string[4] { "FrontWheelAxisContainer/FrontLeftTire", "FrontWheelAxisContainer/FrontRightTire", "BackWheelAxisContainer/BackLeftTire", "BackWheelAxisContainer/BackRightTire" }, new Vector3(3f, 2f, 2f), "Meshes/Wheels/");
				Size(new string[6] { "BackWheel", "CenterWheel", "CenterWheel (1)", "FrontWheel", "FrontWheel (1)", "FrontWheel (2)" }, new Vector3(1f, 1.5f, 1f), "Colliders/");
				Size(new string[4] { "BackWheelColliders/BackLeftTireCollider", "BackWheelColliders/BackRightTireCollider", "FrontWheelColliders/FrontLeftTireCollider", "FrontWheelColliders/FrontRightTireCollider" }, new Vector3(1f, 1.8f, 1f), "Colliders/");
			}
			else
			{
				Object.Destroy((Object)(object)((Component)val.transform.Find("Detail1")).gameObject);
				Move(new string[1] { "GiantCylinderMagnet/MagnetPoint" }, new Vector3(0f, 0f, -2.3f), dir: false);
			}
			if (!RVConfig.lightCabin.Value)
			{
				try
				{
					((Component)rv.Find("Meshes/FrontCabinLight/Spot Light (6)")).gameObject.SetActive(false);
				}
				catch
				{
				}
			}
			if (!RVConfig.trim.Value)
			{
				Object.Destroy((Object)(object)((Component)rv.Find("Meshes/MainBody/MelanieRVFloor0(Clone)/Detail2")).gameObject);
			}
			if (RVConfig.step0.Value)
			{
				BoxCollider[] components4 = ((Component)val.transform.Find("Clip")).GetComponents<BoxCollider>();
				foreach (BoxCollider val5 in components4)
				{
					BoxCollider val6 = ((Component)rv).gameObject.AddComponent<BoxCollider>();
					val6.center = val5.center;
					val6.size = val5.size;
				}
			}
			else
			{
				Object.Destroy((Object)(object)((Component)val.transform.Find("Step0")).gameObject);
			}
			components[2].center = new Vector3(0f, 1.3f, 0.8f);
			components[4].center = new Vector3(1.9f, 0.6f, -2.5f);
			components[5].center = new Vector3(-1.9f, 0.6f, -2.5f);
			components[6].center = new Vector3(0f, -0.9f, -2.6f);
			components2[1].center = new Vector3(1.1f, 1.16f, -2.4f);
			components[2].size = new Vector3(4f, 0.1f, 0.5f);
			components[4].size = new Vector3(0.2f, 3.6f, 6.1f);
			components[5].size = new Vector3(0.2f, 3.6f, 6.1f);
			components[6].size = new Vector3(3.7f, 0.8f, 6.2f);
			components[9].size = new Vector3(4f, 0.3f, 8.4f);
			components2[1].size = new Vector3(0.4f, 0.1f, 0.5f);
			val.transform.localPosition = Vector3.zero;
			val.transform.localEulerAngles = Vector3.zero;
			((Component)rv.Find("Meshes/MainBody")).GetComponent<MeshFilter>().mesh = Plugin.bundle.LoadAsset<Mesh>("Assets/MelanieRV/Mesh/RV0Base0.mesh");
			((Component)rv.Find("Meshes/MainBody/MainBody (1)")).GetComponent<MeshFilter>().mesh = Plugin.bundle.LoadAsset<Mesh>("Assets/MelanieRV/Mesh/RV0Base0.mesh");
			((Component)rv.Find("Meshes/MainBody/MainBody (2)")).GetComponent<MeshFilter>().mesh = Plugin.bundle.LoadAsset<Mesh>("Assets/MelanieRV/Mesh/RV0Base0.mesh");
			((Renderer)((Component)rv.Find("Meshes/MainBody")).GetComponent<MeshRenderer>()).materials = (Material[])(object)new Material[5]
			{
				array[0],
				array[1],
				array[2],
				array[3],
				array[4]
			};
			((Renderer)((Component)rv.Find("Meshes/MainBody/MainBody (1)")).GetComponent<MeshRenderer>()).materials = (Material[])(object)new Material[5]
			{
				array[0],
				array[1],
				array[2],
				array[3],
				array[4]
			};
			((Renderer)((Component)rv.Find("Meshes/MainBody/MainBody (2)")).GetComponent<MeshRenderer>()).materials = (Material[])(object)new Material[5]
			{
				array[0],
				array[1],
				array[2],
				array[3],
				array[4]
			};
			((Renderer)((Component)rv.Find("Meshes/CarHoodContainer/CarHoodMesh")).GetComponent<MeshRenderer>()).materials = (Material[])(object)new Material[1] { array[0] };
			((Renderer)((Component)rv.Find("Meshes/DoorLeftContainer/Door")).GetComponent<MeshRenderer>()).materials = (Material[])(object)new Material[1] { array[0] };
			((Renderer)((Component)rv.Find("Meshes/DoorRightContainer/Door")).GetComponent<MeshRenderer>()).materials = (Material[])(object)new Material[1] { array[0] };
			((Renderer)((Component)rv.Find("Meshes/MainBody/MelanieRVFloor0(Clone)/Detail0")).GetComponent<MeshRenderer>()).materials = (Material[])(object)new Material[3]
			{
				array[3],
				array[4],
				array[5]
			};
			((Component)rv.Find("Meshes/InteractionBlockers/Cube")).gameObject.SetActive(false);
			Object.Destroy((Object)(object)((Component)val.transform.Find("Clip")).gameObject);
			Create("DriverSeat", "PassengerSeat", new Vector3(0.3f, -2.1f, 0.8f), "Meshes/DriverSeatContainer/Seat/");
			Move(new string[1] { "Colliders/BackWheelColliders" }, new Vector3(0f, -1.5f, -4f));
			Move(new string[1] { "Meshes/BackLight" }, new Vector3(0f, -2.2f, -1.88f));
			Move(new string[1] { "Meshes/BackDoorContainer" }, new Vector3(-0.05f, -0.4f, -6.6f));
			Move(new string[1] { "Meshes/Wheels/BackWheelAxisContainer" }, new Vector3(0f, 1f, -3.98f));
			Move(new string[1] { "Meshes/Cube" }, new Vector3(0f, -2f, -1f));
			Move(new string[1] { "NavSurface" }, new Vector3(0f, -0.7f, -2.5f));
			Move(new string[1] { "Triggers/LeftShelfPlacementCollider" }, new Vector3(-0.5f, 0f, -6f));
			Move(new string[1] { "Triggers/RightShelfPlacementCollider" }, new Vector3(0.5f, 0f, 1.4f));
			Move(new string[1] { "PushTrigger" }, new Vector3(2.3f, 0.7f, -1.7f));
			Move(new string[2] { "ExhaustSmoke", "TurboBoost" }, new Vector3(1.5f, -1.4f, -5.6f));
			Move(new string[1] { "InsideTruckNavBounds" }, new Vector3(0f, -0.5f, -2.6f));
			Move(new string[1] { "ExitPoints/DriverSide/DriverExit1" }, new Vector3(-0.9f, 0.5f, 1.4f));
			Move(new string[1] { "ExitPoints/PassengerSide/PassengerExit1" }, new Vector3(0.9f, 0.5f, 1.4f));
			Move(new string[1] { "VehiclesContainer/PhysicsColliders/Cube (7)" }, new Vector3(0f, -0.6f, -2.7f), dir: false);
			Move(new string[1] { "VehiclesContainer/PhysicsColliders/Cube (8)" }, new Vector3(0f, 2.3f, -1.5f), dir: false);
			Move(new string[1] { "VehiclesContainer/PhysicsColliders/Cube (9)" }, new Vector3(2f, 0.6f, -2.4f), dir: false);
			Move(new string[1] { "VehiclesContainer/PhysicsColliders/Cube (10)" }, new Vector3(0f, 0f, 0.6f), dir: false);
			Move(new string[1] { "VehiclesContainer/PhysicsColliders/Cube (11)" }, new Vector3(-2f, 0.6f, -2.4f), dir: false);
			Size(new string[1] { "Meshes/Cube" }, new Vector3(4f, 1.3f, 11.5f));
			Size(new string[1] { "NavSurface" }, new Vector3(4f, 0.3f, 6.5f));
			Size(new string[1] { "Triggers/RightShelfPlacementCollider" }, new Vector3(1f, 1f, 2.2f));
			Size(new string[1] { "PushTrigger" }, new Vector3(0.09f, 3.3f, 4.4f));
			Size(new string[1] { "InsideTruckNavBounds" }, new Vector3(2.7f, 0.4f, 6.3f));
			Size(new string[1] { "VehiclesContainer/PhysicsColliders/Cube (7)" }, new Vector3(4f, 0.2f, 6.7f), null, dir: false);
			Size(new string[1] { "VehiclesContainer/PhysicsColliders/Cube (8)" }, new Vector3(4f, 0.2f, 8f), null, dir: false);
			Size(new string[2] { "Cube (9)", "Cube (11)" }, new Vector3(0.1f, 3.6f, 6f), "VehiclesContainer/PhysicsColliders/", dir: false);
			Size(new string[1] { "VehiclesContainer/PhysicsColliders/Cube (10)" }, new Vector3(4f, 2.5f, 0.1f), null, dir: false);
		}
		Move(new string[1] { "terminalPosition" }, new Vector3(1.7f, 0.9f, -4.8f));
		Move(new string[1] { "Triggers/cruiser_light_switch(Clone)" }, new Vector3(-1.7f, 0.9f, -3.5f));
	}

	private static void Move(string[] obj, Vector3 pos, bool dir = true)
	{
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_001d: Unknown result type (might be due to invalid IL or missing references)
		try
		{
			if (dir)
			{
				foreach (string text in obj)
				{
					rv.Find(text).localPosition = pos;
				}
			}
			else
			{
				foreach (string text2 in obj)
				{
					GameObject.Find(text2).transform.localPosition = pos;
				}
			}
		}
		catch
		{
			foreach (string text3 in obj)
			{
				Plugin.mls.LogError((object)("Failed to move " + text3 + "."));
			}
		}
	}

	private static void Size(string[] obj, Vector3 scale, string path = null, bool dir = true)
	{
		//IL_0058: Unknown result type (might be due to invalid IL or missing references)
		//IL_0023: Unknown result type (might be due to invalid IL or missing references)
		try
		{
			if (dir)
			{
				foreach (string text in obj)
				{
					rv.Find(path + text).localScale = scale;
				}
			}
			else
			{
				foreach (string text2 in obj)
				{
					GameObject.Find(path + text2).transform.localScale = scale;
				}
			}
		}
		catch
		{
			foreach (string text3 in obj)
			{
				Plugin.mls.LogError((object)("Failed to scale " + text3 + "."));
			}
		}
	}

	private static void Create(string obj, string name, Vector3 pos, string path)
	{
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		try
		{
			GameObject val = Object.Instantiate<GameObject>(((Component)rv.Find(path + obj)).gameObject, rv.Find(path + obj).parent);
			((Object)val).name = name;
			Move(new string[1] { path + name }, pos);
		}
		catch
		{
			Plugin.mls.LogError((object)("Failed to create " + name + " from " + obj + "."));
		}
	}
}
[BepInPlugin("MelanieMelicious.CrusierRV", "Melanie Melicious - Cruiser RV", "0.2.2")]
public class Plugin : BaseUnityPlugin
{
	private const string GUID = "MelanieMelicious.CrusierRV";

	private const string NAME = "Melanie Melicious - Cruiser RV";

	private const string VERSION = "0.2.2";

	private readonly Harmony harmony = new Harmony("MelanieMelicious.CrusierRV");

	public static ManualLogSource mls;

	public static AssetBundle bundle;

	private static Plugin instance;

	private void Awake()
	{
		instance = this;
		RVConfig.SetupConfig(((BaseUnityPlugin)this).Config);
		mls = Logger.CreateLogSource("Melanie Cruiser RV");
		mls = ((BaseUnityPlugin)this).Logger;
		harmony.PatchAll(typeof(HarmonyPatches));
		string text = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "melanierv");
		bundle = AssetBundle.LoadFromFile(text);
		((BaseUnityPlugin)this).Logger.LogInfo((object)"Cruiser RV loading wowow");
	}
}
internal static class RVConfig
{
	internal static ConfigEntry<bool> floor2;

	internal static ConfigEntry<bool> bigTire;

	internal static ConfigEntry<bool> lightCabin;

	internal static ConfigEntry<bool> trim;

	internal static ConfigEntry<bool> step0;

	internal static ConfigEntry<string> colorExt;

	internal static ConfigEntry<string> colorInt;

	internal static ConfigEntry<string> colorBorder;

	internal static ConfigEntry<string> colorGlass;

	internal static ConfigEntry<int> mass;

	internal static void SetupConfig(ConfigFile config)
	{
		floor2 = config.Bind<bool>("RV Setup", "Enable Second Floor", true, "Toggles the addition of a second RV floor! (crazy)");
		bigTire = config.Bind<bool>("RV Setup", "Enable Monster Truck Tires", false, "Toggles big giant tires and raised suspension.");
		lightCabin = config.Bind<bool>("RV Setup", "Enable Front Inside Light", false, "Toggles the interior cabin light (makes it harder to see during night, if enabled).");
		trim = config.Bind<bool>("RV Setup", "Enable Extra Bottom Trim", false, "Toggles extra bottom trimming detail for 'bulk' appearance.");
		step0 = config.Bind<bool>("RV Setup", "Enable Back Steps", false, "Toggles steps at the back of the cruiser.");
		colorExt = config.Bind<string>("RV Setup", "RV Exterior Color", "#FFFFFF", "Customize RV exterior colors. Client-sided.");
		colorInt = config.Bind<string>("RV Setup", "RV Interior Color", "#C8BDB8", "Customize RV interior colors. Client-sided.");
		colorBorder = config.Bind<string>("RV Setup", "RV Border Color", "#000000", "Customize RV border colors. Client-sided.");
		colorGlass = config.Bind<string>("RV Setup", "RV Glass Color", "#9EBFE7", "Customize RV glass colors. Client-sided.");
		mass = config.Bind<int>("RV Setup", "RV Mass", 200, "Customize RV mass.");
	}
}