private static bool Prefix(MicroHID __instance, ref float value) { // NetworkEnergy is set each frame, so this is to prevent calling the method each frame. if (__instance.NetworkEnergy == value) { return(true); } var ev = new UsingMicroHIDEnergyEventArgs(Player.Get(__instance.gameObject), __instance, __instance.CurrentHidState, __instance.Energy, value); Handlers.Player.OnUsingMicroHIDEnergy(ev); if (!ev.IsAllowed) { return(false); } value = ev.NewValue; return(true); }
/// <summary> /// Called before a player's MicroHID energy is changed. /// </summary> /// <param name="ev">The <see cref="UsingMicroHIDEnergyEventArgs"/> instance.</param> public static void OnUsingMicroHIDEnergy(UsingMicroHIDEnergyEventArgs ev) => UsingMicroHIDEnergy.InvokeSafely(ev);