using System; using System.Collections.Generic; using System.Text; namespace Substrate.Nbt { /// /// A node in an NBT schema definition, used to define what values are considered valid for a given NBT node. /// public abstract class SchemaNode { private string _name; private SchemaOptions _options; /// /// Gets the name of an expected NBT node. /// public string Name { get { return _name; } } /// /// Gets additional schema options defined for this node. /// public SchemaOptions Options { get { return _options; } } /// /// Constructs a new representing a named . /// /// The name of the corresponding . protected SchemaNode (string name) { _name = name; } /// /// Constructs a new with additional options. /// /// The name of the corresponding . /// One or more option flags modifying the processing of this node. protected SchemaNode (string name, SchemaOptions options) { _name = name; _options = options; } /// /// Construct a sensible default NBT tree representative of this schema node. /// /// A that is valid for this schema node. public virtual TagNode BuildDefaultTree () { return null; } } }