Modding:TreeAttribute: Difference between revisions

From Vintage Story Wiki
m (Nyuhnyash moved page Modding:Tree Attribute to Modding:TreeAttribute without leaving a redirect: Part of translatable page "Modding:Tree Attribute")
m (Update to 1.19.3.)
Line 1: Line 1:
{{GameVersion|1.15}}
{{GameVersion|1.19.3}}
<languages/><translate>
<languages/><translate>
<!--T:1-->
<!--T:1-->
Line 8: Line 8:
Attributes are written and read via keys.  
Attributes are written and read via keys.  


To use TreeAttribute, add the using statement for '''Vintagestory.API.Datastructures'''.<br><br>
To use TreeAttribute, add the using statement for '''Vintagestory.API.Datastructures'''.
== Use in API == <!--T:3-->
== Use in API == <!--T:3-->
Within the API, TreeAttribute is often employed to store persistent entity data (items a basket contains, content of a barrel/bucket) and to access data extracted from JSON files. '''TreeAttribute''' is often supplied as the interface '''ITreeAttribute'''.<br>
Within the API, TreeAttribute is often employed to store persistent entity data (items a basket contains, content of a barrel/bucket) and to access data extracted from JSON files. '''TreeAttribute''' is often supplied as the interface '''ITreeAttribute'''.


== Example in code ==  <!--T:4-->
== Example in code ==  <!--T:4-->
Line 17: Line 17:


<!--T:5-->
<!--T:5-->
class Example
public class TreeAttributeMod : ModSystem
{
    Example()
     {
     {
         // Setting and getting values
         public override void StartServerSide(ICoreServerAPI api)
        TreeAttribute tree;
        {
        tree = new TreeAttribute();
            // Setting and getting values
            TreeAttribute tree;
            tree = new TreeAttribute();


        <!--T:6-->
            float someValue = 0.35f;
float someValue = 0.35f;
            string someKey = "valueKey";
        string someKey = "valueKey";


        <!--T:7-->
            // Set the value
// Set the value
            tree.SetFloat(someKey, someValue);
        tree.SetFloat(someKey, someValue);
            // Retrieve the value
        // Retrieve the value
            tree.GetFloat(someKey);
        tree.GetFloat(someKey);
        }
     }
     }
}
</syntaxhighlight>
</syntaxhighlight>
For documentation, see [http://apidocs.vintagestory.at/api/Vintagestory.API.Datastructures.TreeAttribute.html TreeAttribute] and [http://apidocs.vintagestory.at/api/Vintagestory.API.Datastructures.ITreeAttribute.html ITreeAttribute].
For documentation, see [http://apidocs.vintagestory.at/api/Vintagestory.API.Datastructures.TreeAttribute.html TreeAttribute] and [http://apidocs.vintagestory.at/api/Vintagestory.API.Datastructures.ITreeAttribute.html ITreeAttribute].
</translate>
</translate>
{{Navbox/modding|Vintage Story}}
{{Navbox/modding|Vintage Story}}

Revision as of 16:37, 26 February 2024

This page was last verified for Vintage Story version 1.19.3.

Other languages:

A TreeAttribute is a nested data structure whose primary purpose is to represent the tree attribute serialization format in memory. It can hold generic data for most primitives, such as int, string, float, as well as more complex types like ItemStacks and other TreeAttributes (hence a nested structure).

Additionally you can store data as byte[] if it is not supported by the TreeAttribute itself (for this you could use Vintagestory.API.Util.SerializerUtil). Attributes are written and read via keys.

To use TreeAttribute, add the using statement for Vintagestory.API.Datastructures.

Use in API

Within the API, TreeAttribute is often employed to store persistent entity data (items a basket contains, content of a barrel/bucket) and to access data extracted from JSON files. TreeAttribute is often supplied as the interface ITreeAttribute.

Example in code

using Vintagestory.API.Datastructures;

public class TreeAttributeMod : ModSystem
    {
        public override void StartServerSide(ICoreServerAPI api)
        {
            // Setting and getting values
            TreeAttribute tree;
            tree = new TreeAttribute();

            float someValue = 0.35f;
            string someKey = "valueKey";

            // Set the value
            tree.SetFloat(someKey, someValue);
            // Retrieve the value
            tree.GetFloat(someKey);
        }
    }

For documentation, see TreeAttribute and ITreeAttribute.

Icon Sign.png

Wondering where some links have gone?
The modding navbox is going through some changes! Check out Navigation Box Updates for more info and help finding specific pages.

Modding
Modding Introduction Getting Started Theme Pack
Content Modding Content Mods Developing a Content Mod Basic Tutorials Intermediate Tutorials Advanced Tutorials Content Mod Concepts
Code Modding Code Mods Setting up your Development Environment
Property Overview ItemEntityEntity BehaviorsBlockBlock BehaviorsBlock ClassesBlock EntitiesBlock Entity BehaviorsCollectible BehaviorsWorld properties
Workflows & Infrastructure Modding Efficiency TipsMod-engine compatibilityMod ExtensibilityVS Engine
Additional Resources Community Resources Modding API Updates Programming Languages List of server commandsList of client commandsClient startup parametersServer startup parameters
Example ModsAPI DocsGitHub Repository