namespace Glamourer.Api.Enums;
/// Application flags that can be used in different situations.
[Flags]
public enum ApplyFlag : ulong
{
/// Apply the selected manipulation only once, without forcing the state into automation.
Once = 0x01,
/// Apply the selected manipulation on the equipment (might be more or less supported).
Equipment = 0x02,
/// Apply the selected manipulation on the customizations (might be more or less supported).
Customization = 0x04,
/// Lock the state with the given key after applying the selected manipulation
Lock = 0x08,
}
/// Extensions for apply flags.
public static class ApplyFlagEx
{
/// The default application flags for design-based manipulations.
public const ApplyFlag DesignDefault = ApplyFlag.Once | ApplyFlag.Equipment | ApplyFlag.Customization;
/// The default application flags for state-based manipulations.
public const ApplyFlag StateDefault = ApplyFlag.Equipment | ApplyFlag.Customization | ApplyFlag.Lock;
/// The default application flags for reverse manipulations.
public const ApplyFlag RevertDefault = ApplyFlag.Equipment | ApplyFlag.Customization;
}