Skip to main content
Version: 🚧 Work in Progress

Jungle Tree

The JungleTree class is a container for storing and managing sequences of JungleNodes. It includes helper methods for adding, removing, connecting, and disconnecting JungleNodes.

Overview​

The JungleTree class provides the following functionalities:

  • Managing a list of nodes in the tree.
  • Adding, removing, and updating nodes.
  • Connecting and disconnecting nodes.
  • Handling editor-specific functionalities.
  • Managing error reports related to nodes.

Properties​

Nodes​

public JungleNode[] Nodes { get; }

List of all nodes in the tree.

Nodes​

public JungleNode[] Nodes { get; }

List of all nodes in the tree.

Uid​

public string Uid { get; }

A unique instance identifier for the tree.

ErrorReports​

public IReadOnlyList<JungleErrorReport> ErrorReports { get; }

Gets the list of error reports. (Editor Only)

Description​

public string Description { get; set; }

Gets or sets the description of the tree. (Editor Only)

AuthorInfo​

public string AuthorInfo { get; }

Gets the author information of the tree. (Editor Only)


Methods​

TryGetNodeByName​

public bool TryGetNodeByName(string nodeName, out JungleNode node)

Attempts to retrieve a reference to a node with the specified name.

Returns:

  • true if a node with the specified name is found; otherwise, false.

TryGetNodeByUid​

public bool TryGetNodeByUid(string nodeUid, out JungleNode node)

Attempts to retrieve a reference to the node with the specified UID.

Returns:

  • true if a node with the specified UID is found; otherwise, false.

AddNode​

public JungleNode AddNode(JungleNode jungleNode, Vector2 position, bool recordUndo = true)

Adds a JungleNode to the graph at the specified position. (Editor Only)

AddNodes​

public JungleNode[] AddNodes(JungleNode[] jungleNodes, Vector2[] positions, bool recordUndo = true)

Adds multiple JungleNodes to the graph at the specified positions. (Editor Only)

RemoveNode​

public void RemoveNode(JungleNode jungleNode, bool recordUndo = true)

Removes a JungleNode from the graph. (Editor Only)

RemoveNodes​

public void RemoveNodes(JungleNode[] jungleNodes, bool recordUndo = true)

Removes multiple JungleNodes from the graph. (Editor Only)

ConnectNodes​

public bool ConnectNodes(JungleNode nodeA, JungleNode nodeB, byte portIndex, bool recordUndo = true)

Connects two JungleNodes at the specified port index. (Editor Only)

DisconnectNodes​

public bool DisconnectNodes(JungleNode nodeA, JungleNode nodeB, byte portIndex, bool recordUndo = true)

Disconnects two JungleNodes at the specified port index. (Editor Only)

ClearErrorReports​

public void ClearErrorReports()

Clears all error reports. (Editor Only)

DidNodeReportError​

public bool DidNodeReportError(string nodeUid)

Checks if any error report contains an error for the specified node. (Editor Only)

Returns:

  • true if the node has reported an error; otherwise, false.

TryGetManifest​

public bool TryGetManifest(out JungleManifest manifest)

Tries to get the JungleManifest associated with this JungleTree. (Editor Only)

Returns:

  • true if the JungleManifest is successfully retrieved or created; otherwise, false.

Events​

OnNodeAdded​

public event Action<string> OnNodeAdded

Invoked when a node is added to the tree. (Editor Only)

OnNodeRemoved​

public event Action<string> OnNodeRemoved

Invoked when a node is removed from the tree. (Editor Only)

OnErrorReportUpdated​

public event Action<JungleErrorReport> OnErrorReportUpdated

Occurs when a JungleErrorReport has been updated. (Editor Only)

OnErrorReportsCleared​

public event Action OnErrorReportsCleared

Occurs when all error reports are cleared. (Editor Only)

OnTreeAssetUpdate​

public static event Action<JungleTree> OnTreeAssetUpdate

Invoked when a JungleTree asset has been reset by the asset database. (Editor Only)