using System.Collections.Generic; namespace Unity.MLAgents.Actuators { /// /// Interface for writing a mask to disable discrete actions for agents for the next decision. /// public interface IDiscreteActionMask { /// /// Modifies an action mask for discrete control agents. /// /// /// When used, the agent will not be able to perform the actions passed as argument /// at the next decision for the specified action branch. The actionIndices correspond /// to the action options the agent will be unable to perform. /// /// See [Agents - Actions] for more information on masking actions. /// /// [Agents - Actions]: https://github.com/Unity-Technologies/ml-agents/blob/release_16_docs/docs/Learning-Environment-Design-Agents.md#actions /// /// The branch for which the actions will be masked. /// The indices of the masked actions. void WriteMask(int branch, IEnumerable actionIndices); /// /// Get the current mask for an agent. /// /// A mask for the agent. A boolean array of length equal to the total number of /// actions. bool[] GetMask(); /// /// Resets the current mask for an agent. /// void ResetMask(); } }