Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of Advanced Emote Picker v1.3.1
plugins/CustomEmotesAdvancedPicker.dll
Decompiled 4 months agousing System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using EmotesAPI; using HG.Reflection; using On.RoR2.UI; using RiskOfOptions; using RiskOfOptions.OptionConfigs; using RiskOfOptions.Options; using RoR2; using RoR2.UI; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Events; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: OptIn] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("CustomEmotesAdvancedPicker")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("CustomEmotesAdvancedPicker")] [assembly: AssemblyTitle("CustomEmotesAdvancedPicker")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] namespace CustomEmotesAdvancedPicker; [Serializable] [BepInPlugin("com.brynzananas.customemotesadvancedpicker", "Custom Emotes Advanced Picker", "1.3.1")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Main : BaseUnityPlugin { public class NewPicker : MonoBehaviour { private TextMeshProUGUI currentEmoteText; public bool edit = false; public bool addingEmote = false; private void OnEnable() { BoneMapper localMapper = CustomEmotesAPI.localMapper; currentEmoteText = ((Component)((Component)this).transform.Find("CurrentEmotePanel/text")).GetComponent<TextMeshProUGUI>(); if ((Object)(object)localMapper != (Object)null) { ((TMP_Text)currentEmoteText).text = "Current Emote: \n" + localMapper.currentClipName; } ScrollRect component = ((Component)((Component)this).transform.Find("AllEmotesPanel")).GetComponent<ScrollRect>(); component.scrollSensitivity = Sensivity.Value; component = ((Component)((Component)this).transform.Find("CustomEmotesPanel")).GetComponent<ScrollRect>(); component.scrollSensitivity = Sensivity.Value; } private void OnDisable() { //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) if (HoldAndRelease.Value) { if (Object.op_Implicit((Object)(object)selected)) { try { CustomEmotesAPI.PlayAnimation(((Object)selected).name, -2); } catch { } } else if (!continueEmote) { try { CustomEmotesAPI.PlayAnimation("none", -2); } catch { } } } if (Object.op_Implicit((Object)(object)selected)) { ((Graphic)selected.GetComponent<Image>()).color = inactiveColorConfig.Value; selected.transform.localScale = Vector3.one; } ((Graphic)((Component)((Component)this).transform.Find("CurrentEmotePanel")).GetComponent<Image>()).color = inactiveColorConfig.Value; continueEmote = false; if (Object.op_Implicit((Object)(object)dragged)) { Object.Destroy((Object)(object)dragged); } } private void Update() { //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) BoneMapper localMapper = CustomEmotesAPI.localMapper; if ((Object)(object)localMapper != (Object)null) { ((TMP_Text)currentEmoteText).text = "Current Emote: \n" + localMapper.currentClipName; } Transform val = ((Component)this).transform.Find("CustomEmotesPanel"); KeyboardShortcut value = AddCurrentEmoteConfig.Value; if (Input.GetKeyDown(((KeyboardShortcut)(ref value)).MainKey) && Object.op_Implicit((Object)(object)localMapper) && localMapper.currentClipName != "none") { AddCurrentEmote(); } value = SwitchList.Value; if (Input.GetKeyDown(((KeyboardShortcut)(ref value)).MainKey)) { SwitchListMethod(); } value = BindCurrentEmoteConfig.Value; if (Input.GetKeyDown(((KeyboardShortcut)(ref value)).MainKey)) { BindCurrentEmoteMethod(); } } } public class EmoteClick : MonoBehaviour, IPointerClickHandler, IEventSystemHandler, IPointerEnterHandler, IPointerExitHandler, IBeginDragHandler, IDragHandler, IDropHandler, IEndDragHandler { private string text; private Image image; public NewPicker hudComponent; public int index; public bool change = false; private GameObject allPanel; private GameObject customPanel; public Canvas canvas; public Transform previousTransform; private RectTransform rectTransform; private bool isDragging = false; private GameObject keyPicker; public void OnPointerClick(PointerEventData eventData) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Invalid comparison between Unknown and I4 //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Invalid comparison between Unknown and I4 //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Invalid comparison between Unknown and I4 //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Invalid comparison between Unknown and I4 //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) if (hudComponent.addingEmote && (int)eventData.button == 0) { if (PreventDupicates.Value) { string[] array = GetConfigString().Split("*"); if (array.Length != 0 && array.Contains(((Object)((Component)this).gameObject).name)) { GameObject val = Object.Instantiate<GameObject>(Effect, trueHud.transform); ((TMP_Text)val.GetComponent<TextMeshProUGUI>()).text = "Emote " + ((Object)((Component)this).gameObject).name + " has been already added"; return; } } GameObject val2 = Object.Instantiate<GameObject>(((Component)this).gameObject, customPanel.transform.Find("scroll")); ((Object)val2).name = ((Object)((Component)this).gameObject).name; CustomEmotes.Value = GenerateCustomEmotesString(); ((Graphic)val2.GetComponent<Image>()).color = inactiveColorConfig.Value; GameObject val3 = Object.Instantiate<GameObject>(Effect, trueHud.transform); ((TMP_Text)val3.GetComponent<TextMeshProUGUI>()).text = "Added " + ((Object)((Component)this).gameObject).name; return; } if (hudComponent.addingEmote && (int)eventData.button == 1) { try { CustomEmotesAPI.PlayAnimation(((Object)((Component)this).gameObject).name, -2); return; } catch { return; } } if (((Input.GetKey((KeyCode)323) && (int)eventData.button == 1) || (Input.GetKey((KeyCode)324) && (int)eventData.button == 0)) && !change && !isDragging && !hudComponent.edit) { keybindEmotes[((Object)((Component)this).gameObject).name].Value = new KeyboardShortcut((KeyCode)0, Array.Empty<KeyCode>()); } else if ((int)eventData.button == 1 && !change && !isDragging && !hudComponent.edit && !keyPicker.activeSelf) { keyPicker.GetComponent<AddKeybind>().emote = ((Object)((Component)this).gameObject).name; keyPicker.GetComponent<AddKeybind>().emoteOrNot = true; keyPicker.SetActive(true); } else if (Input.GetKey((KeyCode)324) && (int)eventData.button == 0 && !change && !isDragging && hudComponent.edit) { GameObject val4 = Object.Instantiate<GameObject>(Effect, trueHud.transform); ((TMP_Text)val4.GetComponent<TextMeshProUGUI>()).text = "Removed " + ((Object)((Component)this).gameObject).name; Object.Destroy((Object)(object)((Component)this).gameObject); } else if ((int)eventData.button == 0 && !change && !isDragging) { try { CustomEmotesAPI.PlayAnimation(((Object)((Component)this).gameObject).name, -2); } catch { } if (CloseMenu.Value) { trueHud.SetActive(false); ToggleCursor(); } } } private void OnDestroy() { CustomEmotes.Value = GenerateCustomEmotesString(); } public void OnPointerEnter(PointerEventData eventData) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) selected = ((Component)this).gameObject; ((Graphic)image).color = activeColorConfig.Value; ((Component)this).transform.localScale = new Vector3(1.1f, 1.1f, 1.1f); } public void OnPointerExit(PointerEventData eventData) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) selected = null; ((Graphic)image).color = inactiveColorConfig.Value; ((Component)this).transform.localScale = Vector3.one; } private void Start() { text = ((TMP_Text)((Component)((Component)this).transform.Find("EmoteName")).GetComponent<TextMeshProUGUI>()).text; image = ((Component)this).GetComponent<Image>(); hudComponent = trueHud.GetComponent<NewPicker>(); canvas = trueHud.GetComponent<Canvas>(); allPanel = ((Component)trueHud.transform.Find("AllEmotesPanel")).gameObject; customPanel = ((Component)trueHud.transform.Find("CustomEmotesPanel")).gameObject; rectTransform = ((Component)this).GetComponent<RectTransform>(); keyPicker = ((Component)trueHud.transform.Find("KeybindingEmote")).gameObject; } private void Update() { } public void OnBeginDrag(PointerEventData eventData) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Invalid comparison between Unknown and I4 if (hudComponent.edit && (int)eventData.button <= 0) { previousTransform = ((Component)this).transform.parent; index = ((Component)this).transform.GetSiblingIndex(); ((Component)this).transform.SetParent(((Component)canvas).transform); ((Component)this).transform.SetAsLastSibling(); ((Graphic)((Component)this).GetComponent<Image>()).raycastTarget = false; Debug.Log((object)((Graphic)((Component)this).GetComponent<Image>()).raycastTarget); isDragging = true; dragged = ((Component)this).gameObject; } } public void OnDrag(PointerEventData eventData) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Invalid comparison between Unknown and I4 //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) if (hudComponent.edit && (int)eventData.button <= 0) { RectTransform obj = rectTransform; obj.anchoredPosition += eventData.delta / canvas.scaleFactor; } } public void OnDrop(PointerEventData eventData) { if (hudComponent.edit) { Debug.Log((object)((Component)this).gameObject); Debug.Log((object)eventData.pointerDrag); eventData.pointerDrag.GetComponent<EmoteClick>().change = true; eventData.pointerDrag.transform.SetParent(((Component)this).transform.parent); eventData.pointerDrag.transform.SetSiblingIndex(((Component)this).transform.GetSiblingIndex()); eventData.pointerDrag.GetComponent<EmoteClick>().isDragging = false; CustomEmotes.Value = GenerateCustomEmotesString(); } } public void OnEndDrag(PointerEventData eventData) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Invalid comparison between Unknown and I4 //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) if (!hudComponent.edit || (int)eventData.button > 0) { return; } List<RaycastResult> list = new List<RaycastResult>(); ((BaseRaycaster)((Component)hudComponent).gameObject.GetComponent<GraphicRaycaster>()).Raycast(eventData, list); foreach (RaycastResult item in list) { RaycastResult current = item; Debug.Log((object)((RaycastResult)(ref current)).gameObject); } if (!change) { ((Component)this).transform.SetParent(previousTransform); ((Component)this).transform.SetSiblingIndex(index); } change = false; ((Graphic)((Component)this).GetComponent<Image>()).raycastTarget = true; isDragging = false; dragged = null; } } public class ContinueEmote : MonoBehaviour, IPointerEnterHandler, IEventSystemHandler, IPointerExitHandler, IPointerClickHandler { private Image image; private void Start() { image = ((Component)this).GetComponent<Image>(); } public void OnPointerEnter(PointerEventData eventData) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) continueEmote = true; ((Graphic)image).color = activeColorConfig.Value; } public void OnPointerExit(PointerEventData eventData) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) continueEmote = false; ((Graphic)image).color = inactiveColorConfig.Value; } public void OnPointerClick(PointerEventData eventData) { CustomEmotesAPI.PlayAnimation("none", -2); trueHud.SetActive(false); ToggleCursor(); } } public class CreatePanel : MonoBehaviour, IPointerClickHandler, IEventSystemHandler { private GameObject allPanel; private GameObject customPanel; public void OnPointerClick(PointerEventData eventData) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Invalid comparison between Unknown and I4 if ((int)eventData.button == 1) { ((Component)trueHud.transform.Find("KeybindingEmote")).GetComponent<AddKeybind>().emote = "CreateNewPanel"; ((Component)trueHud.transform.Find("KeybindingEmote")).GetComponent<AddKeybind>().emoteOrNot = false; ((Component)trueHud.transform.Find("KeybindingEmote")).gameObject.SetActive(true); } else { SwitchListMethod(); } } private void Start() { allPanel = ((Component)trueHud.transform.Find("AllEmotesPanel")).gameObject; customPanel = ((Component)trueHud.transform.Find("CustomEmotesPanel")).gameObject; } private void Update() { } } public class AddOrDelete : MonoBehaviour, IPointerClickHandler, IEventSystemHandler, IDropHandler { private GameObject allPanel; private GameObject customPanel; public void OnDrop(PointerEventData eventData) { if (Object.op_Implicit((Object)(object)eventData.pointerDrag.GetComponent<EmoteClick>())) { Object.Destroy((Object)(object)eventData.pointerDrag); CustomEmotes.Value = GenerateCustomEmotesString(); } } public void OnPointerClick(PointerEventData eventData) { ((Component)trueHud.transform).GetComponent<NewPicker>().addingEmote = true; allPanel.SetActive(true); customPanel.SetActive(false); ((Component)trueHud.transform).GetComponent<NewPicker>().edit = false; ((TMP_Text)((Component)trueHud.transform.Find("CreateNewPanel/text")).GetComponent<TextMeshProUGUI>()).text = "Click to end adding emotes"; } private void Start() { allPanel = ((Component)trueHud.transform.Find("AllEmotesPanel")).gameObject; customPanel = ((Component)trueHud.transform.Find("CustomEmotesPanel")).gameObject; } private void Update() { } } public class AddedEffect : MonoBehaviour { private RectTransform rectTransform; private float timer = 0f; private TextMeshProUGUI text; private void Start() { rectTransform = ((Component)this).GetComponent<RectTransform>(); text = ((Component)this).GetComponent<TextMeshProUGUI>(); } private void Update() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) RectTransform obj = rectTransform; obj.anchoredPosition += new Vector2(0f, 60f * Time.deltaTime); timer += Time.deltaTime; ((Graphic)text).color = new Color(1f, 1f, 1f, 1f - timer); if (timer > 1f) { Object.Destroy((Object)(object)((Component)this).gameObject); } } } public class AddKeybind : MonoBehaviour, IPointerClickHandler, IEventSystemHandler { private RectTransform rectTransform; private float timer = 0f; private TextMeshProUGUI text; public string emote; public bool emoteOrNot; private KeyCode keyToBind; private void OnEnable() { if (emoteOrNot) { ((TMP_Text)((Component)((Component)this).transform.Find("text")).GetComponent<TextMeshProUGUI>()).text = "Press a button to bind \"" + emote + "\" emote to it"; } else { ((TMP_Text)((Component)((Component)this).transform.Find("text")).GetComponent<TextMeshProUGUI>()).text = "Press a button to bind \"" + emote + "\" keybind"; } } private void Update() { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Invalid comparison between Unknown and I4 //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Invalid comparison between Unknown and I4 //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Invalid comparison between Unknown and I4 //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) if (!Input.anyKeyDown) { return; } foreach (KeyCode value in Enum.GetValues(typeof(KeyCode))) { if (!Input.GetKey(value)) { continue; } keyToBind = value; if ((int)value == 323 || (int)value == 324) { break; } if ((int)value == 27) { if (emoteOrNot) { keybindEmotes[emote].Value = new KeyboardShortcut((KeyCode)0, Array.Empty<KeyCode>()); } else { switch (emote) { case "CreateNewPanel": SwitchList.Value = new KeyboardShortcut((KeyCode)0, Array.Empty<KeyCode>()); break; case "AddCurrentEmote": AddCurrentEmoteConfig.Value = new KeyboardShortcut((KeyCode)0, Array.Empty<KeyCode>()); break; case "BindEmotePanel": BindCurrentEmoteConfig.Value = new KeyboardShortcut((KeyCode)0, Array.Empty<KeyCode>()); break; } } } else if (emoteOrNot) { keybindEmotes[emote].Value = new KeyboardShortcut(value, Array.Empty<KeyCode>()); } else { switch (emote) { case "CreateNewPanel": SwitchList.Value = new KeyboardShortcut(value, Array.Empty<KeyCode>()); break; case "AddCurrentEmote": AddCurrentEmoteConfig.Value = new KeyboardShortcut(value, Array.Empty<KeyCode>()); break; case "BindEmotePanel": BindCurrentEmoteConfig.Value = new KeyboardShortcut(value, Array.Empty<KeyCode>()); break; } } ((Component)this).gameObject.SetActive(false); break; } } public void OnPointerClick(PointerEventData eventData) { foreach (GameObject item in eventData.hovered) { if (((Object)item).name.Contains("cancel")) { ((Component)this).gameObject.SetActive(false); } } } } public class HighlightEmote : MonoBehaviour, IPointerEnterHandler, IEventSystemHandler { private Image Image; private float timer = 0f; public void OnPointerEnter(PointerEventData eventData) { Object.Destroy((Object)(object)this); } private void OnDestroy() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) ((Component)this).transform.localScale = Vector3.one; ((Graphic)Image).color = inactiveColorConfig.Value; } private void Start() { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) Image = ((Component)this).GetComponent<Image>(); ((Graphic)Image).color = activeColorConfig.Value; ((Component)this).transform.localScale = new Vector3(1.25f, 1.25f, 1.25f); } private void Update() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) Vector3 val = Vector3.MoveTowards(new Vector3(((Graphic)Image).color.r, ((Graphic)Image).color.g, ((Graphic)Image).color.b), new Vector3(inactiveColorConfig.Value.r, inactiveColorConfig.Value.g, inactiveColorConfig.Value.b), 0.5f * Time.deltaTime); ((Graphic)Image).color = new Color(val.x, val.y, val.z); ((Component)this).transform.localScale = Vector3.MoveTowards(((Component)this).transform.localScale, Vector3.one, 0.5f * Time.deltaTime); timer += Time.deltaTime; if (timer > 1f) { Object.Destroy((Object)(object)this); } } } public class SettingsComponent : MonoBehaviour, IPointerClickHandler, IEventSystemHandler { public void OnPointerClick(PointerEventData eventData) { if (((Object)eventData.hovered[0].transform.parent).name.Contains("EnableDuplicates") || ((Object)eventData.hovered[0]).name.Contains("EnableDuplicates")) { if (PreventDupicates.Value) { PreventDupicates.Value = false; } else { PreventDupicates.Value = true; } } if (((Object)eventData.hovered[0].transform.parent).name.Contains("CloseAfterSelection") || ((Object)eventData.hovered[0]).name.Contains("CloseAfterSelection")) { if (CloseMenu.Value) { CloseMenu.Value = false; } else { CloseMenu.Value = true; } } } } public class BindCurrentEmote : MonoBehaviour, IPointerClickHandler, IEventSystemHandler { private GameObject keyPicker; public void OnPointerClick(PointerEventData eventData) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Invalid comparison between Unknown and I4 if ((int)eventData.button == 1) { ((Component)trueHud.transform.Find("KeybindingEmote")).GetComponent<AddKeybind>().emote = "BindEmotePanel"; ((Component)trueHud.transform.Find("KeybindingEmote")).GetComponent<AddKeybind>().emoteOrNot = false; ((Component)trueHud.transform.Find("KeybindingEmote")).gameObject.SetActive(true); } else { BindCurrentEmoteMethod(); } } } public class AddCurrentEmoteComponent : MonoBehaviour, IPointerClickHandler, IEventSystemHandler { public void OnPointerClick(PointerEventData eventData) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Invalid comparison between Unknown and I4 if ((int)eventData.button == 1) { ((Component)trueHud.transform.Find("KeybindingEmote")).GetComponent<AddKeybind>().emote = "AddCurrentEmote"; ((Component)trueHud.transform.Find("KeybindingEmote")).GetComponent<AddKeybind>().emoteOrNot = false; ((Component)trueHud.transform.Find("KeybindingEmote")).gameObject.SetActive(true); } else { AddCurrentEmote(); } } } public class DoIReallyNeedToAddAnotherComponent : MonoBehaviour, IPointerClickHandler, IEventSystemHandler { public void OnPointerClick(PointerEventData eventData) { GameObject gameObject = ((Component)trueHud.transform.Find("DOCUMENTATION!!!")).gameObject; if (!gameObject.activeSelf) { gameObject.SetActive(true); } else { gameObject.SetActive(false); } } } public const string ModGuid = "com.brynzananas.customemotesadvancedpicker"; public const string ModName = "Custom Emotes Advanced Picker"; public const string ModVer = "1.3.1"; public static AssetBundle UnityAssets; public static GameObject HudObject; public static GameObject EmoteObject; public static GameObject Effect; public static Material FontMaterial; public static Material FontMaterial2; public static Vector3 mousePosition; public static GameObject selected; public static GameObject dragged; public static Sprite inactiveSprite; public static Sprite activeSprite; public static Color activeColor = new Color(1f, 0.8f, 0f); public static Color inactiveColor = Color.white; public static bool continueEmote = false; public static ConfigEntry<KeyboardShortcut> NewEmoteMenu; public static ConfigEntry<KeyboardShortcut> CustomRandomEmote; public static ConfigEntry<KeyboardShortcut> BindCurrentEmoteConfig; public static ConfigEntry<KeyboardShortcut> AddCurrentEmoteConfig; public static ConfigEntry<KeyboardShortcut> SwitchList; public static ConfigEntry<bool> CloseMenu; public static ConfigEntry<bool> HoldAndRelease; public static ConfigEntry<float> Sensivity; public static ConfigEntry<string> CustomEmotes; public static ConfigEntry<bool> PreventDupicates; public static ConfigEntry<bool> Sort; public static ConfigEntry<Color> activeColorConfig; public static ConfigEntry<Color> inactiveColorConfig; public static ConfigEntry<Color> textColor; public static ConfigEntry<Color> outlineColor; public static ConfigEntry<Color> textColorKey; public static ConfigEntry<Color> outlineColorKey; public static ConfigEntry<Color> backgroundColor; public static ConfigEntry<int> Scale; public static ConfigEntry<float> TextScale; public static ConfigEntry<bool> ShowButton1; public static ConfigEntry<bool> ShowButton2; public static ConfigEntry<bool> ShowButton3; public static ConfigEntry<bool> ShowButton4; public static ConfigEntry<bool> ShowSettings; public static Dictionary<ConfigEntry<KeyboardShortcut>, string> emoteKeybinds = new Dictionary<ConfigEntry<KeyboardShortcut>, string>(); public static Dictionary<string, ConfigEntry<KeyboardShortcut>> keybindEmotes = new Dictionary<string, ConfigEntry<KeyboardShortcut>>(); public static GameObject trueHud; private HUD MenuHud = null; public ChatBox chatBox; public static PluginInfo PInfo { get; private set; } public void Awake() { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_0206: Unknown result type (might be due to invalid IL or missing references) //IL_0239: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02d8: Unknown result type (might be due to invalid IL or missing references) //IL_0310: Unknown result type (might be due to invalid IL or missing references) //IL_05cf: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Expected O, but got Unknown //IL_05eb: Unknown result type (might be due to invalid IL or missing references) //IL_05f5: Expected O, but got Unknown //IL_05f0: Unknown result type (might be due to invalid IL or missing references) //IL_05fa: Expected O, but got Unknown //IL_0600: Unknown result type (might be due to invalid IL or missing references) //IL_060a: Expected O, but got Unknown //IL_0610: Unknown result type (might be due to invalid IL or missing references) //IL_061a: Expected O, but got Unknown //IL_0620: Unknown result type (might be due to invalid IL or missing references) //IL_062a: Expected O, but got Unknown //IL_0630: Unknown result type (might be due to invalid IL or missing references) //IL_063a: Expected O, but got Unknown //IL_0640: Unknown result type (might be due to invalid IL or missing references) //IL_064a: Expected O, but got Unknown //IL_0650: Unknown result type (might be due to invalid IL or missing references) //IL_065a: Expected O, but got Unknown //IL_0660: Unknown result type (might be due to invalid IL or missing references) //IL_066a: Expected O, but got Unknown //IL_0670: Unknown result type (might be due to invalid IL or missing references) //IL_067a: Expected O, but got Unknown //IL_0680: Unknown result type (might be due to invalid IL or missing references) //IL_068a: Expected O, but got Unknown //IL_0690: Unknown result type (might be due to invalid IL or missing references) //IL_069a: Expected O, but got Unknown //IL_06a0: Unknown result type (might be due to invalid IL or missing references) //IL_06a5: Unknown result type (might be due to invalid IL or missing references) //IL_06ac: Unknown result type (might be due to invalid IL or missing references) //IL_06b9: Expected O, but got Unknown //IL_06b4: Unknown result type (might be due to invalid IL or missing references) //IL_06be: Expected O, but got Unknown //IL_06c4: Unknown result type (might be due to invalid IL or missing references) //IL_06c9: Unknown result type (might be due to invalid IL or missing references) //IL_06d4: Unknown result type (might be due to invalid IL or missing references) //IL_06e4: Expected O, but got Unknown //IL_06df: Unknown result type (might be due to invalid IL or missing references) //IL_06e9: Expected O, but got Unknown //IL_06ef: Unknown result type (might be due to invalid IL or missing references) //IL_06f9: Expected O, but got Unknown //IL_06ff: Unknown result type (might be due to invalid IL or missing references) //IL_0709: Expected O, but got Unknown //IL_070f: Unknown result type (might be due to invalid IL or missing references) //IL_0719: Expected O, but got Unknown //IL_071f: Unknown result type (might be due to invalid IL or missing references) //IL_0729: Expected O, but got Unknown //IL_072f: Unknown result type (might be due to invalid IL or missing references) //IL_0739: Expected O, but got Unknown //IL_073f: Unknown result type (might be due to invalid IL or missing references) //IL_0749: Expected O, but got Unknown //IL_074f: Unknown result type (might be due to invalid IL or missing references) //IL_0759: Expected O, but got Unknown //IL_075f: Unknown result type (might be due to invalid IL or missing references) //IL_0769: Expected O, but got Unknown //IL_076f: Unknown result type (might be due to invalid IL or missing references) //IL_0779: Expected O, but got Unknown //IL_077f: Unknown result type (might be due to invalid IL or missing references) //IL_0789: Expected O, but got Unknown //IL_078f: Unknown result type (might be due to invalid IL or missing references) //IL_0799: Expected O, but got Unknown //IL_079f: Unknown result type (might be due to invalid IL or missing references) //IL_07a9: Expected O, but got Unknown NewEmoteMenu = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>("General", "New Emote Picker", new KeyboardShortcut((KeyCode)104, Array.Empty<KeyCode>()), "Displays the new emote picker"); CustomRandomEmote = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>("General", "Random Emote", new KeyboardShortcut((KeyCode)106, Array.Empty<KeyCode>()), "Plays random emote from your custom emote list"); BindCurrentEmoteConfig = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>("General", "Bind Current Emote", new KeyboardShortcut((KeyCode)118, Array.Empty<KeyCode>()), "Start binding current emote"); AddCurrentEmoteConfig = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>("General", "Add Current Emote", new KeyboardShortcut((KeyCode)98, Array.Empty<KeyCode>()), "Adds current emote to custom emote list"); SwitchList = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>("General", "Switch List", new KeyboardShortcut((KeyCode)325, Array.Empty<KeyCode>()), "Switch between lists"); CloseMenu = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Close Menu After Selecting", true, "Close menu after selecting emote?"); HoldAndRelease = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Hold And Release", false, "Pick emote by holding and releasing the button"); Sensivity = ((BaseUnityPlugin)this).Config.Bind<float>("General", "Scroll Sensivity", 48f, "Control scroll sensivity"); PreventDupicates = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Prevent Adding Duplicates", true, "Prevents emote addition to the custom emote list if it's already there"); Sort = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Sort Emotes", true, "Sorts emotes in all emotes panel. Needs restart if hud has been already built"); CustomEmotes = ((BaseUnityPlugin)this).Config.Bind<string>("General", "Custom Emotes List", "", "Do not try to edit it here!"); Scale = ((BaseUnityPlugin)this).Config.Bind<int>("UI", "Scale", 8, "Control the scale of emote list slot"); TextScale = ((BaseUnityPlugin)this).Config.Bind<float>("UI", "Text Scale", 30f, "Control the scale of emote list maximum text size"); inactiveColorConfig = ((BaseUnityPlugin)this).Config.Bind<Color>("UI", "Slot Color", new Color(0.8f, 0.8f, 0.8f), "Control the color of emote list slot"); activeColorConfig = ((BaseUnityPlugin)this).Config.Bind<Color>("UI", "Active Slot Color", new Color(1f, 0.8f, 0f), "Control the color of active emote list slot"); textColor = ((BaseUnityPlugin)this).Config.Bind<Color>("UI", "Text Color", Color.white, "Control the color of text"); outlineColor = ((BaseUnityPlugin)this).Config.Bind<Color>("UI", "Outline Color", Color.black, "Control the color of text outline"); textColorKey = ((BaseUnityPlugin)this).Config.Bind<Color>("UI", "Second Text Color", new Color(1f, 0.8f, 0f), "Control the color of text for keybinds"); outlineColorKey = ((BaseUnityPlugin)this).Config.Bind<Color>("UI", "Second Outline Color", Color.black, "Control the color of text outline for keybinds"); backgroundColor = ((BaseUnityPlugin)this).Config.Bind<Color>("UI", "Background Color", new Color(0f, 0f, 0f, 0.8f), "Control the color of background"); ShowButton1 = ((BaseUnityPlugin)this).Config.Bind<bool>("UI", "Show Switch List button?", true, ""); ShowButton2 = ((BaseUnityPlugin)this).Config.Bind<bool>("UI", "Show Current Emote button?", true, ""); ShowButton3 = ((BaseUnityPlugin)this).Config.Bind<bool>("UI", "Show Add Current Emote button?", true, ""); ShowButton4 = ((BaseUnityPlugin)this).Config.Bind<bool>("UI", "Show Bind Current Emote button?", true, ""); ShowSettings = ((BaseUnityPlugin)this).Config.Bind<bool>("UI", "Show Settings?", true, ""); PInfo = ((BaseUnityPlugin)this).Info; UnityAssets = AssetBundle.LoadFromFile(Path.Combine(Path.GetDirectoryName(PInfo.Location), "assetbundles", "customemotesadvancedpicker")); HudObject = UnityAssets.LoadAsset<GameObject>("Assets/CustomEmotes/EmotePicker.prefab"); EmoteObject = UnityAssets.LoadAsset<GameObject>("Assets/CustomEmotes/Emote.prefab"); activeSprite = UnityAssets.LoadAsset<Sprite>("Assets/CustomEmotes/texUICheckboxes_1.png"); inactiveSprite = UnityAssets.LoadAsset<Sprite>("Assets/CustomEmotes/texUICheckboxes_0.png"); Effect = UnityAssets.LoadAsset<GameObject>("Assets/CustomEmotes/AddedEffect.prefab"); FontMaterial = UnityAssets.LoadAsset<Material>("Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Roboto-Bold SDF.asset"); FontMaterial2 = UnityAssets.LoadAsset<Material>("Assets/CustomEmotes/Font2.asset"); Effect.AddComponent<AddedEffect>(); HudObject.AddComponent<NewPicker>(); EmoteObject.AddComponent<EmoteClick>(); ((Component)HudObject.transform.Find("CurrentEmotePanel")).gameObject.AddComponent<ContinueEmote>(); ((Component)HudObject.transform.Find("CreateNewPanel")).gameObject.AddComponent<CreatePanel>(); ((LayoutGroup)((Component)HudObject.transform.Find("CustomEmotesPanel/scroll")).gameObject.GetComponent<GridLayoutGroup>()).childAlignment = (TextAnchor)4; ((Component)HudObject.transform.Find("CustomEmotesPanel/AddAndDelete")).gameObject.AddComponent<AddOrDelete>(); ((LayoutGroup)((Component)HudObject.transform.Find("AllEmotesPanel/scroll")).gameObject.GetComponent<GridLayoutGroup>()).childAlignment = (TextAnchor)4; ((Component)HudObject.transform.Find("KeybindingEmote")).gameObject.AddComponent<AddKeybind>(); ((Component)HudObject.transform.Find("Settings")).gameObject.AddComponent<SettingsComponent>(); ((Component)HudObject.transform.Find("BindEmotePanel")).gameObject.AddComponent<BindCurrentEmote>(); ((Component)HudObject.transform.Find("AddCurrentEmote")).gameObject.AddComponent<AddCurrentEmoteComponent>(); HUD.Awake += new hook_Awake(AwakeMyHud); ModSettingsManager.AddOption((BaseOption)new GenericButtonOption("Open Emote List", "General", new UnityAction(ConfigOpen))); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(NewEmoteMenu)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(CustomRandomEmote)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(BindCurrentEmoteConfig)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(AddCurrentEmoteConfig)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(SwitchList)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(CloseMenu)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(HoldAndRelease)); ModSettingsManager.AddOption((BaseOption)new FloatFieldOption(Sensivity)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(PreventDupicates)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(Sort)); ModSettingsManager.AddOption((BaseOption)new IntSliderOption(Scale, new IntSliderConfig { min = 1, max = 40 })); ModSettingsManager.AddOption((BaseOption)new SliderOption(TextScale, new SliderConfig { min = 12f, max = 64f })); ModSettingsManager.AddOption((BaseOption)new ColorOption(inactiveColorConfig)); ModSettingsManager.AddOption((BaseOption)new ColorOption(activeColorConfig)); ModSettingsManager.AddOption((BaseOption)new ColorOption(textColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(outlineColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(textColorKey)); ModSettingsManager.AddOption((BaseOption)new ColorOption(outlineColorKey)); ModSettingsManager.AddOption((BaseOption)new ColorOption(backgroundColor)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(ShowButton1)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(ShowButton2)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(ShowButton3)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(ShowButton4)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(ShowSettings)); PreventDupicates.SettingChanged += PreventDupicates_SettingChanged; CloseMenu.SettingChanged += PreventDupicates_SettingChanged; inactiveColorConfig.SettingChanged += GoThrough; textColor.SettingChanged += RecolorMaterial; outlineColor.SettingChanged += RecolorMaterial; textColorKey.SettingChanged += RecolorMaterial; outlineColorKey.SettingChanged += RecolorMaterial; backgroundColor.SettingChanged += BindCurrentEmoteConfig_SettingChanged; Scale.SettingChanged += GoThrough; ShowButton1.SettingChanged += ShowDocumentation_SettingChanged; ShowButton2.SettingChanged += ShowDocumentation_SettingChanged; ShowButton3.SettingChanged += ShowDocumentation_SettingChanged; ShowButton4.SettingChanged += ShowDocumentation_SettingChanged; ShowSettings.SettingChanged += ShowDocumentation_SettingChanged; BindCurrentEmoteConfig.SettingChanged += BindCurrentEmoteConfig_SettingChanged; TextScale.SettingChanged += GoThrough; SwitchList.SettingChanged += BindCurrentEmoteConfig_SettingChanged; ModSettingsManager.SetModIcon(UnityAssets.LoadAsset<Sprite>("Assets/CustomEmotes/menu-icon.png")); } private void BindCurrentEmoteConfig_SettingChanged(object sender, EventArgs e) { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)trueHud)) { TextMeshProUGUI component = ((Component)trueHud.transform.Find("CreateNewPanel/keytext")).GetComponent<TextMeshProUGUI>(); KeyboardShortcut value = SwitchList.Value; KeyCode mainKey = ((KeyboardShortcut)(ref value)).MainKey; ((TMP_Text)component).text = ((object)(KeyCode)(ref mainKey)).ToString(); TextMeshProUGUI component2 = ((Component)trueHud.transform.Find("BindEmotePanel/keytext")).GetComponent<TextMeshProUGUI>(); value = BindCurrentEmoteConfig.Value; mainKey = ((KeyboardShortcut)(ref value)).MainKey; ((TMP_Text)component2).text = ((object)(KeyCode)(ref mainKey)).ToString(); TextMeshProUGUI component3 = ((Component)trueHud.transform.Find("AddCurrentEmote/keytext")).GetComponent<TextMeshProUGUI>(); value = AddCurrentEmoteConfig.Value; mainKey = ((KeyboardShortcut)(ref value)).MainKey; ((TMP_Text)component3).text = ((object)(KeyCode)(ref mainKey)).ToString(); ((Graphic)((Component)trueHud.transform.Find("background")).GetComponent<Image>()).color = backgroundColor.Value; } } private void ShowDocumentation_SettingChanged(object sender, EventArgs e) { if (Object.op_Implicit((Object)(object)trueHud)) { DoI(new string[5] { "CurrentEmotePanel", "CreateNewPanel", "Settings", "BindEmotePanel", "AddCurrentEmote" }, new ConfigEntry<bool>[5] { ShowButton2, ShowButton1, ShowSettings, ShowButton4, ShowButton3 }); } void DoI(string[] paths, ConfigEntry<bool>[] configs) { for (int i = 0; i < paths.Length; i++) { ((Component)trueHud.transform.Find(paths[i])).gameObject.SetActive(configs[i].Value); } ShowButton1.SettingChanged += ShowDocumentation_SettingChanged; } } private void ConfigOpen() { if (!Object.op_Implicit((Object)(object)trueHud)) { BuildUI(); } trueHud.SetActive(true); } private void RecolorMaterial(object sender, EventArgs e) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) FontMaterial.SetColor("_FaceColor", textColor.Value); FontMaterial.SetColor("_OutlineColor", outlineColor.Value); FontMaterial2.SetColor("_FaceColor", textColorKey.Value); FontMaterial2.SetColor("_OutlineColor", outlineColorKey.Value); } private void BuildUI() { //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_035b: Unknown result type (might be due to invalid IL or missing references) //IL_035f: Unknown result type (might be due to invalid IL or missing references) //IL_0364: Unknown result type (might be due to invalid IL or missing references) //IL_037b: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_039b: Unknown result type (might be due to invalid IL or missing references) //IL_03f2: Unknown result type (might be due to invalid IL or missing references) //IL_03f7: Unknown result type (might be due to invalid IL or missing references) //IL_0403: Unknown result type (might be due to invalid IL or missing references) //IL_0408: Unknown result type (might be due to invalid IL or missing references) //IL_041b: Unknown result type (might be due to invalid IL or missing references) //IL_0414: Unknown result type (might be due to invalid IL or missing references) //IL_042b: Unknown result type (might be due to invalid IL or missing references) //IL_0438: Unknown result type (might be due to invalid IL or missing references) //IL_043d: Unknown result type (might be due to invalid IL or missing references) //IL_0441: Unknown result type (might be due to invalid IL or missing references) //IL_0446: Unknown result type (might be due to invalid IL or missing references) //IL_0453: Unknown result type (might be due to invalid IL or missing references) //IL_0463: Unknown result type (might be due to invalid IL or missing references) //IL_0469: Unknown result type (might be due to invalid IL or missing references) //IL_0479: Unknown result type (might be due to invalid IL or missing references) //IL_047e: Unknown result type (might be due to invalid IL or missing references) //IL_048a: Unknown result type (might be due to invalid IL or missing references) //IL_048f: Unknown result type (might be due to invalid IL or missing references) //IL_04a2: Unknown result type (might be due to invalid IL or missing references) //IL_049b: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Expected O, but got Unknown if (Object.op_Implicit((Object)(object)trueHud)) { return; } GameObject val = Object.Instantiate<GameObject>(HudObject); List<string> list = new List<string>(); string[] array = CustomEmotes.Value.Split("*"); foreach (KeyValuePair<string, CustomAnimationClip> animClip in BoneMapper.animClips) { list.Add(animClip.Key); } if (Sort.Value) { list.Sort(); } foreach (string item in list) { GameObject val2 = Object.Instantiate<GameObject>(EmoteObject); string text = item; while (text.Contains("\\")) { text = text.Replace("\\", ""); } ((Object)val2).name = text; ((TMP_Text)((Component)val2.transform.Find("EmoteName")).GetComponent<TextMeshProUGUI>()).text = text; val2.transform.SetParent(val.transform.Find("AllEmotesPanel/scroll")); string text2 = text; while (text.Contains("'")) { text = text.Replace("'", ""); } while (text.Contains("\"")) { text = text.Replace("\"", ""); } while (text.Contains("[")) { text = text.Replace("[", ""); } while (text.Contains("]")) { text = text.Replace("]", ""); } ConfigEntry<KeyboardShortcut> val3 = ((BaseUnityPlugin)this).Config.Bind<KeyboardShortcut>("Emote Keybinds", text, new KeyboardShortcut((KeyCode)0, Array.Empty<KeyCode>()), "Keybind to play " + text); val3.SettingChanged += EmoteConfig_SettingChanged; ModSettingsManager.AddOption((BaseOption)new KeyBindOption(val3)); emoteKeybinds.Add(val3, text2); keybindEmotes.Add(text2, val3); } if (array.Length != 0) { string[] array2 = array; foreach (string text3 in array2) { if (text3 != null && text3 != "") { GameObject val4 = Object.Instantiate<GameObject>(EmoteObject); string text4 = text3; while (text4.Contains("\\")) { text4 = text4.Replace("\\", ""); } ((Object)val4).name = text4; ((TMP_Text)((Component)val4.transform.Find("EmoteName")).GetComponent<TextMeshProUGUI>()).text = text4; val4.transform.SetParent(val.transform.Find("CustomEmotesPanel/scroll")); } } } val.SetActive(false); trueHud = val; Object.DontDestroyOnLoad((Object)(object)trueHud); KeyboardShortcut value = keybindEmotes["none"].Value; KeyCode mainKey = ((KeyboardShortcut)(ref value)).MainKey; keybindEmotes["none"].Value = new KeyboardShortcut((KeyCode)27, Array.Empty<KeyCode>()); keybindEmotes["none"].Value = new KeyboardShortcut(mainKey, Array.Empty<KeyCode>()); bool value2 = PreventDupicates.Value; if (PreventDupicates.Value) { PreventDupicates.Value = false; } else { PreventDupicates.Value = true; } PreventDupicates.Value = value2; Color value3 = inactiveColorConfig.Value; inactiveColorConfig.Value = ((inactiveColorConfig.Value == Color.white) ? Color.black : Color.white); inactiveColorConfig.Value = value3; value = BindCurrentEmoteConfig.Value; mainKey = ((KeyboardShortcut)(ref value)).MainKey; BindCurrentEmoteConfig.Value = new KeyboardShortcut((KeyCode)27, Array.Empty<KeyCode>()); BindCurrentEmoteConfig.Value = new KeyboardShortcut(mainKey, Array.Empty<KeyCode>()); value3 = textColor.Value; textColor.Value = ((textColor.Value == Color.white) ? Color.black : Color.white); textColor.Value = value3; } private void GoThrough(object sender, EventArgs e) { if (Object.op_Implicit((Object)(object)trueHud)) { DoIt(trueHud.transform.Find("CustomEmotesPanel/scroll")); DoIt(trueHud.transform.Find("AllEmotesPanel/scroll")); ColorIt(new string[13] { "AllEmotesPanel", "CustomEmotesPanel", "AllEmotesPanel/scrollbar/Sliding Area/Handle", "AllEmotesPanel/scrollbar", "CustomEmotesPanel/scrollbar/Sliding Area/Handle", "CustomEmotesPanel/scrollbar", "KeybindingEmote", "Settings", "BindEmotePanel", "AddCurrentEmote", "CustomEmotesPanel/AddAndDelete", "CreateNewPanel", "CurrentEmotePanel" }); } static void ColorIt(string[] paths) { //IL_0027: Unknown result type (might be due to invalid IL or missing references) foreach (string text in paths) { ((Graphic)((Component)trueHud.transform.Find(text)).GetComponent<Image>()).color = inactiveColorConfig.Value; } } static void DoIt(Transform transform) { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Expected O, but got Unknown //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) float num = (float)Scale.Value / 4f; ((Component)transform).GetComponent<GridLayoutGroup>().cellSize = new Vector2(80f * num, 40f * num); foreach (Transform item in transform) { Transform val = item; ((Graphic)((Component)val).GetComponent<Image>()).color = inactiveColorConfig.Value; val.Find("EmoteName").localScale = new Vector3(num / 2f, num / 2f, 1f); val.Find("EmoteKey").localScale = new Vector3(num / 2f, num / 2f, 1f); ((TMP_Text)((Component)val.Find("EmoteName")).GetComponent<TextMeshProUGUI>()).fontSizeMax = TextScale.Value; ((TMP_Text)((Component)val.Find("EmoteKey")).GetComponent<TextMeshProUGUI>()).fontSizeMax = TextScale.Value / 1.5f; } } } private void PreventDupicates_SettingChanged(object sender, EventArgs e) { if (Object.op_Implicit((Object)(object)trueHud)) { ((Component)trueHud.transform.Find("Settings/EnableDuplicates/Image")).GetComponent<Image>().sprite = (PreventDupicates.Value ? inactiveSprite : activeSprite); ((Component)trueHud.transform.Find("Settings/CloseAfterSelection/Image")).GetComponent<Image>().sprite = (CloseMenu.Value ? activeSprite : inactiveSprite); } } public void Update() { //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_0275: Invalid comparison between Unknown and I4 //IL_0285: Unknown result type (might be due to invalid IL or missing references) //IL_028a: Unknown result type (might be due to invalid IL or missing references) //IL_028e: Unknown result type (might be due to invalid IL or missing references) int cursorOpenerCount = MPEventSystemManager.primaryEventSystem.cursorOpenerCount; if (Input.GetKeyDown((KeyCode)27) && Object.op_Implicit((Object)(object)trueHud) && trueHud.activeSelf) { trueHud.SetActive(false); if (Object.op_Implicit((Object)(object)Run.instance) && cursorOpenerCount > 0) { ToggleCursor(); } } if (PauseManager.isPaused || !Object.op_Implicit((Object)(object)Run.instance)) { return; } KeyboardShortcut value; if (HoldAndRelease.Value) { value = NewEmoteMenu.Value; if (Input.GetKey(((KeyboardShortcut)(ref value)).MainKey)) { if (!trueHud.activeSelf) { if (RequestChatBox()) { return; } trueHud.SetActive(true); if (cursorOpenerCount <= 0) { ToggleCursor(); } } } else if (trueHud.activeSelf) { if (RequestChatBox()) { return; } trueHud.SetActive(false); if (cursorOpenerCount > 0) { ToggleCursor(); } } } else { value = NewEmoteMenu.Value; if (Input.GetKeyDown(((KeyboardShortcut)(ref value)).MainKey)) { if (trueHud.activeSelf) { if (RequestChatBox()) { return; } trueHud.SetActive(false); if (cursorOpenerCount > 0) { ToggleCursor(); } } else { if (RequestChatBox()) { return; } trueHud.SetActive(true); if (cursorOpenerCount <= 0) { ToggleCursor(); } } } } value = CustomRandomEmote.Value; if (Input.GetKeyDown(((KeyboardShortcut)(ref value)).MainKey)) { string[] array = CustomEmotes.Value.Split("*"); int num = Random.RandomRangeInt(0, array.Length - 1); CustomEmotesAPI.PlayAnimation(array[num], -2); } if (!Input.anyKeyDown) { return; } List<string> list = new List<string>(); foreach (KeyValuePair<ConfigEntry<KeyboardShortcut>, string> emoteKeybind in emoteKeybinds) { value = emoteKeybind.Key.Value; if ((int)((KeyboardShortcut)(ref value)).MainKey > 0) { value = emoteKeybind.Key.Value; if (Input.GetKeyDown(((KeyboardShortcut)(ref value)).MainKey)) { list.Add(emoteKeybind.Value); } } } if (list.Count == 1) { CustomEmotesAPI.PlayAnimation(list[0], -2); } else if (list.Count > 1) { int index = Random.RandomRangeInt(0, list.Count); CustomEmotesAPI.PlayAnimation(list[index], -2); } } public bool RequestChatBox() { if ((Object)(object)chatBox == (Object)null) { chatBox = ((Component)((Component)MenuHud).transform).GetComponentInChildren<ChatBox>(); } if (Object.op_Implicit((Object)(object)chatBox) && chatBox.showInput) { return true; } return false; } public static string GetConfigString() { string text = CustomEmotes.Value; while (text.Contains("\\")) { text = text.Replace("\\", ""); } return text; } public static int ToggleCursor() { MPEventSystem primaryEventSystem = MPEventSystemManager.primaryEventSystem; primaryEventSystem.cursorOpenerCount += ((primaryEventSystem.cursorOpenerCount <= 0) ? 1 : (-1)); primaryEventSystem.cursorOpenerForGamepadCount += ((primaryEventSystem.cursorOpenerForGamepadCount <= 0) ? 1 : (-1)); return primaryEventSystem.cursorOpenerCount; } public static void SaveCursorPosition() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) mousePosition = Input.mousePosition; } private void AwakeMyHud(orig_Awake orig, HUD self) { orig.Invoke(self); MenuHud = self; BuildUI(); } private void EmoteConfig_SettingChanged(object sender, EventArgs e) { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Expected O, but got Unknown //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Invalid comparison between Unknown and I4 if (!Object.op_Implicit((Object)(object)trueHud)) { return; } foreach (Transform item in trueHud.transform.Find("AllEmotesPanel/scroll")) { Transform val = item; KeyboardShortcut value = keybindEmotes[((Object)val).name].Value; KeyCode mainKey = ((KeyboardShortcut)(ref value)).MainKey; if ((int)mainKey == 0) { ((Component)val.Find("EmoteKey")).gameObject.SetActive(false); ((TMP_Text)((Component)val.Find("EmoteKey")).gameObject.GetComponent<TextMeshProUGUI>()).text = "Key"; } else { ((Component)val.Find("EmoteKey")).gameObject.SetActive(true); ((TMP_Text)((Component)val.Find("EmoteKey")).gameObject.GetComponent<TextMeshProUGUI>()).text = ((object)(KeyCode)(ref mainKey)).ToString(); } } } public static void SwitchListMethod() { //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) if (((Component)trueHud.transform).GetComponent<NewPicker>().addingEmote) { AllEmotesPanel().SetActive(false); CustomEmotesPanel().SetActive(true); trueHud.GetComponent<NewPicker>().edit = true; trueHud.GetComponent<NewPicker>().addingEmote = false; PanelText().text = "Switch to all emotes panel"; return; } if (AllEmotesPanel().activeSelf) { AllEmotesPanel().SetActive(false); CustomEmotesPanel().SetActive(true); trueHud.GetComponent<NewPicker>().edit = true; PanelText().text = "Switch to all emotes panel"; } else { AllEmotesPanel().SetActive(true); CustomEmotesPanel().SetActive(false); trueHud.GetComponent<NewPicker>().edit = false; PanelText().text = "Switch to custom emotes panel"; } if (Object.op_Implicit((Object)(object)selected)) { ((Graphic)selected.GetComponent<Image>()).color = inactiveColorConfig.Value; selected.transform.localScale = Vector3.one; } static GameObject AllEmotesPanel() { return ((Component)trueHud.transform.Find("AllEmotesPanel")).gameObject; } static GameObject CustomEmotesPanel() { return ((Component)trueHud.transform.Find("CustomEmotesPanel")).gameObject; } static TMP_Text PanelText() { return (TMP_Text)(object)((Component)trueHud.transform.Find("CreateNewPanel/text")).GetComponent<TextMeshProUGUI>(); } } public static string GenerateCustomEmotesString() { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown string text = ""; foreach (Transform item in trueHud.transform.Find("CustomEmotesPanel/scroll")) { Transform val = item; text = text + ((Object)((Component)val).gameObject).name + "*"; } return text; } public static void BindCurrentEmoteMethod() { if (Object.op_Implicit((Object)(object)CustomEmotesAPI.localMapper)) { if (!BindEmotePanel().activeSelf) { BindEmotePanel().GetComponent<AddKeybind>().emote = CustomEmotesAPI.localMapper.currentClipName; BindEmotePanel().GetComponent<AddKeybind>().emoteOrNot = true; BindEmotePanel().SetActive(true); } else { BindEmotePanel().SetActive(false); } } static GameObject BindEmotePanel() { return ((Component)trueHud.transform.Find("KeybindingEmote")).gameObject; } } public static void AddCurrentEmote() { //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)CustomEmotesAPI.localMapper)) { return; } BoneMapper localMapper = CustomEmotesAPI.localMapper; if (PreventDupicates.Value) { string[] array = GetConfigString().Split("*"); if (array.Length != 0 && array.Contains(localMapper.currentClipName)) { GameObject val = Object.Instantiate<GameObject>(Effect, trueHud.transform); ((TMP_Text)val.GetComponent<TextMeshProUGUI>()).text = "Emote " + localMapper.currentClipName + " has been already added"; GameObject gameObject = ((Component)trueHud.transform.Find("CustomEmotesPanel/scroll/" + localMapper.currentClipName)).gameObject; if (gameObject.activeInHierarchy) { gameObject.AddComponent<HighlightEmote>(); } return; } } GameObject val2 = Object.Instantiate<GameObject>(EmoteObject, trueHud.transform.Find("CustomEmotesPanel/scroll")); float num = (float)Scale.Value / 4f; val2.transform.Find("EmoteName").localScale = new Vector3(num / 2f, num / 2f, 1f); val2.transform.Find("EmoteKey").localScale = new Vector3(num / 2f, num / 2f, 1f); ((Graphic)val2.GetComponent<Image>()).color = inactiveColorConfig.Value; ((Object)val2).name = localMapper.currentClipName; ((TMP_Text)((Component)val2.transform.Find("EmoteName")).GetComponent<TextMeshProUGUI>()).text = localMapper.currentClipName; GameObject val3 = Object.Instantiate<GameObject>(Effect, trueHud.transform); ((TMP_Text)val3.GetComponent<TextMeshProUGUI>()).text = "Added " + localMapper.currentClipName; CustomEmotes.Value = GenerateCustomEmotesString(); } }