Mods/JLib.dll

Decompiled 3 hours ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BoneLib;
using BoneLib.BoneMenu;
using Il2CppInterop.Runtime.InteropTypes;
using Il2CppSLZ.Marrow;
using MelonLoader;
using MelonLoader.Preferences;
using MelonLoader.Utils;
using UnityEngine;
using jlib;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: MelonInfo(typeof(JLib), "JLib", "1.0.0", "Jorink", null)]
[assembly: MelonGame("Stress Level Zero", "BONELAB")]
[assembly: MelonColor(255, 255, 0, 0)]
[assembly: MelonAuthorColor(255, 255, 0, 0)]
[assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]
[assembly: AssemblyVersion("0.0.0.0")]
namespace jlib;

public class JLib : MelonMod
{
	public const string Version = "1.0.0";

	public static Page rootPage;

	public static Player_Health playerHealth;

	public override void OnInitializeMelon()
	{
		//IL_000a: Unknown result type (might be due to invalid IL or missing references)
		rootPage = Page.Root.CreatePage("Jorink", Color.red, 0, true);
		Hooking.OnLevelLoaded += OnLevelLoaded;
	}

	private void OnLevelLoaded(LevelInfo levelInfo)
	{
		playerHealth = ((Il2CppObjectBase)Player.RigManager.health).TryCast<Player_Health>();
	}

	public static ModPage Register(string name, Color color)
	{
		//IL_003b: Unknown result type (might be due to invalid IL or missing references)
		string text = Path.Combine(MelonEnvironment.UserDataDirectory, "Jorink");
		Directory.CreateDirectory(text);
		MelonPreferences_Category val = MelonPreferences.CreateCategory(name);
		val.SetFilePath(Path.Combine(text, name + ".cfg"));
		return new ModPage(rootPage.CreatePage(name, color, 0, true), val);
	}
}
public class ModPage
{
	public readonly Page page;

	public readonly MelonPreferences_Category category;

	internal ModPage(Page page, MelonPreferences_Category category)
	{
		this.page = page;
		this.category = category;
	}

	public MelonPreferences_Entry<bool> Bool(string name, bool defaultValue, Color color, Action<bool> onChange = null)
	{
		//IL_0035: Unknown result type (might be due to invalid IL or missing references)
		MelonPreferences_Entry<bool> entry = category.CreateEntry<bool>(name, defaultValue, (string)null, (string)null, false, false, (ValueValidator)null, (string)null);
		page.CreateBool(name, color, entry.Value, (Action<bool>)delegate(bool value)
		{
			Set(entry, value, onChange);
		});
		return entry;
	}

	public MelonPreferences_Entry<float> Float(string name, float defaultValue, float increment, float min, float max, Color color, Action<float> onChange = null)
	{
		//IL_0035: Unknown result type (might be due to invalid IL or missing references)
		MelonPreferences_Entry<float> entry = category.CreateEntry<float>(name, defaultValue, (string)null, (string)null, false, false, (ValueValidator)null, (string)null);
		page.CreateFloat(name, color, entry.Value, increment, min, max, (Action<float>)delegate(float value)
		{
			Set(entry, value, onChange);
		});
		return entry;
	}

	public MelonPreferences_Entry<int> Int(string name, int defaultValue, int increment, int min, int max, Color color, Action<int> onChange = null)
	{
		//IL_0035: Unknown result type (might be due to invalid IL or missing references)
		MelonPreferences_Entry<int> entry = category.CreateEntry<int>(name, defaultValue, (string)null, (string)null, false, false, (ValueValidator)null, (string)null);
		page.CreateInt(name, color, entry.Value, increment, min, max, (Action<int>)delegate(int value)
		{
			Set(entry, value, onChange);
		});
		return entry;
	}

	public ModPage SubPage(string name, Color color)
	{
		//IL_0007: Unknown result type (might be due to invalid IL or missing references)
		return new ModPage(page.CreatePage(name, color, 0, true), category);
	}

	public FunctionElement Function(string name, Color color, Action action)
	{
		//IL_0007: Unknown result type (might be due to invalid IL or missing references)
		return page.CreateFunction(name, color, action);
	}

	public MelonPreferences_Entry<T> Hidden<T>(string name, T defaultValue)
	{
		return category.CreateEntry<T>(name, defaultValue, (string)null, (string)null, false, false, (ValueValidator)null, (string)null);
	}

	public void Save<T>(MelonPreferences_Entry<T> entry, T value)
	{
		Set(entry, value, null);
	}

	private void Set<T>(MelonPreferences_Entry<T> entry, T value, Action<T> onChange)
	{
		entry.Value = value;
		category.SaveToFile(false);
		onChange?.Invoke(value);
	}
}