Decompiled source of ACompass revived v1.3.2

ACompass.dll

Decompiled a week ago
using System;
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 ACompass.NetcodePatcher;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using Friskzips.patch;
using GameNetcodeStuff;
using HarmonyLib;
using LethalConfig;
using LethalConfig.ConfigItems;
using LethalConfig.ConfigItems.Options;
using Microsoft.CodeAnalysis;
using Unity.Netcode;
using UnityEngine;
using UnityEngine.UI;

[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: IgnoresAccessChecksTo("Assembly-CSharp")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UI")]
[assembly: AssemblyCompany("ACompass")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.3.0")]
[assembly: AssemblyInformationalVersion("1.0.3-alpha.0.2+8b2da66df728d4504593eb40d1802a75a0321995")]
[assembly: AssemblyProduct("ACompass")]
[assembly: AssemblyTitle("ACompass")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
[module: NetcodePatchedAssembly]
internal class <Module>
{
	static <Module>()
	{
	}
}
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 Friskzips
{
	public class LethalConfigCompatibility
	{
		private static bool? _enabled;

		public static bool enabled
		{
			get
			{
				if (!_enabled.HasValue)
				{
					_enabled = Chainloader.PluginInfos.ContainsKey("ainavt.lc.lethalconfig");
				}
				return _enabled.Value;
			}
		}

		internal static void initLethalConfig()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_001e: 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)
			//IL_002b: Expected O, but got Unknown
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Expected O, but got Unknown
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Expected O, but got Unknown
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0043: Expected O, but got Unknown
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Expected O, but got Unknown
			//IL_0055: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Expected O, but got Unknown
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Expected O, but got Unknown
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Expected O, but got Unknown
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Expected O, but got Unknown
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Expected O, but got Unknown
			//IL_0091: 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_00a3: Expected O, but got Unknown
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Expected O, but got Unknown
			EnumDropDownConfigItem<Plugin.configHudPosition> val = new EnumDropDownConfigItem<Plugin.configHudPosition>(Plugin.position, new EnumDropDownOptions
			{
				RequiresRestart = false
			});
			ConfigEntry<int> x_offset = Plugin.x_offset;
			IntSliderOptions val2 = new IntSliderOptions();
			((BaseRangeOptions<int>)val2).Min = -100;
			((BaseRangeOptions<int>)val2).Max = 100;
			((BaseOptions)val2).RequiresRestart = false;
			IntSliderConfigItem val3 = new IntSliderConfigItem(x_offset, val2);
			BoolCheckBoxConfigItem val4 = new BoolCheckBoxConfigItem(Plugin.oldTexture, new BoolCheckBoxOptions
			{
				RequiresRestart = false
			});
			BoolCheckBoxConfigItem val5 = new BoolCheckBoxConfigItem(Plugin.alignToShipRadar, new BoolCheckBoxOptions
			{
				RequiresRestart = false
			});
			BoolCheckBoxConfigItem val6 = new BoolCheckBoxConfigItem(Plugin.hideWhenInOrbit, new BoolCheckBoxOptions
			{
				RequiresRestart = false
			});
			BoolCheckBoxConfigItem val7 = new BoolCheckBoxConfigItem(Plugin.hideWhenInside, new BoolCheckBoxOptions
			{
				RequiresRestart = false
			});
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val);
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val3);
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val4);
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val5);
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val6);
			LethalConfigManager.AddConfigItem((BaseConfigItem)(object)val7);
			LethalConfigManager.SetModDescription("Original mod by alekso56");
			LethalConfigManager.SkipAutoGen();
		}
	}
	[BepInPlugin("Friskzips.ACompass", "ACompass revived", "1.3.2")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Plugin : BaseUnityPlugin
	{
		public enum configHudPosition
		{
			Bottom,
			Top
		}

		private readonly Harmony _harmony = new Harmony("Friskzips.ACompass");

		public static Plugin Instance { get; set; }

		public static ConfigEntry<int> x_offset { get; private set; }

		public static ConfigEntry<configHudPosition> position { get; private set; }

		public static ConfigEntry<bool> oldTexture { get; private set; }

		public static ConfigEntry<bool> alignToShipRadar { get; private set; }

		public static ConfigEntry<bool> hideWhenInOrbit { get; private set; }

		public static ConfigEntry<bool> hideWhenInside { get; private set; }

		public static ManualLogSource Log => ((BaseUnityPlugin)Instance).Logger;

		public Plugin()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Expected O, but got Unknown
			Instance = this;
		}

		private void Awake()
		{
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Expected O, but got Unknown
			//IL_0079: Expected O, but got Unknown
			//IL_008f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Expected O, but got Unknown
			//IL_00aa: Expected O, but got Unknown
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Expected O, but got Unknown
			//IL_00db: Expected O, but got Unknown
			//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0102: Unknown result type (might be due to invalid IL or missing references)
			//IL_010c: Expected O, but got Unknown
			//IL_010c: Expected O, but got Unknown
			//IL_0122: 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_013d: Expected O, but got Unknown
			//IL_013d: Expected O, but got Unknown
			//IL_0153: Unknown result type (might be due to invalid IL or missing references)
			//IL_0164: Unknown result type (might be due to invalid IL or missing references)
			//IL_016e: Expected O, but got Unknown
			//IL_016e: Expected O, but got Unknown
			Log.LogInfo((object)"Applying patches...");
			ApplyPluginPatch();
			Log.LogInfo((object)"Patches applied!");
			Log.LogInfo((object)"Loading assets...");
			Friskzips.patch.ACompass.loadAssets();
			Log.LogInfo((object)"Loading config...");
			position = ((BaseUnityPlugin)this).Config.Bind<configHudPosition>(new ConfigDefinition("Hud", "Position"), configHudPosition.Bottom, new ConfigDescription("The compass position it can be Bottom or Top.\nDefault: Bottom", (AcceptableValueBase)null, Array.Empty<object>()));
			x_offset = ((BaseUnityPlugin)this).Config.Bind<int>(new ConfigDefinition("Hud", "X-axis offset"), 0, new ConfigDescription("The position of the compass on the x-axis", (AcceptableValueBase)null, Array.Empty<object>()));
			oldTexture = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Hud", "Old texture"), false, new ConfigDescription("If you want the old texture of the original mod.\nDefault: False", (AcceptableValueBase)null, Array.Empty<object>()));
			alignToShipRadar = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Hud", "Align to the ship monitor"), true, new ConfigDescription("If you want the compass to align to the ship monitor.\nDefault: True", (AcceptableValueBase)null, Array.Empty<object>()));
			hideWhenInOrbit = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Hud", "Hide when in orbit"), true, new ConfigDescription("If you want the compass to be hidden in orbit.\nDefault: True", (AcceptableValueBase)null, Array.Empty<object>()));
			hideWhenInside = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Hud", "Hide when inside the dungeon"), true, new ConfigDescription("If you want the compass to be hidden inside the dungeon.\nDefault: True", (AcceptableValueBase)null, Array.Empty<object>()));
			Log.LogInfo((object)"Config loaded!");
			Log.LogDebug((object)"Looking for lethal config...");
			if (LethalConfigCompatibility.enabled)
			{
				Log.LogInfo((object)"LethalConfig found!");
				LethalConfigCompatibility.initLethalConfig();
			}
			Log.LogInfo((object)"ACompass revived loaded!");
			Log.LogInfo((object)"Original mod by alekso56");
		}

		private void ApplyPluginPatch()
		{
			_harmony.PatchAll(typeof(Friskzips.patch.ACompass));
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "Friskzips.ACompass";

		public const string PLUGIN_NAME = "ACompass revived";

		public const string PLUGIN_VERSION = "1.3.2";
	}
}
namespace Friskzips.patch
{
	internal class ACompass : MonoBehaviour
	{
		public class CompassUpdater : MonoBehaviour
		{
			public RawImage CompassImage;

