using ABI_RC.Core.Util.AssetFiltering; using MelonLoader; using NAK.PhysicsGunMod.Components; using NAK.PhysicsGunMod.HarmonyPatches; namespace NAK.PhysicsGunMod; public class PhysicsGunMod : MelonMod { internal static MelonLogger.Instance Logger; public override void OnInitializeMelon() { Logger = LoggerInstance; // add to prop whitelist SharedFilter._spawnableWhitelist.Add(typeof(PhysicsGunInteractionBehavior)); // add to event whitelist SharedFilter._allowedEventComponents.Add(typeof(PhysicsGunInteractionBehavior)); SharedFilter._allowedEventFunctions.Add(typeof(PhysicsGunInteractionBehavior), new List { "set_enabled", // TODO: expose more methods like release ? }); // apply patches ApplyPatches(typeof(CVRInputManagerPatches)); } private void ApplyPatches(Type type) { try { HarmonyInstance.PatchAll(type); } catch (Exception e) { LoggerInstance.Msg($"Failed while patching {type.Name}!"); LoggerInstance.Error(e); } } }