using PkmnLib.Static.Utils; namespace PkmnLib.Dynamic.ScriptHandling; /// /// A script set is a collection of scripts that can be accessed by a key. /// We can add, remove, and clear scripts from the set. /// This is generally used for volatile scripts. /// public interface IScriptSet : IEnumerable { /// /// Adds a script to the set. If the script with that name already exists in this set, this /// makes that script stack instead. The return value here is that script. /// ScriptContainer Add(Script script); /// /// Adds a script with a name to the set. If the script with that name already exists in this /// set, this makes that script stack instead. The return value here is that script. /// ScriptContainer? Add(StringKey scriptKey); /// /// Gets a script from the set using its unique name. /// ScriptContainer? Get(StringKey scriptKey); /// /// Removes a script from the set using its unique name. /// void Remove(StringKey scriptKey); /// /// Clears all scripts from the set. /// void Clear(); /// /// Checks if the set has a script with the given name. /// void Contains(StringKey scriptKey); /// /// Gets a script from the set at a specific index. /// ScriptContainer At(int index); /// /// Gets the number of scripts in the set. /// int Count { get; } /// /// Gets the names of all scripts in the set. /// IEnumerable GetScriptNames(); }