forked from mirrors/NBTExplorer
38 lines
1.5 KiB
C#
38 lines
1.5 KiB
C#
using System;
|
|
|
|
namespace Substrate.Nbt
|
|
{
|
|
/// <summary>
|
|
/// Defines methods for loading or extracting an NBT tree.
|
|
/// </summary>
|
|
/// <typeparam name="T">Object type that supports this interface.</typeparam>
|
|
public interface INbtObject<T>
|
|
{
|
|
/// <summary>
|
|
/// Attempt to load an NBT tree into the object without validation.
|
|
/// </summary>
|
|
/// <param name="tree">The root node of an NBT tree.</param>
|
|
/// <returns>The object returns itself on success, or null if the tree was unparsable.</returns>
|
|
T LoadTree (TagNode tree);
|
|
|
|
/// <summary>
|
|
/// Attempt to load an NBT tree into the object with validation.
|
|
/// </summary>
|
|
/// <param name="tree">The root node of an NBT tree.</param>
|
|
/// <returns>The object returns itself on success, or null if the tree failed validation.</returns>
|
|
T LoadTreeSafe (TagNode tree);
|
|
|
|
/// <summary>
|
|
/// Builds an NBT tree from the object's data.
|
|
/// </summary>
|
|
/// <returns>The root node of an NBT tree representing the object's data.</returns>
|
|
TagNode BuildTree ();
|
|
|
|
/// <summary>
|
|
/// Validate an NBT tree, usually against an object-supplied schema.
|
|
/// </summary>
|
|
/// <param name="tree">The root node of an NBT tree.</param>
|
|
/// <returns>Status indicating whether the tree was valid for this object.</returns>
|
|
bool ValidateTree (TagNode tree);
|
|
}
|
|
}
|