Modding:TreeAttribute: Difference between revisions

From Vintage Story Wiki
m
Updated navbox to new code navbox.
m (Double checked information and added version)
m (Updated navbox to new code navbox.)
 
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{GameVersion|1.15}}
{{GameVersion|1.19.3}}
 
<languages/><translate>
A TreeAttribute is a nested data structure whose primary purpose is to store data. 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).  
<!--T:1-->
A TreeAttribute is a nested data structure whose primary purpose is to represent the tree attribute [[Modding:Serialization_Formats|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).  


<!--T:2-->
Additionally you can store data as <code>byte[]</code> if it is not supported by the TreeAttribute itself (for this you could use <code>Vintagestory.API.Util.SerializerUtil</code>).
Additionally you can store data as <code>byte[]</code> if it is not supported by the TreeAttribute itself (for this you could use <code>Vintagestory.API.Util.SerializerUtil</code>).
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 ==
== 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 ==  
== Example in code == <!--T:4-->
<syntaxhighlight lang="c#">
<syntaxhighlight lang="c#">
using Vintagestory.API.Datastructures;
using Vintagestory.API.Datastructures;


class Example
<!--T:5-->
{
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();


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


        // 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>
{{Navbox/modding|Vintage Story}}
{{Navbox/codemodding}}
Confirmedusers
543

edits