Some mods may be broken due to the recent Alloyed Collective update.
Decompiled source of StatsPlus v2.0.3
StatsMod.dll
Decompiled 2 weeks ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using System.Globalization; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text; using BepInEx; using BepInEx.Logging; using IL.RoR2; using LeTai.Asset.TranslucentImage; using Microsoft.CodeAnalysis; using Mono.Cecil.Cil; using MonoMod.Cil; using Newtonsoft.Json; using On.RoR2; using On.RoR2.UI; using R2API; using R2API.Networking; using R2API.Networking.Interfaces; using RoR2; using RoR2.Stats; using RoR2.UI; using StatsMod.CustomStats; using TMPro; using Unity.Mathematics; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.EventSystems; using UnityEngine.Events; using UnityEngine.Networking; using UnityEngine.SceneManagement; 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: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("StatsMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+1d04e0c8db0d947f9a47810d641e50aff942f90d")] [assembly: AssemblyProduct("StatsMod")] [assembly: AssemblyTitle("StatsMod")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace StatsMod { public static class Assets { public static AssetBundle mainAssetBundle = null; internal static string assetBundleName = "statsmodassets"; internal static string assemblyDir => Path.GetDirectoryName(StatsMod.pluginInfo.Location); public static void PopulateAssets() { mainAssetBundle = AssetBundle.LoadFromFile(Path.Combine(assemblyDir, assetBundleName)); } } public class GraphHandler : MonoBehaviour { public enum MouseActionType { Move, SelectAreaToZoom, SelectPoints } public enum RectangleType { Free, PreserveAspectRatio, OriginalAspectRatio } public enum RectangleSelectionType { SelectAll, SelectUnselect } public enum RectangleSelectionPhase { Moving, Release } public enum PointSelectionType { Select, FixZoomPoint } [Flags] public enum UpdateMethod { UpdatePositionAndScale = 1, UpdateOutlines = 2, UpdatePointVisuals = 4, UpdateContent = 8, MouseZoom = 0x10, MouseAction = 0x20, UpdateGridLines = 0x40, All = 0x80 } public bool updateGraph = true; private GraphSettings GS; [SerializeField] private Canvas canvas; private RectTransform graph; private RectTransform graphContent; private Vector2 contentScale = Vector2.zero; private List<Vector2> values; private List<float> trueYvalues; private List<int> sortedIndices; private Vector2Int xAxisRange = new Vector2Int(-1, -1); private Vector2Int prevXAxisRange = new Vector2Int(-1, -1); public int activePointIndex = -1; private Vector2 activePointValue = Vector2.zero; private bool pointIsActive = false; private List<GameObject> points; private List<Image> pointImages; private List<RectTransform> pointRects; private List<GameObject> pointOutlines; private List<RectTransform> pointOutlineRects; private List<Image> pointOutlineImages; private List<GameObject> lines; private List<RectTransform> lineRects; private List<Image> lineImages; private List<RectTransform> xGridRects; private List<Image> xGridImages; private List<TextMeshProUGUI> xAxisTexts; private List<RectTransform> xAxisTextRects; private List<RectTransform> yGridRects; private List<Image> yGridImages; private List<TextMeshProUGUI> yAxisTexts; private List<RectTransform> yAxisTextRects; private RectTransform zoomSelectionRectTransform; private Image zoomSelectionImage; private List<RectTransform> zoomSelectionOutlines; private List<Image> zoomSelectionOutlineImages; private RectTransform pointSelectionRectTransform; private Image pointSelectionImage; private List<RectTransform> pointSelectionOutlines; private List<Image> pointSelectionOutlineImages; private RectTransform maskObj; private Image backgroundImage; private RectTransform backgroundRect; private GameObject pointParent; private GameObject lineParent; private GameObject gridParent; private GameObject outlineParent; private List<RectTransform> outlines; private List<Image> outlineImages; private List<int> lockedHoveredPoints; private List<int> lockedPoints; private List<int> fixedHoveredPoints; public int fixedPointIndex = -1; private Vector2 contentOffset = Vector2.zero; private Vector2 bottomLeft; private Vector2 topRight; private Vector2 center; public MouseActionType mouseActionType; public RectangleType rectangleType; public RectangleSelectionType rectangleSelectionType; public RectangleSelectionPhase rectangleSelectionPhase; public PointSelectionType pointSelectionType; private List<int> initialLockedPoints; private List<int> recentlyLockedPoints; private bool mouseInsideBounds = false; private Vector2 mousePos; private Vector2 previousMousePos; private Vector2 initialMousePos = Vector2.zero; private bool initialMouseInsideBounds = false; private Vector2 _zoomPoint = Vector2.zero; private Vector2 _absoluteZoomPoint = Vector2.zero; private Vector2 _targetZoom = new Vector2(1f, 1f); private Vector2 zoom = new Vector2(1f, 1f); private Vector2 moveOffset; public Vector2 _targetMoveOffset; private Vector2 initialMoveOffset = Vector2.zero; private float timeToUpdateMouse = 0f; private float timeToUpdateTouch = 0f; private float timeToUpdateScroll = 0f; private bool error; private bool currentPlotIsLog = false; public readonly int logBase = 2; private bool rightBorderReached; private bool topBorderReached; private bool bottomBorderReached; private bool leftBorderReached; public List<Vector2> Values => values; public Vector2Int XAxisRange => xAxisRange; public Vector2 ActivePointValue => activePointValue; public Vector2 BottomLeft => bottomLeft; public Vector2 TopRight => topRight; public Vector2 Center => center; private Vector2 zoomPoint { get { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) return _zoomPoint; } set { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) if (IsWithinBounds(zoom, absoluteZoomPoint, value, moveOffset)) { _zoomPoint = value; } } } private Vector2 absoluteZoomPoint { get { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) return _absoluteZoomPoint; } set { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) if (IsWithinBounds(zoom, value, zoomPoint, moveOffset)) { _absoluteZoomPoint = value; } } } public Vector2 targetZoom { get { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) return _targetZoom; } set { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) if (IsWithinBounds(value, absoluteZoomPoint, zoomPoint, moveOffset)) { _targetZoom = value; } } } public Vector2 targetMoveOffset { get { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) return _targetMoveOffset; } set { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) if (IsWithinBounds(zoom, absoluteZoomPoint, zoomPoint, value)) { _targetMoveOffset = value; } } } public void CreatePoint(Vector2 newValue, bool shouldCreateLine = true) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) CreatePointInternal(newValue, shouldCreateLine); } public void ChangePoint(int indexToChange, Vector2 newValue) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) ChangePointInternal(indexToChange, newValue); } public void SetCornerValues(Vector2 newBottomLeft, Vector2 newTopRight) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Unknown result type (might be due to invalid IL or missing references) SetCornerValuesInternal(newBottomLeft, newTopRight); } public void UpdateGraph() { UpdateGraphInternal(UpdateMethod.All); } public void PlotStat(string statName, int index, bool isLog = false) { //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_033a: Unknown result type (might be due to invalid IL or missing references) //IL_0358: 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_0382: Unknown result type (might be due to invalid IL or missing references) //IL_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0280: Unknown result type (might be due to invalid IL or missing references) //IL_0292: 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) ResetGraph(); UpdateGraph(); UpdateContent(); float num = -5f; float num2 = 5f; currentPlotIsLog = isLog; StatsScreen.ChangePlotTitle(statName); List<object> statSeries = RecordHandler.independentDatabase[0].GetStatSeries("timestamps"); if (index >= 0) { Color lineColor = GraphSettings.Rainbow((float)index / (float)RecordHandler.independentDatabase.Count); GS.LineColor = lineColor; List<object> statSeries2 = RecordHandler.independentDatabase[index].GetStatSeries(statName); for (int i = 0; i < statSeries.Count; i++) { float num3 = Convert.ToSingle(statSeries[i]); float num4 = Convert.ToSingle(PlayerStatsDatabase.Numberise(statSeries2[i])); trueYvalues.Add(num4); if (num4.ToString() == "Infinity") { num4 = -1f; } if (currentPlotIsLog && num4 != 0f) { num4 = (float)Math.Log(Math.Abs(num4), logBase); } CreatePoint(new Vector2(num3, num4)); if (num4 < num) { num = num4; } else if (num4 > num2) { num2 = num4; } } } else if (index == -1) { int num5 = 0; foreach (IndependentEntry item in RecordHandler.independentDatabase) { Color lineColor2 = GraphSettings.Rainbow((float)num5 / (float)RecordHandler.independentDatabase.Count); GS.LineColor = lineColor2; List<object> statSeries3 = item.GetStatSeries(statName); for (int j = 0; j < statSeries.Count; j++) { float num6 = Convert.ToSingle(statSeries[j]); float num7 = Convert.ToSingle(PlayerStatsDatabase.Numberise(statSeries3[j])); trueYvalues.Add(num7); if (num7.ToString() == "Infinity") { num7 = -1f; } if (currentPlotIsLog && num7 != 0f) { num7 = (float)Math.Log(Math.Abs(num7), logBase); } if (j == 0) { GS.LineColor = Color.clear; } CreatePoint(new Vector2(num6, num7)); GS.LineColor = lineColor2; if (num7 < num) { num = num7; } else if (num7 > num2) { num2 = num7; } } num5++; } } float num8 = Convert.ToSingle(statSeries[statSeries.Count - 1]) * 0.05f; float num9 = math.max(math.abs(num), math.abs(num2)) * 0.05f; SetCornerValues(new Vector2(0f - num8, num - num9), new Vector2(Convert.ToSingle(statSeries[statSeries.Count - 1]) + num8, num2 + num9)); absoluteZoomPoint = Vector2.zero; UpdateGraph(); SetCornerValues(new Vector2(0f - num8, num - num9), new Vector2(Convert.ToSingle(statSeries[statSeries.Count - 1]) + num8, num2 + num9)); UpdateGraph(); } private void ResetGraph() { Object.Destroy((Object)(object)((Component)maskObj).gameObject); Object.Destroy((Object)(object)outlineParent.gameObject); AwakeWOHook(); Start(); } private void Awake() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown ResolutionConVar.SetString += new hook_SetString(ResizeGraph); AwakeWOHook(); } private void AwakeWOHook() { values = new List<Vector2>(); trueYvalues = new List<float>(); sortedIndices = new List<int>(); points = new List<GameObject>(); pointRects = new List<RectTransform>(); pointImages = new List<Image>(); pointOutlines = new List<GameObject>(); pointOutlineRects = new List<RectTransform>(); pointOutlineImages = new List<Image>(); lines = new List<GameObject>(); lineRects = new List<RectTransform>(); lineImages = new List<Image>(); xGridRects = new List<RectTransform>(); xGridImages = new List<Image>(); yGridRects = new List<RectTransform>(); yGridImages = new List<Image>(); xAxisTexts = new List<TextMeshProUGUI>(); yAxisTexts = new List<TextMeshProUGUI>(); xAxisTextRects = new List<RectTransform>(); yAxisTextRects = new List<RectTransform>(); zoomSelectionOutlines = new List<RectTransform>(); zoomSelectionOutlineImages = new List<Image>(); pointSelectionOutlines = new List<RectTransform>(); pointSelectionOutlineImages = new List<Image>(); outlines = new List<RectTransform>(); outlineImages = new List<Image>(); lockedHoveredPoints = new List<int>(); lockedPoints = new List<int>(); initialLockedPoints = new List<int>(); recentlyLockedPoints = new List<int>(); fixedHoveredPoints = new List<int>(); } private void ResizeGraph(orig_SetString orig, ResolutionConVar self, string newValue) { //IL_004d: 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_0073: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, newValue); if ((Object)(object)graph != (Object)null) { string[] array = newValue.Split('x'); int num = int.Parse(array[0]); int num2 = int.Parse(array[1]); GS.GraphSize = new Vector2(0.5208f * (float)num, 0.7037f * (float)num2); ((Transform)graph).localPosition = Vector2.op_Implicit(new Vector2(0.1302f * (float)num, 0.0212f * (float)num2)); UpdateOutlines(); } } private bool IsWithinBounds(Vector2 zoom, Vector2 absoluteZoomPoint, Vector2 zoomPoint, Vector2 moveOffset) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: 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_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //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_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) Vector2 val = GS.GraphScale * zoom; Vector2 val2 = absoluteZoomPoint - zoomPoint * val - moveOffset; Vector2 val3 = -val2 / val; Vector2 val4 = val3 + GS.GraphSize / val; rightBorderReached = val4.x > float.MaxValue || float.IsNaN(val4.x); topBorderReached = val4.y > float.MaxValue || float.IsNaN(val4.y); bottomBorderReached = val3.x < float.MinValue || float.IsNaN(val3.x); leftBorderReached = val3.y < float.MinValue || float.IsNaN(val3.y); if (rightBorderReached || topBorderReached || bottomBorderReached || leftBorderReached) { return false; } return true; } private bool IsSizeableDif() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: 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_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0025: 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_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: 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_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: 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_005a: 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: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: 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_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) Vector2 val = GS.GraphScale * targetZoom; Vector2 val2 = absoluteZoomPoint - zoomPoint * val - targetMoveOffset; Vector2 val3 = -val2 / val; Vector2 val4 = val3 + GS.GraphSize / val; Vector2 val5 = TopRight - val4; if (!(((Vector2)(ref val5)).magnitude > 1E+11f)) { val5 = BottomLeft - val3; if (!(((Vector2)(ref val5)).magnitude > 1E+11f)) { return false; } } return true; } private void OnDestroy() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown ResolutionConVar.SetString -= new hook_SetString(ResizeGraph); } private void Start() { if (!CheckForErrors()) { GS = ((Component)this).GetComponent<GraphSettings>(); PrepareGraph(); } } private void Update() { //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) if (Input.GetKey((KeyCode)304)) { mouseActionType = MouseActionType.SelectAreaToZoom; } else if (Input.GetKey((KeyCode)306)) { mouseActionType = MouseActionType.SelectPoints; } else { mouseActionType = MouseActionType.Move; } if (!error) { CheckIfUpdateGraph(); if (updateGraph) { UpdateGraphInternal(UpdateMethod.All); } if (lockedHoveredPoints.Count > 0) { UpdatePoints(); } if (fixedHoveredPoints.Count > 0) { UpdatePointOutlines(); } zoom = Vector2.Lerp(zoom, targetZoom, GS.SmoothZoomSpeed * Time.deltaTime); moveOffset = Vector2.Lerp(moveOffset, targetMoveOffset, GS.SmoothMoveSpeed * Time.deltaTime); if (IsSizeableDif()) { zoom = targetZoom; moveOffset = targetMoveOffset; } } } private void PrepareGraph() { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: 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) if ((Object)(object)canvas == (Object)null) { canvas = new GameObject("GraphCanvas").AddComponent<Canvas>(); ((Component)canvas).gameObject.SetActive(false); canvas.renderMode = (RenderMode)0; ((Component)canvas).gameObject.AddComponent<GraphicRaycaster>(); } if ((Object)(object)((Component)this).GetComponent<RectTransform>() == (Object)null) { ((Component)this).gameObject.AddComponent<RectTransform>(); } graph = ((Component)this).gameObject.GetComponent<RectTransform>(); ((Transform)graph).SetParent(((Component)canvas).transform); graph.anchoredPosition = Vector2.zero; graph.sizeDelta = GS.GraphSize; RectTransform obj = graph; Vector3 localPosition = (((Transform)graph).localPosition = Vector2.op_Implicit(new Vector2(0.1302f * (float)Screen.width, 0.0212f * (float)Screen.height))); ((Transform)obj).localPosition = localPosition; maskObj = new GameObject("MaskObj").AddComponent<RectTransform>(); ((Transform)maskObj).SetParent((Transform)(object)graph); maskObj.anchoredPosition = Vector2.zero; ((Component)maskObj).gameObject.AddComponent<Image>(); Mask val2 = ((Component)maskObj).gameObject.AddComponent<Mask>(); val2.showMaskGraphic = false; backgroundRect = new GameObject("Background").AddComponent<RectTransform>(); ((Transform)backgroundRect).SetParent((Transform)(object)maskObj); backgroundRect.anchoredPosition = Vector2.zero; backgroundImage = ((Component)backgroundRect).gameObject.AddComponent<Image>(); graphContent = new GameObject("GraphContent").AddComponent<RectTransform>(); ((Transform)graphContent).SetParent(((Component)backgroundRect).transform); graphContent.sizeDelta = Vector2.zero; gridParent = CreateParent("GridParent"); lineParent = CreateParent("LineParent"); pointParent = CreateParent("PointParent"); outlineParent = CreateParent("OutlineParent"); CreateOutlines(); outlineParent.transform.SetParent((Transform)(object)graph); fixedPointIndex = -1; CreateselectionTypes(); UpdateGraphInternal(UpdateMethod.All); } private GameObject CreateParent(string name) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject(name); val.transform.SetParent((Transform)(object)((name == "OutlineParent") ? graph : graphContent)); Image val2 = val.AddComponent<Image>(); ((Graphic)val2).color = new Color(0f, 0f, 0f, 0f); ((Graphic)val2).raycastTarget = false; val.GetComponent<RectTransform>().anchoredPosition = Vector2.zero; return val; } private void CreateOutlines() { //IL_000b: 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) for (int i = 0; i < 4; i++) { Image val = new GameObject("Outline").AddComponent<Image>(); RectTransform component = ((Component)val).GetComponent<RectTransform>(); ((Transform)component).SetParent(outlineParent.transform); ((Graphic)val).color = GS.OutlineColor; ((Graphic)val).raycastTarget = false; outlines.Add(component); outlineImages.Add(val); } } private void CreatePointInternal(Vector2 value, bool shouldCreateLine = true) { //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Expected O, but got Unknown //IL_005a: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Expected O, but got Unknown //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Expected O, but got Unknown //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_028b: 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) int i = points.Count; GameObject val = CreatePointOutline(i); GameObject val2 = new GameObject("Point" + i); points.Add(val2); values.Add(value); val2.transform.SetParent(val.transform); Image val3 = val2.AddComponent<Image>(); ((Graphic)val3).color = GS.PointColor; pointImages.Add(val3); RectTransform component = val2.GetComponent<RectTransform>(); component.sizeDelta = Vector2.one * GS.PointRadius; pointRects.Add(component); val3.sprite = GS.PointSprite; EventTrigger val4 = val2.AddComponent<EventTrigger>(); var array = new[] { new { Type = (EventTriggerType)0, Callback = (Action)delegate { MouseTrigger(i, enter: true); } }, new { Type = (EventTriggerType)1, Callback = (Action)delegate { MouseTrigger(i, enter: false); } }, new { Type = (EventTriggerType)4, Callback = (Action)delegate { PointClicked(i); } } }; var array2 = array; foreach (var eventType in array2) { Entry val5 = new Entry { eventID = eventType.Type }; ((UnityEvent<BaseEventData>)(object)val5.callback).AddListener((UnityAction<BaseEventData>)delegate { eventType.Callback(); }); val4.triggers.Add(val5); } if (points.Count > 1 && shouldCreateLine) { GameObject val6 = new GameObject("Line"); val6.transform.SetParent(lineParent.transform); lineImages.Add(val6.AddComponent<Image>()); ((Graphic)val6.GetComponent<Image>()).color = GS.LineColor; lineRects.Add(val6.GetComponent<RectTransform>()); lines.Add(val6); if (value.x < bottomLeft.x || value.x > topRight.x) { val6.SetActive(false); } } lockedHoveredPoints.Add(i); SortIndices(); if (value.x < bottomLeft.x || value.x > topRight.x) { val.SetActive(false); } } private void ChangePointInternal(int index, Vector2 newValue) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) values[index] = newValue; SortIndices(); } private void SortIndices() { sortedIndices = (from item in values.Select((Vector2 vector, int index) => new { vector, index }) orderby item.vector.x, item.vector.y select item.index).ToList(); } private GameObject CreatePointOutline(int i) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("PointOutline" + i); pointOutlines.Add(val); if ((Object)(object)pointParent != (Object)null) { val.transform.SetParent(pointParent.transform); } Image val2 = val.AddComponent<Image>(); ((Graphic)val2).color = GS.PointColor; pointOutlineImages.Add(val2); RectTransform component = val.GetComponent<RectTransform>(); component.sizeDelta = new Vector2(GS.PointRadius, GS.PointRadius); pointOutlineRects.Add(component); Sprite pointSprite = GS.PointSprite; val2.sprite = pointSprite; return val; } private void CreateGridLines(bool createX) { //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Expected O, but got Unknown //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Expected O, but got Unknown //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) if (createX) { GameObject val = new GameObject("xGrid" + xGridRects.Count); val.transform.SetParent(gridParent.transform); Image val2 = val.AddComponent<Image>(); ((Graphic)val2).raycastTarget = false; xGridRects.Add(val.GetComponent<RectTransform>()); xGridImages.Add(val2); if (xGridRects.Count > 1) { TextMeshProUGUI val3 = new GameObject("xText" + xGridRects.Count).AddComponent<TextMeshProUGUI>(); RectTransform component = ((Component)val3).gameObject.GetComponent<RectTransform>(); ((Transform)component).SetParent((Transform)(object)val.GetComponent<RectTransform>()); ((TMP_Text)val3).font = GS.GridTextFont; ((TMP_Text)val3).fontStyle = (FontStyles)1; ((TMP_Text)val3).alignment = (TextAlignmentOptions)514; ((TMP_Text)val3).verticalAlignment = (VerticalAlignmentOptions)512; ((Graphic)val3).color = GS.XAxisTextColor; ((TMP_Text)val3).enableAutoSizing = true; component.sizeDelta = Vector2.one * GS.XAxisTextSize; ((Graphic)val3).raycastTarget = false; xAxisTexts.Add(val3); xAxisTextRects.Add(component); } } else { GameObject val4 = new GameObject("yGrid" + yGridRects.Count); val4.transform.SetParent(gridParent.transform); Image val5 = val4.AddComponent<Image>(); ((Graphic)val5).raycastTarget = false; yGridRects.Add(val4.GetComponent<RectTransform>()); yGridImages.Add(val5); if (yGridRects.Count > 1) { TextMeshProUGUI val6 = new GameObject("yText" + yGridRects.Count).AddComponent<TextMeshProUGUI>(); RectTransform component2 = ((Component)val6).gameObject.GetComponent<RectTransform>(); ((Transform)component2).SetParent((Transform)(object)val4.GetComponent<RectTransform>()); ((TMP_Text)val6).font = GS.GridTextFont; ((TMP_Text)val6).fontStyle = (FontStyles)1; ((TMP_Text)val6).alignment = (TextAlignmentOptions)514; ((TMP_Text)val6).verticalAlignment = (VerticalAlignmentOptions)512; ((Graphic)val6).color = GS.YAxisTextColor; ((TMP_Text)val6).enableAutoSizing = true; component2.sizeDelta = Vector2.one * GS.YAxisTextSize; ((Graphic)val6).raycastTarget = false; yAxisTexts.Add(val6); yAxisTextRects.Add(component2); } } } private void CreateselectionTypes() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("SelectionParent"); val.transform.SetParent((Transform)(object)graphContent); val.AddComponent<RectTransform>().anchoredPosition = new Vector2(0f, 0f); zoomSelectionImage = new GameObject("ZoomSelection").AddComponent<Image>(); zoomSelectionRectTransform = ((Component)zoomSelectionImage).GetComponent<RectTransform>(); ((Transform)zoomSelectionRectTransform).SetParent(val.transform); for (int i = 0; i < 4; i++) { Image val2 = new GameObject("Outline").AddComponent<Image>(); RectTransform component = ((Component)val2).GetComponent<RectTransform>(); ((Transform)component).SetParent((Transform)(object)zoomSelectionRectTransform); zoomSelectionOutlineImages.Add(val2); zoomSelectionOutlines.Add(component); } ((Component)zoomSelectionRectTransform).gameObject.SetActive(false); pointSelectionImage = new GameObject("PointSelection").AddComponent<Image>(); pointSelectionRectTransform = ((Component)pointSelectionImage).GetComponent<RectTransform>(); ((Transform)pointSelectionRectTransform).SetParent(val.transform); for (int j = 0; j < 4; j++) { Image val3 = new GameObject("Outline").AddComponent<Image>(); RectTransform component2 = ((Component)val3).GetComponent<RectTransform>(); ((Transform)component2).SetParent((Transform)(object)pointSelectionRectTransform); pointSelectionOutlineImages.Add(val3); pointSelectionOutlines.Add(component2); } ((Component)pointSelectionRectTransform).gameObject.SetActive(false); } private void CheckIfUpdateGraph() { //IL_0064: Unknown result type (might be due to invalid IL or missing references) CalculateMousePosition(); if (mouseInsideBounds) { if (Input.GetMouseButtonDown(0) || Input.GetMouseButton(0) || Input.GetMouseButtonUp(0)) { timeToUpdateMouse = GS.updatePeriod; } if (Input.touchCount > 0) { timeToUpdateTouch = GS.updatePeriod; } if (Input.mouseScrollDelta.y != 0f) { timeToUpdateScroll = GS.updatePeriod; } } if (timeToUpdateMouse > 0f) { UpdateGraphInternal(UpdateMethod.UpdatePositionAndScale | UpdateMethod.UpdatePointVisuals | UpdateMethod.UpdateContent | UpdateMethod.MouseAction | UpdateMethod.UpdateGridLines); } if (timeToUpdateTouch > 0f) { UpdateGraphInternal(UpdateMethod.UpdatePositionAndScale | UpdateMethod.UpdatePointVisuals | UpdateMethod.UpdateContent | UpdateMethod.MouseZoom | UpdateMethod.MouseAction | UpdateMethod.UpdateGridLines); } if (timeToUpdateScroll > 0f) { UpdateGraphInternal(UpdateMethod.UpdatePositionAndScale | UpdateMethod.UpdatePointVisuals | UpdateMethod.UpdateContent | UpdateMethod.MouseZoom | UpdateMethod.UpdateGridLines); } timeToUpdateMouse -= Time.deltaTime; timeToUpdateTouch -= Time.deltaTime; timeToUpdateScroll -= Time.deltaTime; } public void UpdateGraphInternal(UpdateMethod methodsToUpdate) { if (methodsToUpdate.HasFlag(UpdateMethod.UpdatePositionAndScale) || methodsToUpdate.HasFlag(UpdateMethod.All)) { UpdatePositionAndScale(); } CalculateCornerValues(); if (methodsToUpdate.HasFlag(UpdateMethod.UpdateOutlines) || methodsToUpdate.HasFlag(UpdateMethod.All)) { UpdateOutlines(); } if (methodsToUpdate.HasFlag(UpdateMethod.UpdateContent) || methodsToUpdate.HasFlag(UpdateMethod.All)) { HandleActiveObjects(); } if (methodsToUpdate.HasFlag(UpdateMethod.UpdatePointVisuals) || methodsToUpdate.HasFlag(UpdateMethod.All)) { UpdatePointVisuals(); } if (methodsToUpdate.HasFlag(UpdateMethod.UpdateContent) || methodsToUpdate.HasFlag(UpdateMethod.All)) { UpdateContent(); } CalculateMousePosition(); if (methodsToUpdate.HasFlag(UpdateMethod.MouseZoom) || methodsToUpdate.HasFlag(UpdateMethod.All)) { MouseZoom(); } if (methodsToUpdate.HasFlag(UpdateMethod.MouseAction) || methodsToUpdate.HasFlag(UpdateMethod.All)) { MouseAction(); } if (methodsToUpdate.HasFlag(UpdateMethod.UpdateGridLines) || methodsToUpdate.HasFlag(UpdateMethod.All)) { UpdateGridLines(); } } private void UpdatePositionAndScale() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0029: 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_003c: 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) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) contentScale = GS.GraphScale * zoom; maskObj.sizeDelta = GS.GraphSize; contentOffset = absoluteZoomPoint - zoomPoint * contentScale - moveOffset; graphContent.anchoredPosition = -GS.GraphSize / 2f + contentOffset; graph.sizeDelta = GS.GraphSize; backgroundRect.sizeDelta = GS.GraphSize; ((Graphic)backgroundImage).color = GS.BackgroundColor; } private void UpdateOutlines() { //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: 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_0050: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_012a: 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_0097: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < outlines.Count; i++) { if (i % 2 == 0) { outlines[i].sizeDelta = new Vector2(GS.OutlineWidth, GS.GraphSize.y + GS.OutlineWidth * 2f); outlines[i].anchoredPosition = new Vector2((float)((i != 0) ? 1 : (-1)) * (GS.GraphSize.x + GS.OutlineWidth) / 2f, 0f); } else { outlines[i].sizeDelta = new Vector2(GS.GraphSize.x + GS.OutlineWidth * 2f, GS.OutlineWidth); outlines[i].anchoredPosition = new Vector2(0f, (float)((i != 1) ? 1 : (-1)) * (GS.GraphSize.y + GS.OutlineWidth) / 2f); } } } private void CalculateCornerValues() { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: 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_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006a: 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_007b: 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_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_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0097: 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_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) topRight = new Vector2(Mathf.Clamp(topRight.x, bottomLeft.x, float.PositiveInfinity), Mathf.Clamp(topRight.y, bottomLeft.y, float.PositiveInfinity)); bottomLeft = -contentOffset / contentScale; topRight = bottomLeft + GS.GraphSize / contentScale; center = (topRight - bottomLeft) / 2f + bottomLeft; } private void UpdateContent() { //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: 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) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_018a: 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_0191: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: 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_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) if (((Vector2Int)(ref xAxisRange)).x == -1 || ((Vector2Int)(ref xAxisRange)).y == -1) { return; } Vector2 val = default(Vector2); ((Vector2)(ref val))..ctor(bottomLeft.y, topRight.y); for (int i = ((Vector2Int)(ref xAxisRange)).x - 1; i <= ((Vector2Int)(ref xAxisRange)).y + 1; i++) { if (i < 0 || i > sortedIndices.Count - 1) { continue; } int num = sortedIndices[i]; float y = values[num].y; float y2 = values[Mathf.Clamp(num - 1, 0, values.Count - 1)].y; float y3 = values[Mathf.Clamp(num + 1, 0, values.Count - 1)].y; if ((!(y < val.x) || !(y2 < val.x) || !(y3 < val.x)) && (!(y > val.y) || !(y2 > val.y) || !(y3 > val.y))) { UpdateAnchoredPosition(pointOutlineRects[i], CalculatePosition(i)); if (lines.Count > 0 && num < lines.Count) { Vector2 val2 = CalculatePosition(num); Vector2 val3 = CalculatePosition(num + 1); float num2 = Vector2.Distance(val2, val3); UpdateAnchoredPosition(lineRects[num], (val3 + val2) / 2f); UpdateSizeDelta(lineRects[num], new Vector2(num2, GS.LineWidth)); Vector2 val4 = val3 - val2; float num3 = Mathf.Atan2(val4.y, val4.x) * 57.29578f; ((Transform)lineRects[num]).rotation = Quaternion.AngleAxis(num3, Vector3.forward); } } } } private void HandleActiveObjects() { //IL_031b: Unknown result type (might be due to invalid IL or missing references) //IL_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) try { if (((Vector2Int)(ref prevXAxisRange)).x < ((Vector2Int)(ref xAxisRange)).x) { for (int i = ((Vector2Int)(ref prevXAxisRange)).x - 1; i < ((Vector2Int)(ref xAxisRange)).x - 1; i++) { if (i >= 0) { pointOutlines[sortedIndices[i]].SetActive(false); if (i < lines.Count) { lines[sortedIndices[i]].SetActive(false); } } } } else if (((Vector2Int)(ref prevXAxisRange)).x > ((Vector2Int)(ref xAxisRange)).x && ((Vector2Int)(ref xAxisRange)).x >= 0) { for (int j = ((Vector2Int)(ref xAxisRange)).x - 1; j < ((Vector2Int)(ref prevXAxisRange)).x; j++) { if (j >= 0) { pointOutlines[sortedIndices[j]].SetActive(true); if (j < lines.Count) { lines[sortedIndices[j]].SetActive(true); } } } } if (((Vector2Int)(ref prevXAxisRange)).y > ((Vector2Int)(ref xAxisRange)).y) { for (int k = ((Vector2Int)(ref xAxisRange)).y + 2; k <= ((Vector2Int)(ref prevXAxisRange)).y + 2; k++) { if (k <= pointOutlines.Count - 1 && k >= 0) { pointOutlines[sortedIndices[k]].SetActive(false); if (k < lines.Count) { lines[sortedIndices[k]].SetActive(false); } } } } else if (((Vector2Int)(ref xAxisRange)).y > ((Vector2Int)(ref prevXAxisRange)).y) { for (int l = ((Vector2Int)(ref prevXAxisRange)).y + 2; l <= ((Vector2Int)(ref xAxisRange)).y + 1; l++) { if (l <= pointOutlines.Count - 1 && l >= 0) { pointOutlines[sortedIndices[l]].SetActive(true); if (l < lines.Count) { lines[sortedIndices[l]].SetActive(true); } } } } } catch (ArgumentOutOfRangeException) { } prevXAxisRange = xAxisRange; xAxisRange = new Vector2Int(MinMaxBinarySearch(findLeft: true), MinMaxBinarySearch(findLeft: false)); } private Vector2 CalculatePosition(int i) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) return values[i] * contentScale; } private void MouseTrigger(int pointIndex, bool enter) { //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_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Expected O, but got Unknown //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: 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_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_025b: Unknown result type (might be due to invalid IL or missing references) fixedHoveredPoints.Add(pointIndex); fixedHoveredPoints = fixedHoveredPoints.Distinct().ToList(); if (enter) { activePointIndex = pointIndex; activePointValue = values[pointIndex]; pointIsActive = enter; if (pointSelectionType == PointSelectionType.Select) { lockedHoveredPoints.Add(pointIndex); lockedHoveredPoints = lockedHoveredPoints.Distinct().ToList(); } } else { if ((lockedPoints.Contains(activePointIndex) && pointSelectionType == PointSelectionType.Select) || (fixedPointIndex == activePointIndex && pointSelectionType == PointSelectionType.FixZoomPoint)) { return; } activePointIndex = pointIndex; activePointValue = values[pointIndex]; pointIsActive = enter; } if (points[pointIndex].transform.childCount > 0) { Object.Destroy((Object)(object)((Component)points[pointIndex].transform.GetChild(0)).gameObject); return; } GameObject val = new GameObject("coordinateDisplay"); val.transform.SetParent(points[pointIndex].transform, false); RectTransform val2 = val.AddComponent<RectTransform>(); val2.anchorMin = Vector2.zero; val2.anchorMax = Vector2.one; val2.offsetMin = Vector2.zero; val2.offsetMax = Vector2.zero; ((Transform)val2).localPosition = ((Transform)val2).localPosition + new Vector3(0f, 25f, 0f); TextMeshProUGUI val3 = val.gameObject.AddComponent<TextMeshProUGUI>(); if (currentPlotIsLog) { ((TMP_Text)val3).text = $"{Math.Round(values[pointIndex].x, 0)}, {trueYvalues[pointIndex]}"; } else { ((TMP_Text)val3).text = $"{Math.Round(values[pointIndex].x, 0)}, {trueYvalues[pointIndex]}"; } ((Graphic)val3).color = Color.white; ((TMP_Text)val3).fontSize = 30f; ((TMP_Text)val3).alignment = (TextAlignmentOptions)514; ((TMP_Text)val3).enableWordWrapping = false; ((Graphic)val3).raycastTarget = false; } private void PointClicked(int pointIndex) { //IL_002b: 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_0083: Unknown result type (might be due to invalid IL or missing references) if (pointSelectionType == PointSelectionType.FixZoomPoint) { if (fixedPointIndex != -1) { ChangeZoomPoint(values[pointIndex]); fixedHoveredPoints.Add(fixedPointIndex); } fixedHoveredPoints = fixedHoveredPoints.Distinct().ToList(); fixedPointIndex = ((fixedPointIndex == pointIndex) ? (-1) : pointIndex); ChangeZoomPoint((fixedPointIndex == -1) ? center : values[pointIndex]); } else if (lockedPoints.Contains(pointIndex)) { lockedPoints.Remove(pointIndex); } else { lockedPoints.Add(pointIndex); } } private void UpdatePointVisuals() { if (((Vector2Int)(ref xAxisRange)).x == -1 || ((Vector2Int)(ref xAxisRange)).y == -1) { return; } for (int i = ((Vector2Int)(ref xAxisRange)).x; i <= ((Vector2Int)(ref xAxisRange)).y; i++) { if (activePointIndex != sortedIndices[i]) { lockedHoveredPoints.Add(sortedIndices[i]); fixedHoveredPoints.Add(sortedIndices[i]); } } } private void UpdatePoints() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //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_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: 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) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0155: 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_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < lockedHoveredPoints.Count; i++) { int num = lockedHoveredPoints[i]; bool flag = activePointIndex == num && pointIsActive; Vector2 val; Color val2; float num2; if (lockedPoints.Contains(num)) { val = Vector2.one * GS.PointLockedRadius; val2 = GS.PointLockedColor; num2 = GS.PointLockedSpeed; } else if (flag && pointSelectionType == PointSelectionType.Select) { val = Vector2.one * GS.PointHoverRadius; val2 = GS.PointHoverColor; num2 = GS.PointHoverSpeed; } else { val = Vector2.one * GS.PointRadius; val2 = GS.PointColor; num2 = GS.PointHoverSpeed; } pointRects[num].sizeDelta = Vector2.Lerp(pointRects[num].sizeDelta, val, Time.deltaTime * num2); if (!flag && Vector2.Distance(pointRects[num].sizeDelta, val) < 0.5f && Vector4.Distance(Color.op_Implicit(((Graphic)pointImages[num]).color), Color.op_Implicit(val2)) < 0.5f) { ((Graphic)pointImages[num]).color = val2; pointRects[num].sizeDelta = val; lockedHoveredPoints.RemoveAt(i); } else if (!fixedHoveredPoints.Contains(num) && num != fixedPointIndex) { pointOutlineRects[num].sizeDelta = pointRects[num].sizeDelta + Vector2.one * GS.UnfixedPointOutlineWidth; } } UpdatePointOutlines(); } private void UpdatePointOutlines() { //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: 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_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_0182: 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_0194: Unknown result type (might be due to invalid IL or missing references) Vector2 val = default(Vector2); for (int i = 0; i < fixedHoveredPoints.Count; i++) { int num = fixedHoveredPoints[i]; bool flag = activePointIndex == num && pointIsActive; float num2; Color val2; if (fixedPointIndex == num) { ((Vector2)(ref val))..ctor(GS.FixedPointOutlineWidth, GS.FixedPointOutlineWidth); val2 = GS.FixedPointOutlineColor; num2 = GS.FixedPointOutlineSpeed; } else if (flag && pointSelectionType == PointSelectionType.FixZoomPoint) { ((Vector2)(ref val))..ctor(GS.UnfixedPointOutlineHoverWidth, GS.UnfixedPointOutlineHoverWidth); val2 = GS.UnfixedPointOutlineHoverColor; num2 = GS.UnfixedPointOutlineHoverSpeed; } else { ((Vector2)(ref val))..ctor(GS.UnfixedPointOutlineWidth, GS.UnfixedPointOutlineWidth); val2 = GS.UnfixedPointOutlineColor; num2 = GS.UnfixedPointOutlineHoverSpeed; } val += pointRects[num].sizeDelta; RectTransform val3 = pointOutlineRects[num]; if (pointSelectionType == PointSelectionType.FixZoomPoint) { val3.sizeDelta = Vector2.Lerp(val3.sizeDelta, val, Time.deltaTime * num2); } else { val3.sizeDelta = val; } Image val4 = pointOutlineImages[num]; val2 = Color.Lerp(((Graphic)val4).color, val2, Time.deltaTime * num2); ((Graphic)val4).color = val2; if (!flag && Vector2.Distance(val3.sizeDelta, val) < 0.5f) { fixedHoveredPoints.RemoveAt(i); } } } private void UpdateGridLines() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001f: 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_003d: 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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_02c3: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Unknown result type (might be due to invalid IL or missing references) //IL_0344: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_03a7: Unknown result type (might be due to invalid IL or missing references) //IL_0357: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Unknown result type (might be due to invalid IL or missing references) //IL_0373: Unknown result type (might be due to invalid IL or missing references) //IL_058c: Unknown result type (might be due to invalid IL or missing references) //IL_05a7: Unknown result type (might be due to invalid IL or missing references) //IL_05ba: Unknown result type (might be due to invalid IL or missing references) //IL_05c5: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d5: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_0534: Unknown result type (might be due to invalid IL or missing references) //IL_0547: Unknown result type (might be due to invalid IL or missing references) //IL_0571: Unknown result type (might be due to invalid IL or missing references) //IL_0621: Unknown result type (might be due to invalid IL or missing references) //IL_062a: Unknown result type (might be due to invalid IL or missing references) //IL_0631: Unknown result type (might be due to invalid IL or missing references) //IL_0645: Unknown result type (might be due to invalid IL or missing references) //IL_0665: Unknown result type (might be due to invalid IL or missing references) //IL_0683: Unknown result type (might be due to invalid IL or missing references) //IL_06c7: Unknown result type (might be due to invalid IL or missing references) //IL_06e6: Unknown result type (might be due to invalid IL or missing references) //IL_072d: Unknown result type (might be due to invalid IL or missing references) //IL_0742: Unknown result type (might be due to invalid IL or missing references) //IL_0749: Unknown result type (might be due to invalid IL or missing references) //IL_06f9: Unknown result type (might be due to invalid IL or missing references) //IL_070e: Unknown result type (might be due to invalid IL or missing references) //IL_0715: Unknown result type (might be due to invalid IL or missing references) Vector2 val = CalculateGridSpacing(); Vector2 val2 = new Vector2(Mathf.Ceil(bottomLeft.x * val.x) / val.x, Mathf.Ceil(bottomLeft.y * val.y) / val.y) * contentScale; Vector2 val3 = default(Vector2); ((Vector2)(ref val3))..ctor(-1f, -1f); int num = Mathf.CeilToInt((topRight.y - bottomLeft.y) * val.y) + 1; int num2 = Mathf.CeilToInt((topRight.x - bottomLeft.x) * val.x) + 1; if (num2 < 0) { num2 = 7; } if (num < 0) { num = 7; } while (xGridRects.Count <= num2) { CreateGridLines(createX: true); } while (yGridRects.Count <= num) { CreateGridLines(createX: false); } for (int i = 0; i < num2; i++) { RectTransform val4 = xGridRects[i]; Image val5 = xGridImages[i]; if (!((Component)val4).gameObject.activeSelf) { ((Component)val4).gameObject.SetActive(true); } if (i == 0) { UpdateSizeDelta(val4, new Vector2(GS.XAxisWidth, GS.GraphSize.y * 2f)); ((Graphic)val5).color = GS.XAxisColor; UpdateAnchoredPosition(val4, new Vector2(0f, center.y * contentScale.y)); continue; } UpdateSizeDelta(val4, new Vector2(GS.XGridWidth, GS.GraphSize.y * 2f)); ((Graphic)val5).color = GS.XGridColor; if (Mathf.Round(val2.x + ((float)i + val3.x) / val.x * contentScale.x) == 0f) { val3.x = 0f; } UpdateAnchoredPosition(val4, new Vector2(val2.x + ((float)i + val3.x) / val.x * contentScale.x, center.y * contentScale.y)); UpdateSizeDelta(xAxisTextRects[i - 1], new Vector2(1f / val.x * contentScale.x, GS.XAxisTextSize)); UpdateAnchoredPosition(xAxisTextRects[i - 1], new Vector2(0f, (0f - center.y) * contentScale.y + GS.XAxisTextOffset)); ((TMP_Text)xAxisTexts[i - 1]).text = ((Mathf.Floor(1f / val.x) > 0f) ? Mathf.Round(val2.x / contentScale.x + ((float)i + val3.x) / val.x).ToString() : (val2.x / contentScale.x + ((float)i + val3.x) / val.x).ToString("R")); if (((TMP_Text)xAxisTexts[i - 1]).text[0] == '-') { ((TMP_Text)xAxisTexts[i - 1]).text = ""; } } if (xAxisTexts.Count >= 2) { for (int j = 1; j < xAxisTexts.Count; j++) { if (((TMP_Text)xAxisTexts[j - 1]).text == "" && ((TMP_Text)xAxisTexts[j]).text != "") { ((TMP_Text)xAxisTexts[j - 1]).text = "seconds"; break; } } } for (int k = 0; k < num; k++) { RectTransform val6 = yGridRects[k]; Image val7 = yGridImages[k]; if (!((Component)val6).gameObject.activeSelf) { ((Component)val6).gameObject.SetActive(true); } if (k == 0) { UpdateSizeDelta(val6, new Vector2(GS.GraphSize.x * 2f, GS.YAxisWidth)); ((Graphic)val7).color = GS.YAxisColor; UpdateAnchoredPosition(val6, new Vector2(center.x * contentScale.x, 0f)); continue; } UpdateSizeDelta(val6, new Vector2(GS.GraphSize.x * 2f, GS.YGridWidth)); ((Graphic)val7).color = GS.YGridColor; if (Mathf.Round(val2.y + ((float)k + val3.y) / val.y * contentScale.y) == 0f) { val3.y = 0f; } UpdateAnchoredPosition(val6, new Vector2(center.x * contentScale.x, val2.y + ((float)k + val3.y) / val.y * contentScale.y)); UpdateSizeDelta(yAxisTextRects[k - 1], new Vector2(1f / val.x * contentScale.x, GS.XAxisTextSize)); UpdateAnchoredPosition(yAxisTextRects[k - 1], new Vector2((0f - center.x) * contentScale.x + GS.YAxisTextOffset, 0f)); ((TMP_Text)yAxisTexts[k - 1]).text = ((Mathf.Floor(1f / val.y) > 0f) ? Mathf.Round(val2.y / contentScale.y + ((float)k + val3.y) / val.y).ToString() : (val2.y / contentScale.y + ((float)k + val3.y) / val.y).ToString("R")); if (currentPlotIsLog) { ((TMP_Text)yAxisTexts[k - 1]).text = $"{logBase}<sup>{((TMP_Text)yAxisTexts[k - 1]).text}</sup>"; } } for (int l = num2; l < xGridRects.Count; l++) { if (((Component)xGridRects[l]).gameObject.activeSelf) { ((Component)xGridRects[l]).gameObject.SetActive(false); } } for (int m = num; m < yGridRects.Count; m++) { if (((Component)yGridRects[m]).gameObject.activeSelf) { ((Component)yGridRects[m]).gameObject.SetActive(false); } } } private Vector2 CalculateGridSpacing() { //IL_0053: 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_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) int num = Mathf.FloorToInt(Mathf.Log(zoom.x, 2f)); int num2 = Mathf.FloorToInt(Mathf.Log(zoom.y, 2f)); float num3 = Mathf.Pow(2f, (float)num); float num4 = Mathf.Pow(2f, (float)num2); return new Vector2(num3, num4) * GS.GridSpacing; } private void SetCornerValuesInternal(Vector2 newBottomLeft, Vector2 newTopRight) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0095: 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_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_011d: 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) //IL_0123: Unknown result type (might be due to invalid IL or missing references) if (newBottomLeft.x < -2.5E+38f || float.IsNaN(newBottomLeft.x)) { newBottomLeft.x = -2.5E+38f; } if (newBottomLeft.y < -2.5E+38f || float.IsNaN(newBottomLeft.y)) { newBottomLeft.y = -2.5E+38f; } if (newTopRight.x > 2.5E+38f || float.IsNaN(newTopRight.x)) { newTopRight.x = 2.5E+38f; } if (newTopRight.y > 2.5E+38f || float.IsNaN(newTopRight.y)) { newTopRight.y = 2.5E+38f; } Vector2 val = (newTopRight - newBottomLeft) / 2f + newBottomLeft; targetMoveOffset = (val - center) * contentScale + moveOffset; ChangeZoomPoint(val); targetZoom = GS.GraphSize / GS.GraphScale / (newTopRight - newBottomLeft); } private void CalculateMousePosition() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0026: 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_0045: 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_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_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) mousePos = (new Vector2(Input.mousePosition.x, Input.mousePosition.y) - new Vector2(((Component)graphContent).transform.position.x, ((Component)graphContent).transform.position.y)) / contentScale; mouseInsideBounds = mousePos.x > bottomLeft.x && mousePos.y > bottomLeft.y && mousePos.x < topRight.x && mousePos.y < topRight.y; mousePos = new Vector2(Mathf.Clamp(mousePos.x, bottomLeft.x, topRight.x), Mathf.Clamp(mousePos.y, bottomLeft.y, topRight.y)); } private void MouseZoom() { //IL_0010: 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_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0077: 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) if (mouseInsideBounds && Input.mouseScrollDelta.y != 0f) { if (fixedPointIndex == -1) { ChangeZoomPoint(mousePos); } targetZoom = zoom + Input.mouseScrollDelta.y * zoom * GS.ZoomSpeed / 100f; } } private void ChangeZoomPoint(Vector2 newZoomPoint) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: 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_002c: Unknown result type (might be due to invalid IL or missing references) //IL_003c: 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_0043: 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_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0054: 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_0065: Unknown result type (might be due to invalid IL or missing references) if (IsWithinBounds(zoom, (newZoomPoint - zoomPoint) * contentScale + absoluteZoomPoint, newZoomPoint, moveOffset)) { absoluteZoomPoint = (newZoomPoint - zoomPoint) * contentScale + absoluteZoomPoint; zoomPoint = newZoomPoint; } } private void MouseAction() { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: 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) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_010c: 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_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0261: 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_026a: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Invalid comparison between Unknown and I4 //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03d5: Invalid comparison between Unknown and I4 //IL_027f: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_02a2: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_02d6: Unknown result type (might be due to invalid IL or missing references) //IL_02dc: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_02e6: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_04bd: Invalid comparison between Unknown and I4 //IL_0365: Unknown result type (might be due to invalid IL or missing references) //IL_036a: Unknown result type (might be due to invalid IL or missing references) //IL_03fc: Unknown result type (might be due to invalid IL or missing references) //IL_0401: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_040a: Unknown result type (might be due to invalid IL or missing references) //IL_040c: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Unknown result type (might be due to invalid IL or missing references) //IL_0417: Unknown result type (might be due to invalid IL or missing references) if (Input.GetMouseButtonDown(0)) { initialMouseInsideBounds = mouseInsideBounds; if (!mouseInsideBounds) { return; } initialMousePos = Vector2.op_Implicit(Input.mousePosition); if (mouseActionType == MouseActionType.Move) { initialMoveOffset = moveOffset; } else if (mouseActionType == MouseActionType.SelectPoints) { initialLockedPoints.Clear(); for (int i = 0; i < lockedPoints.Count; i++) { initialLockedPoints.Add(lockedPoints[i]); } } return; } if (Input.GetMouseButton(0) && initialMouseInsideBounds) { if (Input.GetMouseButtonDown(1)) { initialMouseInsideBounds = false; ((Component)zoomSelectionRectTransform).gameObject.SetActive(false); ((Component)pointSelectionRectTransform).gameObject.SetActive(false); } if (previousMousePos != mousePos) { Vector2 val = Vector2.op_Implicit(Input.mousePosition); if (mouseActionType == MouseActionType.Move) { targetMoveOffset = initialMousePos - val + initialMoveOffset; } else if (mouseActionType == MouseActionType.SelectAreaToZoom) { if (!((Component)zoomSelectionRectTransform).gameObject.activeSelf) { ((Component)zoomSelectionRectTransform).gameObject.SetActive(true); } SelectAreaToZoom(release: false); } else if (mouseActionType == MouseActionType.SelectPoints) { if (!((Component)pointSelectionRectTransform).gameObject.activeSelf) { ((Component)pointSelectionRectTransform).gameObject.SetActive(true); } SelectPoints(release: false); } } previousMousePos = mousePos; } else if (Input.GetMouseButtonUp(0) && initialMouseInsideBounds) { if (mouseActionType == MouseActionType.SelectAreaToZoom) { SelectAreaToZoom(release: true); } else if (mouseActionType == MouseActionType.SelectPoints) { SelectPoints(release: true); } recentlyLockedPoints.Clear(); } if (Input.touchCount != 1) { return; } Touch touch = Input.GetTouch(0); if ((int)((Touch)(ref touch)).phase == 0) { initialMousePos = ((Touch)(ref touch)).position; mousePos = (new Vector2(((Touch)(ref touch)).position.x, ((Touch)(ref touch)).position.y) - new Vector2(((Component)graphContent).transform.position.x, ((Component)graphContent).transform.position.y)) / contentScale; initialMouseInsideBounds = mousePos.x > bottomLeft.x && mousePos.y > bottomLeft.y && mousePos.x < topRight.x && mousePos.y < topRight.y; if (mouseActionType == MouseActionType.Move) { initialMoveOffset = moveOffset; } else if (mouseActionType == MouseActionType.SelectPoints) { initialLockedPoints.Clear(); for (int j = 0; j < lockedPoints.Count; j++) { initialLockedPoints.Add(lockedPoints[j]); } } } else if ((int)((Touch)(ref touch)).phase == 1 && initialMouseInsideBounds) { if (mouseActionType == MouseActionType.Move) { Vector2 position = ((Touch)(ref touch)).position; targetMoveOffset = initialMousePos - position + initialMoveOffset; } else if (mouseActionType == MouseActionType.SelectAreaToZoom) { if (!((Component)zoomSelectionRectTransform).gameObject.activeSelf) { ((Component)zoomSelectionRectTransform).gameObject.SetActive(true); } SelectAreaToZoom(release: false); } else if (mouseActionType == MouseActionType.SelectPoints) { if (!((Component)pointSelectionRectTransform).gameObject.activeSelf) { ((Component)pointSelectionRectTransform).gameObject.SetActive(true); } SelectPoints(release: false); } } else if ((int)((Touch)(ref touch)).phase == 3 && initialMouseInsideBounds) { if (mouseActionType == MouseActionType.SelectAreaToZoom) { SelectAreaToZoom(release: true); } else if (mouseActionType == MouseActionType.SelectPoints) { SelectPoints(release: true); } recentlyLockedPoints.Clear(); } } private void SelectAreaToZoom(bool release) { //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_003c: 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: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_0104: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0311: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_0322: Unknown result type (might be due to invalid IL or missing references) //IL_0328: Unknown result type (might be due to invalid IL or missing references) //IL_033a: Unknown result type (might be due to invalid IL or missing references) //IL_0340: Unknown result type (might be due to invalid IL or missing references) //IL_034b: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0361: Unknown result type (might be due to invalid IL or missing references) //IL_0363: Unknown result type (might be due to invalid IL or missing references) //IL_0365: Unknown result type (might be due to invalid IL or missing references) //IL_036a: Unknown result type (might be due to invalid IL or missing references) //IL_0374: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Unknown result type (might be due to invalid IL or missing references) //IL_037f: Unknown result type (might be due to invalid IL or missing references) //IL_0384: 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) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0120: 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) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_039c: Unknown result type (might be due to invalid IL or missing references) //IL_039e: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: 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_0293: Unknown result type (might be due to invalid IL or missing references) //IL_02ad: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) Vector2 val = (new Vector2(initialMousePos.x, initialMousePos.y) - new Vector2(((Component)graphContent).transform.position.x, ((Component)graphContent).transform.position.y)) / contentScale; Vector2 val2 = default(Vector2); ((Vector2)(ref val2))..ctor(mousePos.x, val.y + (mousePos.x - val.x) / GS.GraphSize.x * GS.GraphSize.y * contentScale.x / contentScale.y); Vector2 val3 = default(Vector2); ((Vector2)(ref val3))..ctor(mousePos.x, val.y + (mousePos.x - val.x)); Vector2 val4 = ((rectangleType == RectangleType.Free) ? mousePos : ((rectangleType == RectangleType.PreserveAspectRatio) ? val2 : val3)); if (!release) { zoomSelectionRectTransform.anchoredPosition = (val + (val4 - val) / 2f) * contentScale; Vector2 val5 = new Vector2(Mathf.Abs(val4.x - val.x), Mathf.Abs(val4.y - val.y)) * contentScale; zoomSelectionRectTransform.sizeDelta = val5; ((Graphic)zoomSelectionImage).color = GS.ZoomSelectionColor; for (int i = 0; i < zoomSelectionOutlines.Count; i++) { if (i % 2 == 0) { zoomSelectionOutlines[i].sizeDelta = new Vector2(GS.ZoomSelectionOutlineWidth, val5.y + GS.ZoomSelectionOutlineWidth * 2f); zoomSelectionOutlines[i].anchoredPosition = new Vector2((float)((i != 0) ? 1 : (-1)) * (val5.x + GS.ZoomSelectionOutlineWidth) / 2f, 0f); } else { zoomSelectionOutlines[i].sizeDelta = new Vector2(val5.x + GS.ZoomSelectionOutlineWidth * 2f, GS.ZoomSelectionOutlineWidth); zoomSelectionOutlines[i].anchoredPosition = new Vector2(0f, (float)((i != 1) ? 1 : (-1)) * (val5.y + GS.ZoomSelectionOutlineWidth) / 2f); } ((Graphic)zoomSelectionOutlineImages[i]).color = GS.ZoomSelectionOutlineColor; } } else { ((Component)zoomSelectionRectTransform).gameObject.SetActive(false); Vector2 val6 = default(Vector2); ((Vector2)(ref val6))..ctor(Mathf.Min(val.x, val4.x), Mathf.Min(val.y, val4.y)); Vector2 val7 = default(Vector2); ((Vector2)(ref val7))..ctor(Mathf.Max(val.x, val4.x), Mathf.Max(val.y, val4.y)); Vector2 val8 = val7 - val6; float magnitude = ((Vector2)(ref val8)).magnitude; val8 = topRight - bottomLeft; if (magnitude > ((Vector2)(ref val8)).magnitude / 16f) { SetCornerValues(val6, val7); } } } private void SelectPoints(bool release) { //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_003c: 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: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to inva