miepzerino
2023-12-27 60aa8e85d058fccb1fa5e3952975d03d99778c6a
Assets/Scripts/Helpers/VectorHelper.cs
@@ -1,5 +1,7 @@
using System;
using System.Collections.Generic;
using System.Reflection;
using Unity.VisualScripting.Dependencies.NCalc;
using UnityEngine;
using static UnityEngine.Rendering.DebugUI;
@@ -19,19 +21,6 @@
            result[0] = value.x;
            result[1] = value.y;
            result[2] = value.z;
            return result;
        }
        /// <summary>
        /// Will get a float array for a given vector2 value
        /// </summary>
        /// <param name="value"></param>
        /// <returns>float[x,y]</returns>
        public static float[] ConvertToFloatArray(this Vector2 value)
        {
            float[] result = new float[2];
            result[0] = value.x;
            result[1] = value.y;
            return result;
        }
@@ -57,6 +46,19 @@
        }
        /// <summary>
        /// Will get a float array for a given vector2 value
        /// </summary>
        /// <param name="value"></param>
        /// <returns>float[x,y]</returns>
        public static float[] ConvertToFloatArray(this Vector2 value)
        {
            float[] result = new float[2];
            result[0] = value.x;
            result[1] = value.y;
            return result;
        }
        /// <summary>
        /// Will get a vector2 for a given float array value
        /// </summary>
        /// <param name="value"></param>
@@ -75,5 +77,66 @@
            }
            return result;
        }
        /// <summary>
        /// Will get a float array for a given vector2 value
        /// </summary>
        /// <param name="value"></param>
        /// <returns>float[x,y]</returns>
        public static List<int[]> ConvertToListIntArray(this List<Vector3Int> value)
        {
            List<int[]> result = new List<int[]>();
            for (int i = 0; i < value.Count; i++)
            {
                int[] intVector = new int[2];
                intVector[0] = value[i].x;
                intVector[1] = value[i].y;
                result.Add(intVector);
            }
            return result;
        }
        /// <summary>
        /// Will get a vector2 for a given float array value
        /// </summary>
        /// <param name="value"></param>
        /// <returns>Vector2</returns>
        public static List<Vector3Int> ConvertToVector3Int(this List<int[]> value)
        {
            List<Vector3Int> result = new List<Vector3Int>();
            if (value != null && value.Count > 0)
            {
                for (int i = 0; i < value.Count; i++)
                {
                    Vector3Int vector = new Vector3Int();
                    vector.x = value[0][0];
                    vector.y = value[0][1];
                    result.Add(vector);
                }
            }
            return result;
        }
        public static Vector3Int ConvertToVector3Int(this int[] value)
        {
            Vector3Int result = new Vector3Int();
            switch (value.Length)
            {
                case 2:
                    result.x = value[0];
                    result.y = value[1];
                    break;
                case 3:
                    result.x = value[0];
                    result.y = value[1];
                    result.z = value[2];
                    break;
                default:
                    Debug.Assert(false, "ConvertToVector3Int() got wrong array size, expected size is 2 or 3. recieved size: " + value.Length);
                    break;
            }
            return result;
        }
    }
}