mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-06-27 03:44:54 +00:00
80 lines
2.2 KiB
C#
80 lines
2.2 KiB
C#
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<TileTypes> 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;
|
|
}
|
|
}
|
|
}
|