using HPJ.Simulation.Enums; using System.Collections; using System.Collections.Generic; namespace HPJ.Simulation.Utilities { public static class Extensions { public static float Distance(this IntVector2 vector) { return (float)System.Math.Sqrt(vector.x * vector.x + vector.y * vector.y); } public static int SqrDistance(this IntVector2 vector) { return vector.x * vector.x + vector.y * vector.y; } public static string TilesToString(this TileTypes[] Tiles) { if (Tiles.Length == 0) { return ""; } string ReturnString = ""; for(int i = 0; i < Tiles.Length - 1; i++) { ReturnString += $"{Tiles[i]}."; } ReturnString += $"{Tiles[Tiles.Length - 1]}."; return ReturnString; } public static string TilesToString(this List Tiles) { if (Tiles.Count == 0) { return ""; } string ReturnString = ""; for (int i = 0; i < Tiles.Count - 1; i++) { ReturnString += $"{Tiles[i]}."; } ReturnString += $"{Tiles[Tiles.Count - 1]}."; return ReturnString; } public static TileTypes[] StringToTilesArray(this string TilesStringArray) { string[] Split = TilesStringArray.Split('.'); if (Split.Length == 0) { return new TileTypes[1] { TileTypes.Free }; } TileTypes[] ReturnArr = new TileTypes[Split.Length]; string[] EnumNames = System.Enum.GetNames(typeof(TileTypes)); for (int splitIndex = 0; splitIndex < Split.Length; splitIndex++) { for(int enumIndex = 0; enumIndex < EnumNames.Length; enumIndex++) { if (EnumNames[enumIndex] == Split[splitIndex]) { ReturnArr[splitIndex] = (TileTypes)enumIndex; } } } return ReturnArr; } } }