using System; namespace UnityEditor.TerrainTools { /// <summary> /// Options for brush modifier key shortcuts. /// </summary> [Flags] public enum BrushModifierKey { /// <summary> /// Use invert modifier. /// </summary> BRUSH_MOD_INVERT = 0, /// <summary> /// Use brush modifier 1. /// </summary> BRUSH_MOD_1 = 1, /// <summary> /// Use brush modifier 2. /// </summary> BRUSH_MOD_2 = 2, /// <summary> /// Use brush modifier 3. /// </summary> BRUSH_MOD_3 = 3 } /// <summary> /// An interface that represent the controller for brush modifier keys. /// </summary> public interface IBrushModifierKeyController { /// <summary> /// Calls the methods in its invocation list when the modifier key is pressed. /// </summary> event Action<BrushModifierKey> OnModifierPressed; /// <summary> /// Calls the methods in its invocation list when the modifier key is released. /// </summary> event Action<BrushModifierKey> OnModifierReleased; /// <summary> /// Defines data when the tool is selected. /// </summary> void OnEnterToolMode(); /// <summary> /// Defines data when the tool is deselected. /// </summary> void OnExitToolMode(); /// <summary> /// Checks if the modifier key is active. /// </summary> /// <param name="k">The modifier key to check.</param> /// <returns>Returns <c>true</c> when the key is active.</returns> bool ModifierActive(BrushModifierKey k); } }