Decompiled source of ButteredLillysBeyondLimits v3.0.8

Lilly_s_Beyond_Limits.dll

Decompiled 2 weeks ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Text;
using System.Text.RegularExpressions;
using BepInEx;
using BepInEx.Configuration;
using HarmonyLib;
using Lilly_s_Beyond_Limits;
using MelonLoader;
using MelonLoader.Preferences;
using Microsoft.CodeAnalysis;
using Mirror;
using Steamworks;
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(MelonLoad), "Lilly's Beyond Limits", "3.0.8", "Lilly", null)]
[assembly: MelonGame("KisSoft", "ATLYSS")]
[assembly: MelonOptionalDependencies(new string[] { "BepInEx" })]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("Lilly_s_Beyond_Limits")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+8972fb64c67f674704fed6df5831eb6fb3ea7f75")]
[assembly: AssemblyProduct("Lilly_s_Beyond_Limits")]
[assembly: AssemblyTitle("Lilly_s_Beyond_Limits")]
[assembly: NeutralResourcesLanguage("en-US")]
[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;
		}
	}
}
namespace Lilly_s_Beyond_Limits
{
	[BepInPlugin("0a26c5bd-f173-47f8-8f50-006dd6806ce6", "Lilly's Beyond Limits", "3.0.8")]
	public class Bepin : BaseUnityPlugin
	{
		private ConfigEntry<bool> cameraCol;

		private ConfigEntry<Vector2> _headWidthRange;

		private ConfigEntry<Vector2> _headModRange;

		private ConfigEntry<Vector2> _heightRange;

		private ConfigEntry<Vector2> _widthRange;

		private ConfigEntry<Vector2> _torsoRange;

		private ConfigEntry<Vector2> _boobRange;

		private ConfigEntry<Vector2> _armRange;

		private ConfigEntry<Vector2> _bellyRange;

		private ConfigEntry<Vector2> _bottomRange;

		private ConfigEntry<Vector2> _pitchRange;

		private BeyondCore beyondcore;