			public Transform toFollow;

			private RawImage m_RawImage;

			private readonly Texture m_TextureOld = (Texture)(object)CompassAssets.LoadAsset<Texture2D>("compass_shifted");

			private readonly Texture m_Texture = (Texture)(object)CompassAssets.LoadAsset<Texture2D>("compass_shifted2");

			public void setFollow(Transform user)
			{
				toFollow = user;
			}

			private void LateUpdate()
			{
				//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
				//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
				//IL_011e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0123: Unknown result type (might be due to invalid IL or missing references)
				//IL_0132: 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_018b: Unknown result type (might be due to invalid IL or missing references)
				//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
				//IL_01e7: Unknown result type (might be due to invalid IL or missing references)
				//IL_0206: Unknown result type (might be due to invalid IL or missing references)
				//IL_020b: Unknown result type (might be due to invalid IL or missing references)
				//IL_022a: Unknown result type (might be due to invalid IL or missing references)
				//IL_022f: Unknown result type (might be due to invalid IL or missing references)
				//IL_01bb: Unknown result type (might be due to invalid IL or missing references)
				UpdateCompassHeading();
				if (oldTexture != Plugin.oldTexture.Value || !firstTimeTexture)
				{
					oldTexture = Plugin.oldTexture.Value;
					firstTimeTexture = true;
					if (!Plugin.oldTexture.Value)
					{
						CompassImage.texture = m_Texture;
					}
					if (Plugin.oldTexture.Value)
					{
						CompassImage.texture = m_TextureOld;
					}
				}
				rt = ((Component)this).GetComponent<RectTransform>();
				if (default_x_value == 0)
				{
					default_x_value = (int)((Component)this).transform.localPosition.x;
				}
				float num = Mathf.Clamp((float)Plugin.x_offset.Value, -100f, 100f);
				Vector2 anchoredPosition = rt.anchoredPosition;
				anchoredPosition.x = num;
				Rect rect = ((RectTransform)((Transform)rt).parent).rect;
				float width = ((Rect)(ref rect)).width;
				float x = num / 100f * (width / 2f);
				Vector2 anchoredPosition2 = rt.anchoredPosition;
				anchoredPosition2.x = x;
				rt.anchoredPosition = anchoredPosition2;
				if (position != (int)Plugin.position.Value)
				{
					position = (int)Plugin.position.Value;
					if (position == 0)
					{
						((Component)this).transform.localPosition = new Vector3(0f, -224.4849f, 0f);
					}
					if (position == 1)
					{
						((Component)this).transform.localPosition = new Vector3(0f, 218.5156f, 0f);
					}
					Plugin.Log.LogDebug((object)("pos " + ((Component)this).transform.localPosition.x + ", " + ((Component)this).transform.localPosition.y + ", " + ((Component)this).transform.localPosition.z));
					Plugin.Log.LogDebug((object)("pos enum " + position));
				}
			}

