From 852520973cfcf1cc21e0385620c217ed89f55688 Mon Sep 17 00:00:00 2001 From: NotAKidoS <37721153+NotAKidoS@users.noreply.github.com> Date: Sun, 25 Aug 2024 15:19:45 -0500 Subject: [PATCH] Stickers: scrollwheel to switch selected sticker --- Stickers/Main.cs | 9 +++++++++ Stickers/Stickers/StickerSystem.Main.cs | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Stickers/Main.cs b/Stickers/Main.cs index 310e198..33efcee 100644 --- a/Stickers/Main.cs +++ b/Stickers/Main.cs @@ -1,4 +1,5 @@ using ABI_RC.Core.Player; +using ABI_RC.Systems.InputManagement; using MelonLoader; using NAK.Stickers.Integrations; using NAK.Stickers.Networking; @@ -31,6 +32,14 @@ public class StickerMod : MelonMod public override void OnUpdate() { + if (StickerSystem.Instance == null) + return; + + if (Input.mouseScrollDelta.y != 0f + && Cursor.lockState == CursorLockMode.Locked // prevent scrolling while in menus + && !CVRInputManager.Instance.zoom) // prevent scrolling while using scroll zoom + StickerSystem.Instance.SelectedStickerSlot += (int)Input.mouseScrollDelta.y; + if (!ModSettings.Entry_UsePlaceBinding.Value) return; diff --git a/Stickers/Stickers/StickerSystem.Main.cs b/Stickers/Stickers/StickerSystem.Main.cs index cf46232..24338bd 100644 --- a/Stickers/Stickers/StickerSystem.Main.cs +++ b/Stickers/Stickers/StickerSystem.Main.cs @@ -38,7 +38,7 @@ public partial class StickerSystem get => _selectedStickerSlot; set { - _selectedStickerSlot = Mathf.Clamp(value, 0, ModSettings.MaxStickerSlots - 1); + _selectedStickerSlot = value < 0 ? ModSettings.MaxStickerSlots - 1 : value % ModSettings.MaxStickerSlots; IsInStickerMode = IsInStickerMode; // refresh sticker mode } }