using System.Linq; using Godot; namespace Rokojori { [Tool][GlobalClass ] public partial class Solo:Action { [Export] public Node soloNode; [Export] public NodeStateConfiguration soloConfiguration; [Export] public NodeStateConfiguration muteConifiguration; [Export] public Node[] ignore = []; protected override void _OnTrigger() { var parent = soloNode.GetParent(); var soloConfig = soloConfiguration ?? NodeStateConfiguration.AllOn(); var muteConfig = muteConifiguration ?? NodeStateConfiguration.AllOff(); parent.ForEachDirectChild( n => { if ( ignore != null && ignore.Contains( n ) ) { return; } var configuration = soloNode == n ? soloConfig : muteConfig; NodeState.Configure( n, configuration ); } ); } } }