			private void UpdateCompassHeading()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_0011: Expected O, but got Unknown
				//IL_0062: Unknown result type (might be due to invalid IL or missing references)
				//IL_006d: Expected O, but got Unknown
				//IL_0029: Unknown result type (might be due to invalid IL or missing references)
				//IL_0034: Expected O, but got Unknown
				//IL_0075: Unknown result type (might be due to invalid IL or missing references)
				//IL_0080: Expected O, but got Unknown
				//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
				//IL_00fb: 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_0108: Unknown result type (might be due to invalid IL or missing references)
				//IL_010a: Unknown result type (might be due to invalid IL or missing references)
				//IL_010c: Unknown result type (might be due to invalid IL or missing references)
				//IL_010e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0112: 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_012d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0135: Unknown result type (might be due to invalid IL or missing references)
				//IL_0137: Unknown result type (might be due to invalid IL or missing references)
				//IL_013c: Unknown result type (might be due to invalid IL or missing references)
				//IL_009d: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a2: 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_00ae: 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_00b1: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b7: 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_00d8: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
				if ((Object)GameNetworkManager.Instance == (Object)null || (Object)(GameNetworkManager.Instance.localPlayerController?.turnCompassCamera) == (Object)null)
				{
					return;
				}
				toFollow = ((Component)GameNetworkManager.Instance.localPlayerController.turnCompassCamera).transform;
				if (!((Object)CompassImage == (Object)null) && !((Object)toFollow == (Object)null))
				{
					Quaternion val;
					if (Plugin.alignToShipRadar.Value)
					{
						Vector2 right = Vector2.right;
						Quaternion rotation = toFollow.rotation;
						val = rotation;
						Vector2 val2 = right * ((((Quaternion)(ref val)).eulerAngles.y + 45f - 45f) / 360f);
						CompassImage.uvRect = new Rect(val2, Vector2.one);
					}
					else
					{
						Vector2 right2 = Vector2.right;
						Quaternion rotation2 = toFollow.rotation;
						val = rotation2;
						Vector2 val3 = right2 * ((((Quaternion)(ref val)).eulerAngles.y - 45f) / 360f);
						CompassImage.uvRect = new Rect(val3, Vector2.one);
					}
				}
			}
		}

		private static CompassUpdater updater;

		public static AssetBundle CompassAssets;

		public static bool loaded = false;

		public static bool oldTexture = false;

		public static bool firstTimeTexture = false;

		public static bool spectating = false;

		public static bool spectatingFirstTime = false;

		public static bool inside = false;

		public static int position = 69;

		public static int default_x_value = 0;

		public static GameNetworkManager GameNetworkInstance;

		public static int x_value = 0;

		public static RectTransform rt;

		public static GameObject compassObject;

		public static bool inTerminal = false;

		public static void loadAssets()
		{
			if (!loaded)
			{
				string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
				CompassAssets = AssetBundle.LoadFromFile(Path.Combine(directoryName, "compass"));
				if ((Object)(object)CompassAssets == (Object)null)
				{
					Plugin.Log.LogError((object)"Failed to load AssetBundle!");
					return;
				}
				Plugin.Log.LogInfo((object)"AsssetBundle loaded!");
				loaded = true;
			}
		}

