using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Core.Logging.Interpolation;
using BepInEx.Logging;
using BepInEx.Unity.IL2CPP;
using Il2CppInterop.Runtime.Injection;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Controls;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = "")]
[assembly: AssemblyCompany("InfernoMap")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("InfernoMap")]
[assembly: AssemblyTitle("InfernoMap")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace InfernoMap;
public class MapOverlay : MonoBehaviour
{
private readonly List<Vector2> _trail = new List<Vector2>();
private Vector2 _playerPos;
private Vector3 _worldPos;
private float _headingDeg;
private bool _hasPlayer;
private bool _visible;
private bool _initialised;
private bool _inputErrorLogged;
private string _lastScene = "";
private string _camName = "none";
private float _pixelsPerUnit;
private float _nextLogTime;
private int _updateCalls;
private int _guiCalls;
private bool _uguiTried;
private bool _uguiOk;
private bool _imguiBroken;
private const int Res = 128;
private GameObject _canvasGo;
private Texture2D _tex;
private Color32[] _px;
private float _nextDraw;
public MapOverlay(IntPtr ptr)
: base(ptr)
{
}
private static Camera FindCamera()
{
Camera main = Camera.main;
if ((Object)(object)main != (Object)null)
{
return main;
}
Il2CppReferenceArray<Camera> allCameras = Camera.allCameras;
Camera val = null;
if (allCameras != null)
{
for (int i = 0; i < ((Il2CppArrayBase<Camera>)(object)allCameras).Length; i++)
{
Camera val2 = ((Il2CppArrayBase<Camera>)(object)allCameras)[i];
if (!((Object)(object)val2 == (Object)null) && ((Behaviour)val2).enabled && !((Object)(object)val2.targetTexture != (Object)null) && ((Object)(object)val == (Object)null || val2.depth > val.depth))
{
val = val2;
}
}
}
return val;
}
private Vector2 Project(Vector3 p)
{
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002a: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
if (!Plugin.UseXZPlane.Value)
{
return new Vector2(p.x, p.y);
}
return new Vector2(p.x, p.z);
}
private void HandleHotkeys()
{
try
{
Keyboard current = Keyboard.current;
if (current != null)
{
if (((ButtonControl)current.f6Key).wasPressedThisFrame)
{
_visible = !_visible;
}
if (((ButtonControl)current.f7Key).wasPressedThisFrame)
{
_trail.Clear();
}
if (((ButtonControl)current.equalsKey).wasPressedThisFrame || ((ButtonControl)current.numpadPlusKey).wasPressedThisFrame)
{
_pixelsPerUnit = Mathf.Min(_pixelsPerUnit * 1.25f, 60f);
}
if (((ButtonControl)current.minusKey).wasPressedThisFrame || ((ButtonControl)current.numpadMinusKey).wasPressedThisFrame)
{
_pixelsPerUnit = Mathf.Max(_pixelsPerUnit / 1.25f, 0.5f);
}
}
}
catch (Exception ex)
{
if (!_inputErrorLogged)
{
_inputErrorLogged = true;
Plugin.Logger.LogWarning((object)("Hotkeys unavailable: " + ex.Message));
}
}
}
private void BuildUgui()
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Expected O, but got Unknown
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_0048: Unknown result type (might be due to invalid IL or missing references)
//IL_0078: Unknown result type (might be due to invalid IL or missing references)
//IL_0082: Expected O, but got Unknown
//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
//IL_00e6: 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_0110: Unknown result type (might be due to invalid IL or missing references)
//IL_011c: Unknown result type (might be due to invalid IL or missing references)
_uguiTried = true;
try
{
_canvasGo = new GameObject("InfernoMapCanvas");
Object.DontDestroyOnLoad((Object)(object)_canvasGo);
Canvas obj = _canvasGo.AddComponent<Canvas>();
obj.renderMode = (RenderMode)0;
obj.sortingOrder = 32000;
GameObject val = new GameObject("InfernoMapImage");
val.transform.SetParent(_canvasGo.transform, false);
RawImage obj2 = val.AddComponent<RawImage>();
((Graphic)obj2).raycastTarget = false;
_tex = new Texture2D(128, 128, (TextureFormat)4, false);
((Texture)_tex).filterMode = (FilterMode)0;
((Texture)_tex).wrapMode = (TextureWrapMode)1;
_px = (Color32[])(object)new Color32[16384];
obj2.texture = (Texture)(object)_tex;
float value = Plugin.PanelSize.Value;
RectTransform rectTransform = ((Graphic)obj2).rectTransform;
rectTransform.anchorMin = new Vector2(1f, 1f);
rectTransform.anchorMax = new Vector2(1f, 1f);
rectTransform.pivot = new Vector2(1f, 1f);
rectTransform.anchoredPosition = new Vector2(-16f, -16f);
rectTransform.sizeDelta = new Vector2(value, value);
_canvasGo.SetActive(_visible);
_uguiOk = true;
_nextDraw = 0f;
Plugin.Logger.LogInfo((object)"uGUI overlay created.");
}
catch (Exception ex)
{
_uguiOk = false;
Plugin.Logger.LogWarning((object)("uGUI overlay failed, falling back to IMGUI: " + ex));
}
}
private void SetPx(int x, int y, Color32 c)
{
//IL_0028: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
if (x >= 0 && y >= 0 && x < 128 && y < 128)
{
_px[y * 128 + x] = c;
}
}
private void Block(int x, int y, int s, Color32 c)
{
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
for (int i = 0; i < s; i++)
{
for (int j = 0; j < s; j++)
{
SetPx(x + j, y + i, c);
}
}
}
private void RedrawTexture()
{
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_001b: Unknown result type (might be due to invalid IL or missing references)
//IL_0060: Unknown result type (might be due to invalid IL or missing references)
//IL_0045: 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_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0077: Unknown result type (might be due to invalid IL or missing references)
//IL_0080: Unknown result type (might be due to invalid IL or missing references)
//IL_008a: Unknown result type (might be due to invalid IL or missing references)
//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
//IL_00f3: 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_0101: Unknown result type (might be due to invalid IL or missing references)
//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
//IL_0111: 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_0209: Unknown result type (might be due to invalid IL or missing references)
//IL_022c: Unknown result type (might be due to invalid IL or missing references)
//IL_015b: Unknown result type (might be due to invalid IL or missing references)
//IL_0168: Unknown result type (might be due to invalid IL or missing references)
//IL_0182: Unknown result type (might be due to invalid IL or missing references)
Color32 val = default(Color32);
((Color32)(ref val))..ctor((byte)0, (byte)0, (byte)0, (byte)140);
for (int i = 0; i < _px.Length; i++)
{
_px[i] = val;
}
Color32 c = (_hasPlayer ? new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, (byte)170) : new Color32(byte.MaxValue, (byte)90, (byte)60, (byte)230));
for (int j = 0; j < 128; j++)
{
SetPx(j, 0, c);
SetPx(j, 127, c);
SetPx(0, j, c);
SetPx(127, j, c);
}
if (_hasPlayer)
{
float num = _pixelsPerUnit * 128f / Plugin.PanelSize.Value;
float num2 = 61f;
int num3 = 64;
int count = _trail.Count;
for (int k = 0; k < count; k++)
{
Vector2 val2 = (_trail[k] - _playerPos) * num;
if (!(Mathf.Abs(val2.x) > num2) && !(Mathf.Abs(val2.y) > num2))
{
float num4 = ((count > 1) ? ((float)k / (float)(count - 1)) : 1f);
byte b = (byte)Mathf.Clamp(64f + 153f * num4, 0f, 255f);
Block(num3 + (int)val2.x - 1, num3 + (int)val2.y - 1, 2, new Color32((byte)76, (byte)204, byte.MaxValue, b));
}
}
Block(num3 - 2, num3 - 2, 5, new Color32(byte.MaxValue, (byte)64, (byte)51, byte.MaxValue));
float num5 = _headingDeg * ((float)Math.PI / 180f);
Vector2 val3 = default(Vector2);
((Vector2)(ref val3))..ctor(Mathf.Sin(num5), Mathf.Cos(num5));
for (int l = 1; l <= 3; l++)
{
float num6 = 4f + (float)l * 3f;
Block(num3 + (int)(val3.x * num6) - 1, num3 + (int)(val3.y * num6) - 1, 2, new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue));
}
}
_tex.SetPixels32(new Il2CppStructArray<Color32>(_px));
_tex.Apply(false);
}
public void Update()
{
//IL_0073: Unknown result type (might be due to invalid IL or missing references)
//IL_0078: Unknown result type (might be due to invalid IL or missing references)
//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
//IL_00dc: 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_00fe: 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_013f: Unknown result type (might be due to invalid IL or missing references)
//IL_0141: 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_016d: 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_0123: 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_02bf: Unknown result type (might be due to invalid IL or missing references)
//IL_02c6: Expected O, but got Unknown
_updateCalls++;
if (!_initialised)
{
_visible = Plugin.StartVisible.Value;
_pixelsPerUnit = Plugin.PixelsPerUnit.Value;
_initialised = true;
}
HandleHotkeys();
if (!_uguiTried || (_uguiOk && (Object)(object)_canvasGo == (Object)null))
{
BuildUgui();
}
if (Plugin.ClearOnSceneChange.Value)
{
Scene activeScene = SceneManager.GetActiveScene();
string name = ((Scene)(ref activeScene)).name;
if (name != _lastScene)
{
_lastScene = name;
_trail.Clear();
}
}
Camera val = FindCamera();
if ((Object)(object)val == (Object)null)
{
_hasPlayer = false;
_camName = "none";
}
else
{
Transform transform = ((Component)val).transform;
_worldPos = transform.position;
_headingDeg = transform.eulerAngles.y;
_camName = ((Object)val).name;
Vector2 val2 = Project(_worldPos);
float value = Plugin.ClearOnJumpDistance.Value;
if (value > 0f && _hasPlayer && Vector2.Distance(_playerPos, val2) > value)
{
_trail.Clear();
}
_playerPos = val2;
_hasPlayer = true;
if (_trail.Count == 0 || Vector2.Distance(_trail[_trail.Count - 1], val2) >= Plugin.BreadcrumbSpacing.Value)
{
_trail.Add(val2);
int value2 = Plugin.MaxBreadcrumbs.Value;
if (_trail.Count > value2)
{
_trail.RemoveRange(0, _trail.Count - value2);
}
}
}
if (_uguiOk && (Object)(object)_canvasGo != (Object)null)
{
try
{
if (_canvasGo.activeSelf != _visible)
{
_canvasGo.SetActive(_visible);
}
if (_visible && Time.unscaledTime >= _nextDraw)
{
_nextDraw = Time.unscaledTime + 0.1f;
RedrawTexture();
}
}
catch (Exception ex)
{
_uguiOk = false;
Plugin.Logger.LogError((object)("uGUI redraw failed, falling back to IMGUI: " + ex));
}
}
if (Plugin.DebugLog.Value && Time.unscaledTime >= _nextLogTime)
{
_nextLogTime = Time.unscaledTime + 5f;
string text = (_uguiOk ? "uGUI" : (_imguiBroken ? "none" : "IMGUI"));
ManualLogSource logger = Plugin.Logger;
bool flag = default(bool);
BepInExInfoLogInterpolatedStringHandler val3 = new BepInExInfoLogInterpolatedStringHandler(72, 10, ref flag);
if (flag)
{
((BepInExLogInterpolatedStringHandler)val3).AppendLiteral("[status] scene='");
((BepInExLogInterpolatedStringHandler)val3).AppendFormatted<string>(_lastScene);
((BepInExLogInterpolatedStringHandler)val3).AppendLiteral("' camera='");
((BepInExLogInterpolatedStringHandler)val3).AppendFormatted<string>(_camName);
((BepInExLogInterpolatedStringHandler)val3).AppendLiteral("' ");
((BepInExLogInterpolatedStringHandler)val3).AppendLiteral("pos=(");
((BepInExLogInterpolatedStringHandler)val3).AppendFormatted<float>(_worldPos.x, "F1");
((BepInExLogInterpolatedStringHandler)val3).AppendLiteral(",");
((BepInExLogInterpolatedStringHandler)val3).AppendFormatted<float>(_worldPos.y, "F1");
((BepInExLogInterpolatedStringHandler)val3).AppendLiteral(",");
((BepInExLogInterpolatedStringHandler)val3).AppendFormatted<float>(_worldPos.z, "F1");
((BepInExLogInterpolatedStringHandler)val3).AppendLiteral(") trail=");
((BepInExLogInterpolatedStringHandler)val3).AppendFormatted<int>(_trail.Count);
((BepInExLogInterpolatedStringHandler)val3).AppendLiteral(" ");
((BepInExLogInterpolatedStringHandler)val3).AppendLiteral("visible=");
((BepInExLogInterpolatedStringHandler)val3).AppendFormatted<bool>(_visible);
((BepInExLogInterpolatedStringHandler)val3).AppendLiteral(" ui=");
((BepInExLogInterpolatedStringHandler)val3).AppendFormatted<string>(text);
((BepInExLogInterpolatedStringHandler)val3).AppendLiteral(" updates=");
((BepInExLogInterpolatedStringHandler)val3).AppendFormatted<int>(_updateCalls);
((BepInExLogInterpolatedStringHandler)val3).AppendLiteral(" onGUI=");
((BepInExLogInterpolatedStringHandler)val3).AppendFormatted<int>(_guiCalls);
}
logger.LogInfo(val3);
}
}
public void OnGUI()
{
if (_uguiOk || _imguiBroken || !_visible)
{
return;
}
_guiCalls++;
try
{
DrawImgui();
}
catch (Exception ex)
{
_imguiBroken = true;
Plugin.Logger.LogError((object)("IMGUI drawing failed (this shows which Unity call is stripped): " + ex));
}
}
private void DrawImgui()
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_0010: Invalid comparison between Unknown and I4
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0064: Unknown result type (might be due to invalid IL or missing references)
//IL_007a: Unknown result type (might be due to invalid IL or missing references)
//IL_0084: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
//IL_010d: Unknown result type (might be due to invalid IL or missing references)
//IL_0136: 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_017c: Unknown result type (might be due to invalid IL or missing references)
//IL_0182: Unknown result type (might be due to invalid IL or missing references)
//IL_0187: Unknown result type (might be due to invalid IL or missing references)
//IL_0192: Unknown result type (might be due to invalid IL or missing references)
//IL_0197: Unknown result type (might be due to invalid IL or missing references)
//IL_0199: Unknown result type (might be due to invalid IL or missing references)
//IL_025e: Unknown result type (might be due to invalid IL or missing references)
//IL_0268: 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_028a: Unknown result type (might be due to invalid IL or missing references)
//IL_02bc: Unknown result type (might be due to invalid IL or missing references)
//IL_01ac: Unknown result type (might be due to invalid IL or missing references)
//IL_02dc: Unknown result type (might be due to invalid IL or missing references)
//IL_02e2: Unknown result type (might be due to invalid IL or missing references)
//IL_02f3: Unknown result type (might be due to invalid IL or missing references)
//IL_02f9: Unknown result type (might be due to invalid IL or missing references)
//IL_0314: Unknown result type (might be due to invalid IL or missing references)
//IL_01f0: Unknown result type (might be due to invalid IL or missing references)
//IL_01fa: 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_020e: Unknown result type (might be due to invalid IL or missing references)
//IL_0214: Unknown result type (might be due to invalid IL or missing references)
//IL_022c: Unknown result type (might be due to invalid IL or missing references)
Event current = Event.current;
if (current == null || (int)current.type != 7)
{
return;
}
float value = Plugin.PanelSize.Value;
Rect val = default(Rect);
((Rect)(ref val))..ctor((float)Screen.width - value - 16f, 16f, value, value);
Vector2 val2 = default(Vector2);
((Vector2)(ref val2))..ctor(((Rect)(ref val)).x + value * 0.5f, ((Rect)(ref val)).y + value * 0.5f);
Color color = GUI.color;
GUI.color = new Color(0f, 0f, 0f, 0.55f);
GUI.DrawTexture(val, (Texture)(object)Texture2D.whiteTexture);
GUI.color = new Color(1f, 1f, 1f, 0.6f);
GUI.DrawTexture(new Rect(((Rect)(ref val)).x, ((Rect)(ref val)).y, value, 2f), (Texture)(object)Texture2D.whiteTexture);
GUI.DrawTexture(new Rect(((Rect)(ref val)).x, ((Rect)(ref val)).yMax - 2f, value, 2f), (Texture)(object)Texture2D.whiteTexture);
GUI.DrawTexture(new Rect(((Rect)(ref val)).x, ((Rect)(ref val)).y, 2f, value), (Texture)(object)Texture2D.whiteTexture);
GUI.DrawTexture(new Rect(((Rect)(ref val)).xMax - 2f, ((Rect)(ref val)).y, 2f, value), (Texture)(object)Texture2D.whiteTexture);
if (_hasPlayer)
{
float num = value * 0.5f - 3f;
int count = _trail.Count;
for (int i = 0; i < count; i++)
{
Vector2 val3 = (_trail[i] - _playerPos) * _pixelsPerUnit;
if (!(Mathf.Abs(val3.x) > num) && !(Mathf.Abs(val3.y) > num))
{
float num2 = ((count > 1) ? ((float)i / (float)(count - 1)) : 1f);
GUI.color = new Color(0.3f, 0.8f, 1f, 0.25f + 0.6f * num2);
GUI.DrawTexture(new Rect(val2.x + val3.x - 2f, val2.y - val3.y - 2f, 4f, 4f), (Texture)(object)Texture2D.whiteTexture);
}
}
GUI.color = new Color(1f, 0.25f, 0.2f, 1f);
GUI.DrawTexture(new Rect(val2.x - 4f, val2.y - 4f, 8f, 8f), (Texture)(object)Texture2D.whiteTexture);
float num3 = _headingDeg * ((float)Math.PI / 180f);
Vector2 val4 = default(Vector2);
((Vector2)(ref val4))..ctor(Mathf.Sin(num3), Mathf.Cos(num3));
GUI.color = Color.white;
for (int j = 1; j <= 3; j++)
{
float num4 = 6f + (float)j * 4f;
GUI.DrawTexture(new Rect(val2.x + val4.x * num4 - 2f, val2.y - val4.y * num4 - 2f, 4f, 4f), (Texture)(object)Texture2D.whiteTexture);
}
}
GUI.color = color;
}
}
[BepInPlugin("com.local.infernomap", "InfernoMap", "0.1.2")]
public class Plugin : BasePlugin
{
internal static ManualLogSource Logger;
internal static ConfigEntry<bool> StartVisible;
internal static ConfigEntry<bool> UseXZPlane;
internal static ConfigEntry<float> BreadcrumbSpacing;
internal static ConfigEntry<int> MaxBreadcrumbs;
internal static ConfigEntry<float> PixelsPerUnit;
internal static ConfigEntry<float> PanelSize;
internal static ConfigEntry<float> ClearOnJumpDistance;
internal static ConfigEntry<bool> ClearOnSceneChange;
internal static ConfigEntry<bool> DebugLog;
public override void Load()
{
//IL_0155: Unknown result type (might be due to invalid IL or missing references)
//IL_015b: Expected O, but got Unknown
Logger = ((BasePlugin)this).Log;
StartVisible = ((BasePlugin)this).Config.Bind<bool>("Map", "StartVisible", true, "Show the map when the game starts.");
UseXZPlane = ((BasePlugin)this).Config.Bind<bool>("Map", "UseXZPlane", true, "True: top-down uses world X/Z (Unity default, Y is up). False: uses X/Y.");
BreadcrumbSpacing = ((BasePlugin)this).Config.Bind<float>("Map", "BreadcrumbSpacing", 1f, "World distance between trail points.");
MaxBreadcrumbs = ((BasePlugin)this).Config.Bind<int>("Map", "MaxBreadcrumbs", 4000, "Oldest trail points are dropped past this count.");
PixelsPerUnit = ((BasePlugin)this).Config.Bind<float>("Map", "PixelsPerUnit", 6f, "Zoom level in screen pixels per world unit.");
PanelSize = ((BasePlugin)this).Config.Bind<float>("Map", "PanelSize", 260f, "Map panel width/height in pixels.");
ClearOnJumpDistance = ((BasePlugin)this).Config.Bind<float>("Maze", "ClearOnJumpDistance", 0f, "If you move farther than this in one frame (teleport/maze shift), clear the trail. 0 = off.");
ClearOnSceneChange = ((BasePlugin)this).Config.Bind<bool>("Maze", "ClearOnSceneChange", true, "Clear the trail when the active scene changes.");
DebugLog = ((BasePlugin)this).Config.Bind<bool>("Debug", "DebugLog", true, "Write a status line to the BepInEx log every 5 seconds.");
ClassInjector.RegisterTypeInIl2Cpp<MapOverlay>();
((BasePlugin)this).AddComponent<MapOverlay>();
ManualLogSource logger = Logger;
bool flag = default(bool);
BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(55, 2, ref flag);
if (flag)
{
((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>("InfernoMap");
((BepInExLogInterpolatedStringHandler)val).AppendLiteral(" ");
((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>("0.1.2");
((BepInExLogInterpolatedStringHandler)val).AppendLiteral(" loaded. Hotkeys: F6 toggle, F7 clear trail, =/- zoom.");
}
logger.LogInfo(val);
}
}
internal static class PluginInfo
{
public const string Guid = "com.local.infernomap";
public const string Name = "InfernoMap";
public const string Version = "0.1.2";
}