using GameFramework; using GameFramework.Event; using GeometryTD.Procedure; namespace GeometryTD.CustomEvent { public class NodeEnterEventArgs : GameEventArgs { public static int EventId = typeof(NodeEnterEventArgs).GetHashCode(); public override int Id => EventId; public string RunId { get; private set; } public int NodeId { get; private set; } public RunNodeType NodeType { get; private set; } public int SequenceIndex { get; private set; } public NodeEnterEventArgs() { } public static NodeEnterEventArgs Create() { return Create(null, 0, RunNodeType.None, -1); } public static NodeEnterEventArgs Create(string runId, int nodeId, RunNodeType nodeType, int sequenceIndex) { var args = ReferencePool.Acquire(); args.RunId = runId; args.NodeId = nodeId; args.NodeType = nodeType; args.SequenceIndex = sequenceIndex; return args; } public override void Clear() { RunId = null; NodeId = 0; NodeType = RunNodeType.None; SequenceIndex = -1; } } }