		[HarmonyPatch(typeof(MenuManager), "OnEnable")]
		[HarmonyPostfix]
		public static void resetStuff()
		{
			spectatingFirstTime = false;
		}

		[HarmonyPatch(typeof(GameNetworkManager), "ConnectionApproval")]
		[HarmonyPostfix]
		public static void getNetworkInstance(GameNetworkManager __instance)
		{
			GameNetworkInstance = __instance;
		}

		[HarmonyPatch(typeof(PlayerControllerB), "Update")]
		[HarmonyPostfix]
		public static void getPlayerData(PlayerControllerB __instance)
		{
			inTerminal = __instance.inTerminalMenu;
			inside = __instance.isInsideFactory;
			if (((NetworkBehaviour)__instance).IsClient)
			{
				spectating = __instance.isPlayerControlled;
				if (!spectatingFirstTime)
				{
					Plugin.Log.LogInfo((object)"got the spectating variable");
					spectatingFirstTime = true;
				}
			}
			if ((Object)(object)GameNetworkInstance != (Object)null)
			{
				if ((Object)(object)GameNetworkInstance.localPlayerController != (Object)null)
				{
					if (!spectatingFirstTime)
					{
						Plugin.Log.LogInfo((object)"Found GameNetworkInstance.localPlayerController!");
						spectatingFirstTime = true;
					}
					spectating = GameNetworkInstance.localPlayerController.isPlayerDead;
				}
				else
				{
					Plugin.Log.LogWarning((object)"Couldn't get GameNetworkInstance.localPlayerController, the mod can't detect when you are in spectator");
				}
			}
			else if (!((NetworkBehaviour)__instance).IsClient)
			{
				Plugin.Log.LogWarning((object)"Couldn't get GameNetworkInstance, the mod can't detect when you are in spectator");
			}
		}

		[HarmonyPatch(typeof(StartOfRound), "Update")]
		[HarmonyPostfix]
		public static void hideCompass(StartOfRound __instance)
		{
			if ((Object)(object)compassObject != (Object)null)
			{
				if ((__instance.inShipPhase && Plugin.hideWhenInOrbit.Value) || inTerminal || spectating || (inside && Plugin.hideWhenInside.Value))
				{
					compassObject.SetActive(false);
				}
				else
				{
					compassObject.SetActive(true);
				}
			}
		}

		[HarmonyPatch(typeof(HUDManager), "Awake")]
		[HarmonyPostfix]
		public static void AddCompass(HUDManager __instance)
		{
			//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0120: Unknown result type (might be due to invalid IL or missing references)
			//IL_012c: Unknown result type (might be due to invalid IL or missing references)
			//IL_013e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0148: 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_0169: Unknown result type (might be due to invalid IL or missing references)
			//IL_017b: 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)
			Transform val = __instance.HUDContainer.transform.Find("CompassImage (1)");
			if ((Object)(object)val != (Object)null)
			{
				((Component)val).gameObject.SetActive(false);
			}
			else
			{
				Plugin.Log.LogWarning((object)("Couldn't find in \"" + ((object)__instance.HUDContainer)?.ToString() + "\" the CompassImage"));
			}
			Transform transform = __instance.HUDContainer.transform;
			Debug.Log((object)("Attaching compass to :" + (object)transform));
			GameObject val2 = CompassAssets.LoadAsset<GameObject>("assets/compass/mask.prefab");
			GameObject val3 = Object.Instantiate<GameObject>(val2);
			val3 = (compassObject = Object.Instantiate<GameObject>(val3, transform));
			updater = val3.AddComponent<CompassUpdater>();
			updater.CompassImage = ((Component)val3.transform.GetChild(0)).GetComponentInChildren<RawImage>();
			Plugin.Log.LogDebug((object)val3.transform.position.y);
			Transform val4 = val3.transform.Find("Compass");
			Transform val5 = ((Component)val4).transform.Find("Indicator");
			val5.position = new Vector3(val5.position.x, val5.position.y - 0.017f, val5.position.z);
			val5.localScale = new Vector3(val5.localScale.x - 0.5f, val5.localScale.y - 0.7f, val5.localScale.z);
			position = 69;
			firstTimeTexture = false;
		}
	}
}
namespace System.Runtime.CompilerServices
{
	[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
	internal sealed class IgnoresAccessChecksToAttribute : Attribute
	{
		public IgnoresAccessChecksToAttribute(string assemblyName)
		{
		}
	}
}
namespace ACompass.NetcodePatcher
{
	[AttributeUsage(AttributeTargets.Module)]
	internal class NetcodePatchedAssemblyAttribute : Attribute
	{
	}
}