using System.Collections.Generic; using nadena.dev.ndmf; namespace gay.lilyy.aaccore { public abstract class LayerGroup { public virtual bool enabled { get { return true; } } public virtual bool experimental { get { return false; } } private V5AACLayerGroupLogger _logger; protected V5AACLayerGroupLogger Logger => _logger ??= new V5AACLayerGroupLogger(SystemName); private static readonly List instances = new(); protected LayerGroup() => instances.Add(this); public static IEnumerable Instances => instances; public virtual bool shouldWarnIfNotApplicable => true; public virtual BuildPhase buildPhase => BuildPhase.Generating; public virtual bool IsApplicable(AACAssets assets) { return true; } public abstract string DisplayName { get; } public abstract string SystemName { get; } public abstract void Run(AACAssets assets); } }