using Glamourer.Automation; using OtterGui.Classes; namespace Glamourer.Events; /// /// Triggered when an automated design is changed in any way. /// /// Parameter is the type of the change /// Parameter is the added or changed design set or null on deletion. /// Parameter is additional data depending on the type of change. /// /// public sealed class AutomationChanged() : EventWrapper(nameof(AutomationChanged)) { public enum Type { /// Add a new set. Names and identifiers do not have to be unique. It is not enabled by default. Additional data is the index it gets added at and the name [(int, string)]. AddedSet, /// Delete a given set. Additional data is the index it got removed from [int]. DeletedSet, /// Rename a given set. Names do not have to be unique. Additional data is the old name and the new name [(string, string)]. RenamedSet, /// Move a given set to a different position. Additional data is the old index of the set and the new index of the set [(int, int)]. MovedSet, /// Change the identifier a given set is associated with to another one. Additional data is the old identifier and the new one, and a potentially disabled other design set. [(ActorIdentifier[], ActorIdentifier, AutoDesignSet?)]. ChangeIdentifier, /// Toggle the enabled state of a given set. Additional data is the thus disabled other set, if any [AutoDesignSet?]. ToggleSet, /// Change the used base state of a given set. Additional data is prior and new base. [(AutoDesignSet.Base, AutoDesignSet.Base)]. ChangedBase, /// Add a new associated design to a given set. Additional data is the index it got added at [int]. AddedDesign, /// Remove a given associated design from a given set. Additional data is the index it got removed from [int]. DeletedDesign, /// Move a given associated design in the list of a given set. Additional data is the index that got moved and the index it got moved to [(int, int)]. MovedDesign, /// Change the linked design in an associated design for a given set. Additional data is the index of the changed associated design, the old linked design and the new linked design [(int, IDesignStandIn, IDesignStandIn)]. ChangedDesign, /// Change the job condition in an associated design for a given set. Additional data is the index of the changed associated design, the old job group and the new job group [(int, JobGroup, JobGroup)]. ChangedConditions, /// Change the application type in an associated design for a given set. Additional data is the index of the changed associated design, the old type and the new type. [(int, AutoDesign.Type, AutoDesign.Type)]. ChangedType, /// Change the additional data for a specific design type. Additional data is the index of the changed associated design and the new data. [(int, object)] ChangedData, } public enum Priority { /// SetSelector = 0, /// AutoDesignApplier = 0, /// RandomRestrictionDrawer = -1, } }