		private void Awake()
		{
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: 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)
			//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0128: Unknown result type (might be due to invalid IL or missing references)
			//IL_0157: Unknown result type (might be due to invalid IL or missing references)
			//IL_0186: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0260: Unknown result type (might be due to invalid IL or missing references)
			//IL_0266: Expected O, but got Unknown
			//IL_028f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0294: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0302: Unknown result type (might be due to invalid IL or missing references)
			//IL_0313: Unknown result type (might be due to invalid IL or missing references)
			//IL_0318: Unknown result type (might be due to invalid IL or missing references)
			//IL_0329: Unknown result type (might be due to invalid IL or missing references)
			//IL_032e: Unknown result type (might be due to invalid IL or missing references)
			//IL_033f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0344: Unknown result type (might be due to invalid IL or missing references)
			//IL_0355: Unknown result type (might be due to invalid IL or missing references)
			//IL_035a: Unknown result type (might be due to invalid IL or missing references)
			cameraCol = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "CameralCollision", true, "Toggles Camera Colision and Infinite Zoom");
			_headWidthRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderHeadWidth", new Vector2(0.95f, 1.15f), "Sets Sliider Limits For Head Width");
			_headModRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderMuzzle", new Vector2(0f, 100f), "Sets Sliider Limits For Muzzle");
			_heightRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderHeight", new Vector2(0.95f, 1.055f), "Sets Sliider Limits For Height");
			_widthRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderWidth", new Vector2(0.95f, 1.15f), "Sets Sliider Limits For Width");
			_torsoRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderTorso", new Vector2(-10f, 105f), "Sets Sliider Limits For Torso");
			_boobRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderBoobs", new Vector2(-20f, 100f), "Sets Sliider Limits For Boobs");
			_armRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderArms", new Vector2(-5f, 105f), "Sets Sliider Limits For Arms");
			_bellyRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderBelly", new Vector2(-20f, 120f), "Sets Sliider Limits For Belly");
			_bottomRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderButt", new Vector2(-50f, 100f), "Sets Sliider Limits For Butt");
			_pitchRange = ((BaseUnityPlugin)this).Config.Bind<Vector2>("General", "SliderVoice", new Vector2(0.6f, 1.25f), "Sets Sliider Limits For Voice");
			if (!((Object)(object)BeyondCore.Beyondinstance != (Object)null))
			{
				GameObject val = Object.Instantiate<GameObject>(GameObject.CreatePrimitive((PrimitiveType)3));
				((Object)val).hideFlags = (HideFlags)61;
				beyondcore = val.AddComponent<BeyondCore>();
				beyondcore.Logger = logger;
				beyondcore.saveConfig = saveSettings;
				Harmony val2 = new Harmony("Lilly's Beyond Limits");
				val2.PatchAll();
				beyondcore.col = cameraCol.Value;
				beyondcore._headWidthRange = _headWidthRange.Value;
				beyondcore._headModRange = _headModRange.Value;
				beyondcore._heightRange = _heightRange.Value;
				beyondcore._widthRange = _widthRange.Value;
				beyondcore._torsoRange = _torsoRange.Value;
				beyondcore._boobRange = _boobRange.Value;
				beyondcore._armRange = _armRange.Value;
				beyondcore._bellyRange = _bellyRange.Value;
				beyondcore._bottomRange = _bottomRange.Value;
				beyondcore._pitchRange = _pitchRange.Value;
			}
		}

		public bool saveSettings(string _)
		{
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
			try
			{
				cameraCol.Value = beyondcore.col;
				_headWidthRange.Value = beyondcore._headWidthRange;
				_headModRange.Value = beyondcore._headModRange;
				_heightRange.Value = beyondcore._heightRange;
				_widthRange.Value = beyondcore._widthRange;
				_torsoRange.Value = beyondcore._torsoRange;
				_boobRange.Value = beyondcore._boobRange;
				_armRange.Value = beyondcore._armRange;
				_bellyRange.Value = beyondcore._bellyRange;
				_bottomRange.Value = beyondcore._bottomRange;
				_pitchRange.Value = beyondcore._pitchRange;
				((BaseUnityPlugin)this).Config.Save();
				return true;
			}
			catch (Exception ex)
			{
				logger(ex.ToString());
				return false;
			}
		}

		private void OnApplicationQuit()
		{
			cameraCol.Value = beyondcore.col;
		}

		public bool logger(string mesg)
		{
			((BaseUnityPlugin)this).Logger.LogInfo((object)(mesg ?? ""));
			return true;
		}
	}
	public class BeyondCore : MonoBehaviour
	{
		[HarmonyPatch(typeof(Player), "OnGameConditionChange")]
		public static class lillyCred
		{
			[HarmonyPrefix]
			private static void Prefix(ref Player __instance)
			{
				//IL_0004: Unknown result type (might be due to invalid IL or missing references)
				//IL_000a: Invalid comparison between Unknown and I4
				//IL_0040: Unknown result type (might be due to invalid IL or missing references)
				//IL_0046: Invalid comparison between Unknown and I4
				//IL_0032: Unknown result type (might be due to invalid IL or missing references)
				try
				{
					if ((int)__instance.Network_currentGameCondition == 1)
					{
						byte[] bytes = Encoding.ASCII.GetBytes("Lillys Mod");
						CSteamID val = default(CSteamID);
						((CSteamID)(ref val))..ctor(SteamLobby._current._currentLobbyID);
						SteamMatchmaking.SendLobbyChatMsg(val, bytes, bytes.Length);
					}
					if ((int)__instance.Network_currentGameCondition == 1 && __instance.Network_steamID == "76561198286273592" && !__instance._globalNickname.Contains("color"))
					{
						__instance._globalNickname = "<b><color=red>" + __instance.Network_globalNickname + "</color></b>";
					}
				}
				catch (Exception)
				{
				}
			}
		}

		[HarmonyPatch(typeof(ChatBehaviour), "Cmd_SendChatMessage")]
		public static class chatCommands
		{
			[HarmonyPrefix]
			private static bool Prefix(ref ChatBehaviour __instance, ref string _message)
			{
				try
				{
					string input = _message.ToLower();
					input = Regex.Replace(input, "<.*?>", "");
					string[] array = input.Split(" ");
					if (input.StartsWith("/size"))
					{
						if (Beyondinstance.getPart(array, 0, add: false))
						{
							__instance.New_ChatMessage("Size Changed");
						}
						else
						{
							__instance.New_ChatMessage("Size Change Failed");
						}
						return false;
					}
					if (input.StartsWith("/grow"))
					{
						if (Beyondinstance.getPart(array, 1, add: true))
						{
							__instance.New_ChatMessage("Size Changed");
						}
						else
						{
							__instance.New_ChatMessage("Size Change Failed");
						}
						return false;
					}
					if (input.StartsWith("/slider"))
					{
						if (Beyondinstance.setSliderLimit(array))
						{
							__instance.New_ChatMessage("Slider Size Changed");
							bool flag = Beyondinstance.saveConfig("");
						}
						else
						{
							__instance.New_ChatMessage("Slider Size Change Failed");
						}
						return false;
					}
					if (input.StartsWith("/camera"))
					{
						Beyondinstance.col = !Beyondinstance.col;
						ChatBehaviour._current.New_ChatMessage($"Camera Collision: {Beyondinstance.col}");
						if (!Beyondinstance.saveConfig(""))
						{
							ChatBehaviour._current.New_ChatMessage("Failed To Save Config Check Console For Info");
						}
						return false;
					}
					if (input.StartsWith("/blhelp"))
					{
						ChatBehaviour._current.New_ChatMessage("Commands:\n\nSets Size To Number\n/Size [Body Part] [Number] \n\nIncreases Size By Number\n/Grow [Body Part] [Number]\n\nToggle Infinate Zoom And Camera Collision\n/Camera\n\nSet Slider Limits\n/Slider [Body Part] [Min Number] [Max Number]");
						return false;
					}
				}
				catch (Exception)
				{
					return false;
				}
				return true;
			}
		}

		[HarmonyPatch(typeof(Player), "Handle_ServerParameters")]
		public static class fixPlayer
		{
			[HarmonyPostfix]
			public static void Postfix(ref Player __instance)
			{
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				//IL_0016: Invalid comparison between Unknown and I4
				//IL_0030: Unknown result type (might be due to invalid IL or missing references)
				//IL_0036: Invalid comparison between Unknown and I4
				//IL_0054: Unknown result type (might be due to invalid IL or missing references)
				//IL_0059: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
				try
				{
					if (!Beyondinstance.fix && (int)__instance.Network_currentPlayerCondition == 2 && ((NetworkBehaviour)__instance).isLocalPlayer && (int)__instance.Network_currentPlayerCondition == 2 && ((NetworkBehaviour)__instance).isLocalPlayer)
					{
						PlayerAppearanceStruct playerAppearanceStruct = Beyondinstance.playerVis._playerAppearanceStruct;
						PlayerAppearance_Profile profile = Beyondinstance.profile;
						playerAppearanceStruct._boobWeight = profile._boobWeight;
						playerAppearanceStruct._headWidth = profile._headWidth;
						playerAppearanceStruct._bottomWeight = profile._bottomWeight;
						playerAppearanceStruct._heightWeight = profile._heightWeight;
						playerAppearanceStruct._widthWeight = profile._widthWeight;
						playerAppearanceStruct._torsoWeight = profile._torsoWeight;
						playerAppearanceStruct._muzzleWeight = profile._muzzleWeight;
						playerAppearanceStruct._voicePitch = profile._voicePitch;
						playerAppearanceStruct._bellyWeight = profile._bellyWeight;
						playerAppearanceStruct._armWeight = profile._armWeight;
						Beyondinstance.playerVis.Cmd_SendNew_PlayerAppearanceStruct(playerAppearanceStruct);
						Beyondinstance.fix = true;
						Beyondinstance.Logger("sending");
						ChatBehaviour._current.New_ChatMessage("Type /BLHelp For Commands");
					}
				}
				catch (Exception ex)
				{
					Debug.Log((object)ex);
				}
			}
		}

		[HarmonyPatch(typeof(AtlyssNetworkManager), "OnStopClient")]
		public static class reset
		{
			[HarmonyPostfix]
			public static void Postfix()
			{
				try
				{
					Beyondinstance.fix = false;
				}
				catch (Exception ex)
				{
					Debug.Log((object)ex);
				}
			}
		}

		[HarmonyPatch(typeof(CameraFunction), "FollowTargetObj")]
		public static class cameraHeight
		{
			[HarmonyPrefix]
			public static void Prefix(ref CameraFunction __instance)
			{
				//IL_010d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0126: Unknown result type (might be due to invalid IL or missing references)
				//IL_012b: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
				//IL_0096: Unknown result type (might be due to invalid IL or missing references)
				//IL_00af: 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_00be: Unknown result type (might be due to invalid IL or missing references)
				try
				{
					if (!((Object)(object)Beyondinstance.playerVis != (Object)null))
					{
						return;
					}
					CameraFunction._current._mainCamera.farClipPlane = 10000f;
					if (Beyondinstance.playerVis._visualAnimator.GetCurrentAnimatorClipInfo(11).Length != 0)
					{
						if (((Object)((AnimatorClipInfo)(ref Beyondinstance.playerVis._visualAnimator.GetCurrentAnimatorClipInfo(11)[0])).clip).name.Contains("_sit"))
						{
							__instance.positionAdjust = new Vector3(0f, 2.15f, 0f) * Beyondinstance.playerVis._playerAppearanceStruct._heightWeight / 2f;
						}
						else
						{
							__instance.positionAdjust = new Vector3(0f, 2.15f, 0f) * Beyondinstance.playerVis._playerAppearanceStruct._heightWeight;
						}
					}
					else
					{
						__instance.positionAdjust = new Vector3(0f, 2.15f, 0f) * Beyondinstance.playerVis._playerAppearanceStruct._heightWeight;
					}
				}
				catch (Exception ex)
				{
					Debug.Log((object)ex);
				}
			}
		}

		[HarmonyPatch(typeof(CameraFogDensity), "OnPreRender")]
		public static class cameraFog
		{
			[HarmonyPrefix]
			public static bool Prefix(ref CameraFogDensity __instance)
			{
				try
				{
					__instance.fogDensity = 0.0001f;
					return false;
				}
				catch (Exception ex)
				{
					Debug.Log((object)ex);
					return true;
				}
			}
		}

		[HarmonyPatch(typeof(ScriptablePlayerRace), "Init_ParamsCheck")]
		public static class bypass
		{
			[HarmonyPrefix]
			private static bool Prefix(ref PlayerAppearance_Profile _aP, ref PlayerAppearance_Profile __result)
			{
				__result = _aP;
				return false;
			}
		}

		[HarmonyPatch(typeof(CharacterSelectManager), "Apply_CharacterSelectDisplay")]
		public static class getProfile
		{
			[HarmonyPostfix]
			private static void Postfix()
			{
				try
				{
					Beyondinstance.profile = ProfileDataManager._current._characterFile._appearanceProfile;
				}
				catch (Exception ex)
				{
					Debug.Log((object)ex);
				}
			}
		}

		[HarmonyPatch(typeof(PlayerVisual), "Apply_NetworkedCharacterDisplay")]
		public static class fixapp
		{
			[HarmonyPrefix]
			private static void Prefix(ref PlayerVisual __instance)
			{
				try
				{
					if (((NetworkBehaviour)__instance).isLocalPlayer)
					{
						CharacterParamsGroup raceDisplayParams = __instance._playerRaceModel._scriptablePlayerRace._raceDisplayParams;
						Beyondinstance.playerVis = __instance;
					}
				}
				catch (Exception)
				{
				}
			}
		}

		[HarmonyPatch(typeof(CameraCollision), "<LateUpdate>g__Handle_DistanceControl|13_0")]
		public static class setMaxCamDis
		{
			[HarmonyPrefix]
			private static bool Prefix(ref CameraCollision __instance)
			{
				try
				{
					float axis = Input.GetAxis("Mouse ScrollWheel");
					if (axis != 0f && !Player._mainPlayer._bufferingStatus && !Player._mainPlayer._inChat && !Player._mainPlayer._inUI)
					{
						CameraCollision obj = __instance;
						obj.maxDistance += axis * (35.5f + MathF.Abs(Beyondinstance.camDis));
					}
					Beyondinstance.camDis = __instance.maxDistance;
					return false;
				}
				catch (Exception ex)
				{
					Debug.Log((object)ex);
					return true;
				}
			}
		}

		[HarmonyPatch(typeof(CameraCollision), "Handle_DetectGroundLayer")]
		public static class removeCamCol
		{
			[HarmonyPostfix]
			private static void Postfix(ref bool __result)
			{
				if (!Beyondinstance.col)
				{
					CameraCollision current = CameraCollision._current;
					current.maxDistance = Beyondinstance.camDis;
					__result = false;
				}
			}
		}

		[HarmonyPatch(typeof(CharacterCreationManager), "SelectRace")]
		public static class setSliders
		{
			[HarmonyPostfix]
			private static void Postfix(ref CharacterCreationManager __instance, ref int _i)
			{
				//IL_001c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0021: Unknown result type (might be due to invalid IL or missing references)
				//IL_002c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0031: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0041: Unknown result type (might be due to invalid IL or missing references)
				//IL_004c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0051: Unknown result type (might be due to invalid IL or missing references)
				//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_006c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0071: Unknown result type (might be due to invalid IL or missing references)
				//IL_007c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0081: Unknown result type (might be due to invalid IL or missing references)
				//IL_008c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0091: Unknown result type (might be due to invalid IL or missing references)
				//IL_009c: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
				CharacterParamsGroup raceDisplayParams = __instance._raceDisplayModels[_i]._scriptablePlayerRace._raceDisplayParams;
				raceDisplayParams._headWidthRange = Beyondinstance._headWidthRange;
				raceDisplayParams._headModRange = Beyondinstance._headModRange;
				raceDisplayParams._heightRange = Beyondinstance._heightRange;
				raceDisplayParams._widthRange = Beyondinstance._widthRange;
				raceDisplayParams._torsoRange = Beyondinstance._torsoRange;
				raceDisplayParams._boobRange = Beyondinstance._boobRange;
				raceDisplayParams._armRange = Beyondinstance._armRange;
				raceDisplayParams._bellyRange = Beyondinstance._bellyRange;
				raceDisplayParams._bottomRange = Beyondinstance._bottomRange;
				raceDisplayParams._pitchRange = Beyondinstance._pitchRange;
			}
		}

		public Vector2[] maxSizes = (Vector2[])(object)new Vector2[10];

		public static BeyondCore Beyondinstance;

		public PlayerVisual playerVis;

		public PlayerAppearance_Profile profile;

		public PlayerAppearanceStruct playerapp;

		public bool fix = false;

		public bool isSitting = false;

		public bool col = false;

		public Vector2 _headWidthRange;

		public Vector2 _headModRange;

		public Vector2 _heightRange;

		public Vector2 _widthRange;

		public Vector2 _torsoRange;

		public Vector2 _boobRange;

		public Vector2 _armRange;

		public Vector2 _bellyRange;

		public Vector2 _bottomRange;

		public Vector2 _pitchRange;

		public Func<string, bool> Logger;

		public Func<string, bool> saveConfig;

		protected Callback<LobbyChatMsg_t> messageRecived;

		public float camDis;

		public float defaultcamDis;

		private bool getPart(string[] Parts, int type, bool add)
		{
			int num = 0;
			float result;
			try
			{
				float.TryParse(Parts[2], out result);
			}
			catch (Exception)
			{
				return false;
			}
			if (Parts[1] == "boobs" || Parts[1] == "tits" || Parts[1] == "boob" || Parts[1] == "tit" || Parts[1] == "breast" || Parts[1] == "breasts")
			{
				num = 1;
			}
			else if (Parts[1] == "scale" || Parts[1] == "size")
			{
				num = 2;
			}
			else if (Parts[1] == "height")
			{
				num = 3;
			}
			else if (Parts[1] == "head")
			{
				num = 4;
			}
			else if (Parts[1] == "width")
			{
				num = 5;
			}
			else if (Parts[1] == "butt" || Parts[1] == "ass" || Parts[1] == "bottom" || Parts[1] == "rear" || Parts[1] == "rump")
			{
				num = 6;
			}
			else if (Parts[1] == "belly" || Parts[1] == "stomach" || Parts[1] == "gut")
			{
				num = 7;
			}
			else if (Parts[1] == "muzzle" || Parts[1] == "snout" || Parts[1] == "nose")
			{
				num = 8;
			}
			else if (Parts[1] == "voice" || Parts[1] == "pitch")
			{
				num = 9;
			}
			else if (Parts[1] == "torso" || Parts[1] == "chest")
			{
				num = 10;
			}
			else if (Parts[1] == "arms" || Parts[1] == "arm")
			{
				num = 11;
			}
			if (num == 0)
			{
				return false;
			}
			return scalePlayer(num, result, add);
		}

		public bool scalePlayer(int part, float value, bool add)
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_035a: Unknown result type (might be due to invalid IL or missing references)
			PlayerAppearanceStruct playerAppearanceStruct = Beyondinstance.playerVis._playerAppearanceStruct;
			PlayerAppearance_Profile val = Beyondinstance.profile;
			switch (part)
			{
			case 1:
				if (add)
				{
					playerAppearanceStruct._boobWeight += value;
					val._boobWeight += value;
				}
				else
				{
					playerAppearanceStruct._boobWeight = value;
					val._boobWeight = value;
				}
				break;
			case 2:
				if (add)
				{
					playerAppearanceStruct._heightWeight += value;
					playerAppearanceStruct._widthWeight += value;
					val._heightWeight += value;
					val._widthWeight += value;
				}
				else
				{
					playerAppearanceStruct._heightWeight = value;
					playerAppearanceStruct._widthWeight = value;
					val._heightWeight = value;
					val._widthWeight = value;
				}
				break;
			case 3:
				if (add)
				{
					playerAppearanceStruct._heightWeight += value;
					val._heightWeight += value;
				}
				else
				{
					playerAppearanceStruct._heightWeight = value;
					val._heightWeight = value;
				}
				break;
			case 4:
				if (add)
				{
					playerAppearanceStruct._headWidth += value;
					val._headWidth += value;
				}
				else
				{
					playerAppearanceStruct._headWidth = value;
					val._headWidth = value;
				}
				break;
			case 5:
				if (add)
				{
					playerAppearanceStruct._widthWeight += value;
					val._widthWeight += value;
				}
				else
				{
					playerAppearanceStruct._widthWeight = value;
					val._widthWeight = value;
				}
				break;
			case 6:
				if (add)
				{
					playerAppearanceStruct._bottomWeight += value;
					val._bottomWeight += value;
				}
				else
				{
					playerAppearanceStruct._bottomWeight = value;
					val._bottomWeight = value;
				}
				break;
			case 7:
				if (add)
				{
					playerAppearanceStruct._bellyWeight += value;
					val._bellyWeight += value;
				}
				else
				{
					playerAppearanceStruct._bellyWeight = value;
					val._bellyWeight = value;
				}
				break;
			case 8:
				if (add)
				{
					playerAppearanceStruct._muzzleWeight += value;
					val._muzzleWeight += value;
				}
				else
				{
					playerAppearanceStruct._muzzleWeight = value;
					val._muzzleWeight = value;
				}
				break;
			case 9:
				if (add)
				{
					playerAppearanceStruct._voicePitch += value;
					val._voicePitch += value;
				}
				else
				{
					playerAppearanceStruct._voicePitch = value;
					val._voicePitch = value;
				}
				break;
			case 10:
				if (add)
				{
					playerAppearanceStruct._torsoWeight += value;
					val._torsoWeight += value;
				}
				else
				{
					playerAppearanceStruct._torsoWeight = value;
					val._torsoWeight = value;
				}
				break;
			case 11:
				if (add)
				{
					playerAppearanceStruct._armWeight += value;
					val._armWeight += value;
				}
				else
				{
					playerAppearanceStruct._armWeight = value;
					val._armWeight = value;
				}
				break;
			default:
				return false;
			}
			Beyondinstance.playerVis.Cmd_SendNew_PlayerAppearanceStruct(playerAppearanceStruct);
			ProfileDataManager._current._characterFile._appearanceProfile = val;
			ProfileDataManager._current.Save_ProfileData();
			return true;
		}

		public bool setSliderLimit(string[] Parts)
		{
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00da: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0103: Unknown result type (might be due to invalid IL or missing references)
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			//IL_0126: Unknown result type (might be due to invalid IL or missing references)
			//IL_0127: 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_012e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0171: Unknown result type (might be due to invalid IL or missing references)
			//IL_0172: Unknown result type (might be due to invalid IL or missing references)
			//IL_0178: Unknown result type (might be due to invalid IL or missing references)
			//IL_0179: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f9: 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_0200: Unknown result type (might be due to invalid IL or missing references)
			//IL_0234: Unknown result type (might be due to invalid IL or missing references)
			//IL_0235: Unknown result type (might be due to invalid IL or missing references)
			//IL_023b: Unknown result type (might be due to invalid IL or missing references)
			//IL_023c: Unknown result type (might be due to invalid IL or missing references)
			//IL_026d: Unknown result type (might be due to invalid IL or missing references)
			//IL_026e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0274: Unknown result type (might be due to invalid IL or missing references)
			//IL_0275: Unknown result type (might be due to invalid IL or missing references)
			//IL_0294: Unknown result type (might be due to invalid IL or missing references)
			//IL_0295: Unknown result type (might be due to invalid IL or missing references)
			//IL_029b: Unknown result type (might be due to invalid IL or missing references)
			//IL_029c: Unknown result type (might be due to invalid IL or missing references)
			CharacterParamsGroup raceDisplayParams = playerVis._playerRaceModel._scriptablePlayerRace._raceDisplayParams;
			float result;
			float result2;
			try
			{
				float.TryParse(Parts[2], out result);
				float.TryParse(Parts[3], out result2);
			}
			catch (Exception)
			{
				return false;
			}
			Vector2 val = default(Vector2);
			((Vector2)(ref val))..ctor(result, result2);
			if (Parts[1] == "boobs" || Parts[1] == "tits" || Parts[1] == "boob" || Parts[1] == "tit" || Parts[1] == "breast" || Parts[1] == "breasts")
			{
				raceDisplayParams._boobRange = val;
				_boobRange = val;
				return true;
			}
			if (Parts[1] == "height")
			{
				raceDisplayParams._heightRange = val;
				_heightRange = val;
				return true;
			}
			if (Parts[1] == "head")
			{
				raceDisplayParams._headWidthRange = val;
				_headWidthRange = val;
				return true;
			}
			if (Parts[1] == "width")
			{
				raceDisplayParams._widthRange = val;
				_widthRange = val;
				return true;
			}
			if (Parts[1] == "butt" || Parts[1] == "ass" || Parts[1] == "bottom")
			{
				raceDisplayParams._bottomRange = val;
				_bottomRange = val;
				return true;
			}
			if (Parts[1] == "belly" || Parts[1] == "stomach")
			{
				raceDisplayParams._bellyRange = val;
				_bellyRange = val;
				return true;
			}
			if (Parts[1] == "muzzle" || Parts[1] == "snout" || Parts[1] == "nose")
			{
				raceDisplayParams._headModRange = val;
				_headModRange = val;
				return true;
			}
			if (Parts[1] == "voice" || Parts[1] == "Pitch")
			{
				raceDisplayParams._pitchRange = val;
				_pitchRange = val;
				return true;
			}
			if (Parts[1] == "torso" || Parts[1] == "chest")
			{
				raceDisplayParams._torsoRange = val;
				_torsoRange = val;
				return true;
			}
			if (Parts[1] == "arms")
			{
				raceDisplayParams._armRange = val;
				_armRange = val;
				return true;
			}
			return false;
		}

		private void Start()
		{
			Beyondinstance = this;
			messageRecived = Callback<LobbyChatMsg_t>.Create((DispatchDelegate<LobbyChatMsg_t>)onMessage);
		}

		private void onMessage(LobbyChatMsg_t callback)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			try
			{
				if (!((CSteamID)callback.m_ulSteamIDUser == SteamUser.GetSteamID()))
				{
					int num = 5000;
					byte[] array = new byte[num];
					CSteamID val = default(CSteamID);
					EChatEntryType val2 = default(EChatEntryType);
					SteamMatchmaking.GetLobbyChatEntry((CSteamID)callback.m_ulSteamIDLobby, (int)callback.m_iChatID, ref val, array, num, ref val2);
					string @string = Encoding.ASCII.GetString(array);
					if (@string.Contains("Lillys Mod"))
					{
						findPlayer((CSteamID)callback.m_ulSteamIDUser);
					}
				}
			}
			catch (Exception)
			{
			}
		}

		private void findPlayer(CSteamID steamID)
		{
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Expected O, but got Unknown
			try
			{
				Object[] array = Object.FindObjectsOfType(typeof(Player));
				for (int i = 0; i < array.Length; i++)
				{
					Player val = (Player)array[i];
					if (val.Network_steamID == ((object)(CSteamID)(ref steamID)).ToString())
					{
						if (val._nickname.Contains("color"))
						{
							break;
						}
						val._nickname = "<color=green>" + val.Network_nickname + "</color>";
					}
				}
			}
			catch (Exception)
			{
			}
		}
	}
	public class MelonLoad : MelonMod
	{
		private MelonPreferences_Category general;

		private MelonPreferences_Entry<bool> cameraCol;

		private MelonPreferences_Entry<Vector2> _headWidthRange;

		private MelonPreferences_Entry<Vector2> _headModRange;

		private MelonPreferences_Entry<Vector2> _heightRange;

		private MelonPreferences_Entry<Vector2> _widthRange;

		private MelonPreferences_Entry<Vector2> _torsoRange;

		private MelonPreferences_Entry<Vector2> _boobRange;

		private MelonPreferences_Entry<Vector2> _armRange;

		private MelonPreferences_Entry<Vector2> _bellyRange;

		private MelonPreferences_Entry<Vector2> _bottomRange;

		private MelonPreferences_Entry<Vector2> _pitchRange;

		private BeyondCore beyondcore;

		public override void OnInitializeMelon()
		{
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0118: Unknown result type (might be due to invalid IL or missing references)
			//IL_014b: Unknown result type (might be due to invalid IL or missing references)
			//IL_017e: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0217: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02be: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0300: Unknown result type (might be due to invalid IL or missing references)
			//IL_0311: 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_0327: Unknown result type (might be due to invalid IL or missing references)
			//IL_032c: Unknown result type (might be due to invalid IL or missing references)
			//IL_033d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0342: Unknown result type (might be due to invalid IL or missing references)
			//IL_0353: Unknown result type (might be due to invalid IL or missing references)
			//IL_0358: Unknown result type (might be due to invalid IL or missing references)
			//IL_0369: Unknown result type (might be due to invalid IL or missing references)
			//IL_036e: Unknown result type (might be due to invalid IL or missing references)
			//IL_037f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0384: Unknown result type (might be due to invalid IL or missing references)
			general = MelonPreferences.CreateCategory("General");
			cameraCol = general.CreateEntry<bool>("General", false, "CameralCollision", "Toggles Camera Colision and Infinite Zoom", false, false, (ValueValidator)null, (string)null);
			_headWidthRange = general.CreateEntry<Vector2>("SliderHeadWidth", new Vector2(0.95f, 1.15f), "SliderHeadWidth", "Sets Sliider Limits For Head Width", false, false, (ValueValidator)null, (string)null);
			_headModRange = general.CreateEntry<Vector2>("SliderMuzzle", new Vector2(0f, 100f), "SliderMuzzle", "Sets Sliider Limits For Muzzle", false, false, (ValueValidator)null, (string)null);
			_heightRange = general.CreateEntry<Vector2>("SliderHeight", new Vector2(0.95f, 1.055f), "SliderHeight", "Sets Sliider Limits For Height", false, false, (ValueValidator)null, (string)null);
			_widthRange = general.CreateEntry<Vector2>("SliderWidth", new Vector2(0.95f, 1.15f), "SliderWidth", "Sets Sliider Limits For Width", false, false, (ValueValidator)null, (string)null);
			_torsoRange = general.CreateEntry<Vector2>("SliderTorso", new Vector2(-10f, 105f), "SliderTorso", "Sets Sliider Limits For Torso", false, false, (ValueValidator)null, (string)null);
			_boobRange = general.CreateEntry<Vector2>("SliderBoobs", new Vector2(-20f, 100f), "SliderBoobs", "Sets Sliider Limits For Boobs", false, false, (ValueValidator)null, (string)null);
			_armRange = general.CreateEntry<Vector2>("SliderArms", new Vector2(-5f, 105f), "SliderArms", "Sets Sliider Limits For Arms", false, false, (ValueValidator)null, (string)null);
			_bellyRange = general.CreateEntry<Vector2>("SliderBelly", new Vector2(-20f, 120f), "SliderBelly", "Sets Sliider Limits For Belly", false, false, (ValueValidator)null, (string)null);
			_bottomRange = general.CreateEntry<Vector2>("SliderButt", new Vector2(-50f, 100f), "SliderButt", "Sets Sliider Limits For Butt", false, false, (ValueValidator)null, (string)null);
			_pitchRange = general.CreateEntry<Vector2>("SliderVoice", new Vector2(0.6f, 1.25f), "SliderVoice", "Sets Sliider Limits For Voice", false, false, (ValueValidator)null, (string)null);
			if (!((Object)(object)BeyondCore.Beyondinstance != (Object)null))
			{
				GameObject val = Object.Instantiate<GameObject>(GameObject.CreatePrimitive((PrimitiveType)3));
				((Object)val).hideFlags = (HideFlags)61;
				beyondcore = val.AddComponent<BeyondCore>();
				beyondcore.Logger = logger;
				beyondcore.saveConfig = saveSettings;
				beyondcore.col = cameraCol.Value;
				beyondcore._headWidthRange = _headWidthRange.Value;
				beyondcore._headModRange = _headModRange.Value;
				beyondcore._heightRange = _heightRange.Value;
				beyondcore._widthRange = _widthRange.Value;
				beyondcore._torsoRange = _torsoRange.Value;
				beyondcore._boobRange = _boobRange.Value;
				beyondcore._armRange = _armRange.Value;
				beyondcore._bellyRange = _bellyRange.Value;
				beyondcore._bottomRange = _bottomRange.Value;
				beyondcore._pitchRange = _pitchRange.Value;
			}
		}

		public bool saveSettings(string _)
		{
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
			try
			{
				cameraCol.Value = beyondcore.col;
				_headWidthRange.Value = beyondcore._headWidthRange;
				_headModRange.Value = beyondcore._headModRange;
				_heightRange.Value = beyondcore._heightRange;
				_widthRange.Value = beyondcore._widthRange;
				_torsoRange.Value = beyondcore._torsoRange;
				_boobRange.Value = beyondcore._boobRange;
				_armRange.Value = beyondcore._armRange;
				_bellyRange.Value = beyondcore._bellyRange;
				_bottomRange.Value = beyondcore._bottomRange;
				_pitchRange.Value = beyondcore._pitchRange;
				MelonPreferences.Save();
				return true;
			}
			catch (Exception ex)
			{
				logger(ex.ToString());
				return false;
			}
		}

		public override void OnApplicationQuit()
		{
			cameraCol.Value = beyondcore.col;
		}

		public bool logger(string mesg)
		{
			MelonLogger.Msg(mesg);
			return true;
		}
	}
}