// Decompiled with JetBrains decompiler // Type: Terraria.DataStructures.MethodSequenceListItem // Assembly: Terraria, Version=1.4.0.5, Culture=neutral, PublicKeyToken=null // MVID: 67F9E73E-0A81-4937-A22C-5515CD405A83 // Assembly location: C:\Users\mikeyisbaeyt\Downloads\depotdownloader-2.4.5\depots\105601\6707058\Terraria.exe using System; using System.Collections.Generic; namespace Terraria.DataStructures { public class MethodSequenceListItem { public string Name; public MethodSequenceListItem Parent; public Func Method; public bool Skip; public MethodSequenceListItem(string name, Func method, MethodSequenceListItem parent = null) { this.Name = name; this.Method = method; this.Parent = parent; } public bool ShouldAct(List sequence) { if (this.Skip || !sequence.Contains(this)) return false; return this.Parent == null || this.Parent.ShouldAct(sequence); } public bool Act() => this.Method(); public static void ExecuteSequence(List sequence) { foreach (MethodSequenceListItem sequenceListItem in sequence) { if (sequenceListItem.ShouldAct(sequence) && !sequenceListItem.Act()) break; } } public override string ToString() => "name: " + this.Name + " skip: " + this.Skip.ToString() + " parent: " + (object) this.Parent; } }