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(); } 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(string name, bool defaultValue, Color color, Action onChange = null) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) MelonPreferences_Entry entry = category.CreateEntry(name, defaultValue, (string)null, (string)null, false, false, (ValueValidator)null, (string)null); page.CreateBool(name, color, entry.Value, (Action)delegate(bool value) { Set(entry, value, onChange); }); return entry; } public MelonPreferences_Entry Float(string name, float defaultValue, float increment, float min, float max, Color color, Action onChange = null) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) MelonPreferences_Entry entry = category.CreateEntry(name, defaultValue, (string)null, (string)null, false, false, (ValueValidator)null, (string)null); page.CreateFloat(name, color, entry.Value, increment, min, max, (Action)delegate(float value) { Set(entry, value, onChange); }); return entry; } public MelonPreferences_Entry Int(string name, int defaultValue, int increment, int min, int max, Color color, Action onChange = null) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) MelonPreferences_Entry entry = category.CreateEntry(name, defaultValue, (string)null, (string)null, false, false, (ValueValidator)null, (string)null); page.CreateInt(name, color, entry.Value, increment, min, max, (Action)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 Hidden(string name, T defaultValue) { return category.CreateEntry(name, defaultValue, (string)null, (string)null, false, false, (ValueValidator)null, (string)null); } public void Save(MelonPreferences_Entry entry, T value) { Set(entry, value, null); } private void Set(MelonPreferences_Entry entry, T value, Action onChange) { entry.Value = value; category.SaveToFile(false); onChange?.Invoke(value); } }