using UnityEngine;
using UnityEditor;
using UnityEditorInternal;
namespace EmeraldAI.Utility
{
public class LayerMaskDrawer : Editor
{
///
/// Converts a LayerMask to a field value
///
public static int LayerMaskToField(LayerMask mask)
{
int field = 0;
var layers = InternalEditorUtility.layers;
for (int c = 0; c < layers.Length; c++)
{
if ((mask & (1 << LayerMask.NameToLayer(layers[c]))) != 0)
{
field |= 1 << c;
}
}
return field;
}
///
/// Converts the field value to a LayerMask
///
public static LayerMask FieldToLayerMask(int field)
{
LayerMask mask = 0;
var layers = InternalEditorUtility.layers;
for (int c = 0; c < layers.Length; c++)
{
if ((field & (1 << c)) != 0)
{
mask |= 1 << LayerMask.NameToLayer(layers[c]);
}
}
return mask;
}
}
}