mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
Enum extension for SetFlag and ClearFlag
This commit is contained in:
@@ -0,0 +1,22 @@
|
|||||||
|
namespace System;
|
||||||
|
|
||||||
|
extension Enum
|
||||||
|
{
|
||||||
|
public static void SetFlag<T>(ref T value, T flag) where T : enum
|
||||||
|
{
|
||||||
|
value = (T)(value.Underlying | flag.Underlying);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ClearFlag<T>(ref T value, T flag) where T : enum
|
||||||
|
{
|
||||||
|
value = (T)(value.Underlying & ~flag.Underlying);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetFlagConditionally<T>(ref T value, T flag, bool setFlag) where T : enum
|
||||||
|
{
|
||||||
|
if (setFlag)
|
||||||
|
SetFlag<T>(ref value, flag);
|
||||||
|
else
|
||||||
|
ClearFlag<T>(ref value, flag);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user