summaryrefslogtreecommitdiff
path: root/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util
diff options
context:
space:
mode:
authorAndrew Lee <alee14498@protonmail.com>2020-08-20 23:40:50 -0400
committerAndrew Lee <alee14498@protonmail.com>2020-08-20 23:40:50 -0400
commit3af4c218c0e70167db23a6303d2af30aff37d2fe (patch)
tree927f29edcf54ab562f40f3d1c6cb69287c7f5980 /Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util
parentb6daed0af784f4e9bc13329dd87c671b06ee1c65 (diff)
downloadProject-Sandbox-3af4c218c0e70167db23a6303d2af30aff37d2fe.tar.gz
Project-Sandbox-3af4c218c0e70167db23a6303d2af30aff37d2fe.tar.bz2
Project-Sandbox-3af4c218c0e70167db23a6303d2af30aff37d2fe.zip
Removed a bunch of stuff; Changes
Diffstat (limited to 'Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util')
-rw-r--r--Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_ExtensionMethods.cs67
-rw-r--r--Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_ExtensionMethods.cs.meta12
-rw-r--r--Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_FloatString.cs232
-rw-r--r--Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_FloatString.cs.meta12
-rw-r--r--Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_Intstring.cs131
-rw-r--r--Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_Intstring.cs.meta12
-rw-r--r--Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_Singleton.cs135
-rw-r--r--Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_Singleton.cs.meta12
8 files changed, 613 insertions, 0 deletions
diff --git a/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_ExtensionMethods.cs b/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_ExtensionMethods.cs
new file mode 100644
index 0000000..4580cc1
--- /dev/null
+++ b/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_ExtensionMethods.cs
@@ -0,0 +1,67 @@
+/* ---------------------------------------
+ * Author: Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Collaborators: Lars Aalbertsen (@Rockylars)
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 04-Jan-18
+ * Studio: Tayx
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+using System.Collections.Generic;
+using UnityEngine.UI;
+
+namespace Tayx.Graphy.Utils
+{
+ public static class G_ExtensionMethods
+ {
+ /* ----- TODO: ----------------------------
+ * Add summaries to the functions.
+ * --------------------------------------*/
+
+ #region Methods -> Extension Methods
+
+ /// <summary>
+ /// Functions as the SetActive function in the GameObject class, but for a list of them.
+ /// </summary>
+ /// <param name="gameObjects">
+ /// List of GameObjects.
+ /// </param>
+ /// <param name="active">
+ /// Wether to turn them on or off.
+ /// </param>
+ public static List<GameObject> SetAllActive(this List<GameObject> gameObjects, bool active)
+ {
+ foreach (var gameObj in gameObjects)
+ {
+ gameObj.SetActive(active);
+ }
+
+ return gameObjects;
+ }
+
+ public static List<Image> SetOneActive(this List<Image> images, int active)
+ {
+ for (int i = 0; i < images.Count; i++)
+ {
+ images[i].gameObject.SetActive(i == active);
+ }
+
+ return images;
+ }
+
+ public static List<Image> SetAllActive(this List<Image> images, bool active)
+ {
+ foreach (var image in images)
+ {
+ image.gameObject.SetActive(active);
+ }
+
+ return images;
+ }
+
+ #endregion
+ }
+}
diff --git a/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_ExtensionMethods.cs.meta b/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_ExtensionMethods.cs.meta
new file mode 100644
index 0000000..2b0b2e8
--- /dev/null
+++ b/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_ExtensionMethods.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 5aef4337f2241ec4d9a2ea5883fd1828
+timeCreated: 1515099756
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_FloatString.cs b/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_FloatString.cs
new file mode 100644
index 0000000..9a112d6
--- /dev/null
+++ b/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_FloatString.cs
@@ -0,0 +1,232 @@
+/* ---------------------------------------
+ * Author: Started by David Mkrtchyan, modified by Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Collaborators: Lars Aalbertsen (@Rockylars)
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 18-May-18
+ * Studio: Tayx
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+
+namespace Tayx.Graphy.Utils.NumString
+{
+ public static class G_FloatString
+ {
+ /* ----- TODO: ----------------------------
+ * Try and move the Init to a core method.
+ * Try and replace the Pow function with a better algorithm.
+ * --------------------------------------*/
+
+ #region Variables -> Private
+
+ /// <summary>
+ /// Float represented as a string, formatted.
+ /// </summary>
+ private const string floatFormat = "0.0";
+
+ /// <summary>
+ /// The currently defined, globally used decimal multiplier.
+ /// </summary>
+ private static float decimalMultiplier = 1f;
+
+ /// <summary>
+ /// List of negative floats casted to strings.
+ /// </summary>
+ private static string[] negativeBuffer = new string[0];
+
+ /// <summary>
+ /// List of positive floats casted to strings.
+ /// </summary>
+ private static string[] positiveBuffer = new string[0];
+
+ #endregion
+
+ #region Properties -> Public
+
+ /// <summary>
+ /// Have the int buffers been initialized?
+ /// </summary>
+ public static bool Inited
+ {
+ get
+ {
+ return negativeBuffer.Length > 0 || positiveBuffer.Length > 0;
+ }
+ }
+
+ /// <summary>
+ /// The lowest float value of the existing number buffer.
+ /// </summary>
+ public static float MinValue
+ {
+ get
+ {
+ return -(negativeBuffer.Length - 1).FromIndex();
+ }
+ }
+
+ /// <summary>
+ /// The highest float value of the existing number buffer.
+ /// </summary>
+ public static float MaxValue
+ {
+ get
+ {
+ return (positiveBuffer.Length - 1).FromIndex();
+ }
+ }
+
+ #endregion
+
+ #region Methods -> Public
+
+ //TODO: Figure out what the negative buffer doe, why we dont have default values and why the range is so high.
+ /// <summary>
+ /// Initialize the buffers.
+ /// </summary>
+ /// <param name="minNegativeValue">
+ /// Lowest negative value allowed.
+ /// </param>
+ /// <param name="maxPositiveValue">
+ /// Highest positive value allowed.
+ /// </param>
+ /// <param name="decimals">
+ /// How many decimals will the values use?
+ /// </param>
+ public static void Init(float minNegativeValue, float maxPositiveValue, int decimals = 1)
+ {
+ decimalMultiplier = Pow(10, Mathf.Clamp(decimals, 1, 5));
+
+ int negativeLength = minNegativeValue.ToIndex();
+ int positiveLength = maxPositiveValue.ToIndex();
+
+ if (negativeLength >= 0)
+ {
+ negativeBuffer = new string[negativeLength];
+ for (int i = 0; i < negativeLength; i++)
+ {
+ negativeBuffer[i] = (-i).FromIndex().ToString(floatFormat);
+ }
+ }
+
+ if (positiveLength >= 0)
+ {
+ positiveBuffer = new string[positiveLength];
+ for (int i = 0; i < positiveLength; i++)
+ {
+ positiveBuffer[i] = i.FromIndex().ToString(floatFormat);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Returns this float as a cached string.
+ /// </summary>
+ /// <param name="value">
+ /// The required float.
+ /// </param>
+ /// <returns>
+ /// A cached number string.
+ /// </returns>
+ public static string ToStringNonAlloc(this float value)
+ {
+ int valIndex = value.ToIndex();
+
+ if (value < 0 && valIndex < negativeBuffer.Length)
+ {
+ return negativeBuffer[valIndex];
+ }
+
+ if (value >= 0 && valIndex < positiveBuffer.Length)
+ {
+ return positiveBuffer[valIndex];
+ }
+
+ return value.ToString();
+ }
+
+ //TODO: Convert this to use floatFormat instead, but investigate which functions require and dont require one first.
+ /// <summary>
+ /// Returns this float as a cached string.
+ /// </summary>
+ /// <param name="value">
+ /// The required float.
+ /// </param>
+ /// <returns>
+ /// A cached number string.
+ /// </returns>
+ public static string ToStringNonAlloc(this float value, string format)
+ {
+ int valIndex = value.ToIndex();
+
+ if (value < 0 && valIndex < negativeBuffer.Length)
+ {
+ return negativeBuffer[valIndex];
+ }
+
+ if (value >= 0 && valIndex < positiveBuffer.Length)
+ {
+ return positiveBuffer[valIndex];
+ }
+
+ return value.ToString(format);
+ }
+
+ /// <summary>
+ /// Returns a float as a casted int.
+ /// </summary>
+ /// <param name="f">
+ /// The given float.
+ /// </param>
+ /// <returns>
+ /// The given float as an int.
+ /// </returns>
+ public static int ToInt(this float f)
+ {
+ return (int)f;
+ }
+
+ /// <summary>
+ /// Returns an int as a casted float.
+ /// </summary>
+ /// <param name="f">
+ /// The given int.
+ /// </param>
+ /// <returns>
+ /// The given int as a float.
+ /// </returns>
+ public static float ToFloat(this int i)
+ {
+ return (float)i;
+ }
+
+ #endregion
+
+ #region Methods -> Private
+
+ //TODO: Replace this with a better algorithm.
+ private static int Pow(int f, int p)
+ {
+ for (int i = 1; i < p; i++)
+ {
+ f *= f;
+ }
+ return f;
+ }
+
+ private static int ToIndex(this float f)
+ {
+ return Mathf.Abs((f * decimalMultiplier).ToInt());
+ }
+
+ private static float FromIndex(this int i)
+ {
+ return (i.ToFloat() / decimalMultiplier);
+ }
+
+ #endregion
+ }
+}
diff --git a/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_FloatString.cs.meta b/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_FloatString.cs.meta
new file mode 100644
index 0000000..fc8daa2
--- /dev/null
+++ b/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_FloatString.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c7eaf0f83a3530240a97ac1c51d6f2e6
+timeCreated: 1538651101
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_Intstring.cs b/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_Intstring.cs
new file mode 100644
index 0000000..e1c7041
--- /dev/null
+++ b/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_Intstring.cs
@@ -0,0 +1,131 @@
+/* ---------------------------------------
+ * Author: Started by David Mkrtchyan, modified by Martin Pane (martintayx@gmail.com) (@tayx94)
+ * Collaborators: Lars Aalbertsen (@Rockylars)
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 18-May-18
+ * Studio: Tayx
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+
+namespace Tayx.Graphy.Utils.NumString
+{
+ public static class G_IntString
+ {
+ /* ----- TODO: ----------------------------
+ * Try and move the Init to a core method.
+ * --------------------------------------*/
+
+ #region Variables -> Private
+
+ /// <summary>
+ /// List of negative ints casted to strings.
+ /// </summary>
+ private static string[] negativeBuffer = new string[0];
+
+ /// <summary>
+ /// List of positive ints casted to strings.
+ /// </summary>
+ private static string[] positiveBuffer = new string[0];
+
+ #endregion
+
+ #region Properties -> Public
+
+ /// <summary>
+ /// Have the int buffers been initialized?
+ /// </summary>
+ public static bool Inited
+ {
+ get
+ {
+ return negativeBuffer.Length > 0 || positiveBuffer.Length > 0;
+ }
+ }
+
+ /// <summary>
+ /// The lowest int value of the existing number buffer.
+ /// </summary>
+ public static int MinValue
+ {
+ get
+ {
+ return -(negativeBuffer.Length - 1);
+ }
+ }
+
+ /// <summary>
+ /// The highest int value of the existing number buffer.
+ /// </summary>
+ public static int MaxValue
+ {
+ get
+ {
+ return positiveBuffer.Length - 1;
+ }
+ }
+
+ #endregion
+
+ #region Methods -> Public
+
+ /// <summary>
+ /// Initialize the buffers.
+ /// </summary>
+ /// <param name="minNegativeValue">
+ /// Lowest negative value allowed.
+ /// </param>
+ /// <param name="maxPositiveValue">
+ /// Highest positive value allowed.
+ /// </param>
+ public static void Init(int minNegativeValue, int maxPositiveValue)
+ {
+ if (minNegativeValue <= 0)
+ {
+ int length = Mathf.Abs(minNegativeValue);
+ negativeBuffer = new string[length];
+ for (int i = 0; i < length; i++)
+ {
+ negativeBuffer[i] = (-i).ToString();
+ }
+ }
+ if (maxPositiveValue >= 0)
+ {
+ positiveBuffer = new string[maxPositiveValue];
+ for (int i = 0; i < maxPositiveValue; i++)
+ {
+ positiveBuffer[i] = i.ToString();
+ }
+ }
+ }
+
+ /// <summary>
+ /// Returns this int as a cached string.
+ /// </summary>
+ /// <param name="value">
+ /// The required int.
+ /// </param>
+ /// <returns>
+ /// A cached number string.
+ /// </returns>
+ public static string ToStringNonAlloc(this int value)
+ {
+ if (value < 0 && -value < negativeBuffer.Length)
+ {
+ return negativeBuffer[-value];
+ }
+
+ if (value >= 0 && value < positiveBuffer.Length)
+ {
+ return positiveBuffer[value];
+ }
+
+ return value.ToString();
+ }
+
+ #endregion
+ }
+}
diff --git a/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_Intstring.cs.meta b/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_Intstring.cs.meta
new file mode 100644
index 0000000..9852448
--- /dev/null
+++ b/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_Intstring.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 2584aec3ab9f9af49bbdb1477908274e
+timeCreated: 1526634575
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_Singleton.cs b/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_Singleton.cs
new file mode 100644
index 0000000..89bc3a6
--- /dev/null
+++ b/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_Singleton.cs
@@ -0,0 +1,135 @@
+/* ---------------------------------------
+ * Sourced from: https://wiki.unity3d.com/index.php/Singleton
+ * Modified by: Martín Pane (martintayx@gmail.com) (@tayx94)
+ * Collaborators: Lars Aalbertsen (@Rockylars)
+ * Project: Graphy - Ultimate Stats Monitor
+ * Date: 07-Jul-17
+ * Studio: Tayx
+ *
+ * This project is released under the MIT license.
+ * Attribution is not required, but it is always welcomed!
+ * -------------------------------------*/
+
+using UnityEngine;
+
+namespace Tayx.Graphy.Utils
+{
+ /// <summary>
+ /// Be aware this will not prevent a non singleton constructor
+ /// such as `T myT = new T();`
+ /// To prevent that, add `protected T () {}` to your singleton class.
+ ///
+ /// As a note, this is made as MonoBehaviour because we need Coroutines.
+ /// </summary>
+ public class G_Singleton<T> : MonoBehaviour where T : MonoBehaviour
+ {
+ /* ----- TODO: ----------------------------
+ * Check if we can seal this class.
+ * Add summaries to the variables.
+ * Add summaries to the functions.
+ * Check if we should add "private" to the Unity Callbacks.
+ * Fill in the missing date and author.
+ * --------------------------------------*/
+
+ #region Variables -> Private
+
+ private static T _instance;
+
+ private static object _lock = new object();
+
+ #endregion
+
+ #region Properties -> Public
+
+ public static T Instance
+ {
+ get
+ {
+
+ if (_applicationIsQuitting)
+ {
+ //Debug.LogWarning("[Singleton] Instance '" + typeof(T) +
+ // "' already destroyed on application quit." +
+ // " Won't create again - returning null.");
+ return null;
+ }
+
+ lock (_lock)
+ {
+ if (_instance == null)
+ {
+ _instance = (T)FindObjectOfType(typeof(T));
+
+ if (FindObjectsOfType(typeof(T)).Length > 1)
+ {
+ //Debug.LogError("[Singleton] Something went really wrong " +
+ // " - there should never be more than 1 singleton!" +
+ // " Reopening the scene might fix it.");
+ return _instance;
+ }
+
+ if (_instance == null)
+ {
+ //GameObject singleton = new GameObject();
+ //_instance = singleton.AddComponent<T>();
+ //singleton.name = "(singleton) " + typeof(T).ToString();
+
+ //DontDestroyOnLoad(singleton);
+
+ //Debug.Log("[Singleton] An instance of " + typeof(T) +
+ // " is needed in the scene, so '" + singleton +
+ // "' was created with DontDestroyOnLoad.");
+
+ Debug.Log
+ (
+ "[Singleton] An instance of " + typeof(T) +
+ " is trying to be accessed, but it wasn't initialized first. " +
+ "Make sure to add an instance of " + typeof(T) + " in the scene before " +
+ " trying to access it."
+ );
+ }
+ else
+ {
+ //Debug.Log("[Singleton] Using instance already created: " +
+ // _instance.gameObject.name);
+ }
+ }
+
+ return _instance;
+ }
+ }
+ }
+
+ #endregion
+
+ #region Methods -> Unity Callbacks
+
+ void Awake()
+ {
+ if (_instance != null)
+ {
+ Destroy(gameObject);
+ }
+ else
+ {
+ _instance = GetComponent<T>();
+ }
+ }
+
+ private static bool _applicationIsQuitting = false;
+ /// <summary>
+ /// When Unity quits, it destroys objects in a random order.
+ /// In principle, a Singleton is only destroyed when application quits.
+ /// If any script calls Instance after it has been destroyed,
+ /// it will create a buggy ghost object that will stay on the Editor scene
+ /// even after stopping playing the Application. Really bad!
+ /// So, this was made to be sure we're not creating that buggy ghost object.
+ /// </summary>
+ void OnDestroy()
+ {
+ _applicationIsQuitting = true;
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_Singleton.cs.meta b/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_Singleton.cs.meta
new file mode 100644
index 0000000..1043fb6
--- /dev/null
+++ b/Assets/Thirdparty/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Util/G_Singleton.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: dbf324bd9d0eaf7408f3b72ed03e2588
+timeCreated: 1512413989
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: