32 lines
1.1 KiB
C#
32 lines
1.1 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using UnityEngine;
|
|
|
|
namespace EscapeRoomEngine.Engine.Runtime.Utilities
|
|
{
|
|
public static class Utilities
|
|
{
|
|
#region Math
|
|
|
|
/// <summary>
|
|
/// Returns whether a position relative to some dimensions is inside those dimensions.
|
|
/// </summary>
|
|
/// <param name="position">The position to check, relative to the dimensions.</param>
|
|
/// <param name="dimensions">The dimensions to check the position against.</param>
|
|
public static bool IsInsideRelative(this Vector2Int position, Dimensions dimensions)
|
|
{
|
|
return position.x >= 0 && position.y >= 0 && position.x < dimensions.width && position.y < dimensions.length;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Randomness
|
|
|
|
public static int RandomInclusive(int from, int to) => Random.Range(from, to + 1);
|
|
|
|
public static T RandomElement<T>(this List<T> list) => list[Random.Range(0, list.Count)];
|
|
public static T RandomElement<T>(this HashSet<T> set) => set.ElementAt(Random.Range(0, set.Count));
|
|
|
|
#endregion
|
|
}
|
|
} |