summaryrefslogtreecommitdiff
path: root/doc/classes/ConfigFile.xml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/classes/ConfigFile.xml')
-rw-r--r--doc/classes/ConfigFile.xml213
1 files changed, 111 insertions, 102 deletions
diff --git a/doc/classes/ConfigFile.xml b/doc/classes/ConfigFile.xml
index da17d993e3..d6da4bc248 100644
--- a/doc/classes/ConfigFile.xml
+++ b/doc/classes/ConfigFile.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ConfigFile" inherits="Reference" version="4.0">
+<class name="ConfigFile" inherits="RefCounted" version="4.0">
<brief_description>
Helper class to handle INI-style files.
</brief_description>
@@ -9,37 +9,78 @@
[section]
some_key=42
string_example="Hello World3D!"
- a_vector=Vector3( 1, 0, 2 )
+ a_vector=Vector3(1, 0, 2)
[/codeblock]
The stored data can be saved to or parsed from a file, though ConfigFile objects can also be used directly without accessing the filesystem.
- The following example shows how to parse an INI-style file from the system, read its contents and store new values in it:
+ The following example shows how to create a simple [ConfigFile] and save it on disc:
[codeblocks]
[gdscript]
+ # Create new ConfigFile object.
var config = ConfigFile.new()
- var err = config.load("user://settings.cfg")
- if err == OK: # If not, something went wrong with the file loading
- # Look for the display/width pair, and default to 1024 if missing
- var screen_width = config.get_value("display", "width", 1024)
- # Store a variable if and only if it hasn't been defined yet
- if not config.has_section_key("audio", "mute"):
- config.set_value("audio", "mute", false)
- # Save the changes by overwriting the previous file
- config.save("user://settings.cfg")
+
+ # Store some values.
+ config.set_value("Player1", "player_name", "Steve")
+ config.set_value("Player1", "best_score", 10)
+ config.set_value("Player2", "player_name", "V3geta")
+ config.set_value("Player2", "best_score", 9001)
+
+ # Save it to a file (overwrite if already exists).
+ config.save("user://scores.cfg")
[/gdscript]
[csharp]
+ // Create new ConfigFile object.
var config = new ConfigFile();
- Error err = config.Load("user://settings.cfg");
- if (err == Error.Ok) // If not, something went wrong with the file loading
+
+ // Store some values.
+ config.SetValue("Player1", "player_name", "Steve");
+ config.SetValue("Player1", "best_score", 10);
+ config.SetValue("Player2", "player_name", "V3geta");
+ config.SetValue("Player2", "best_score", 9001);
+
+ // Save it to a file (overwrite if already exists).
+ config.Save("user://scores.cfg");
+ [/csharp]
+ [/codeblocks]
+ This example shows how the above file could be loaded:
+ [codeblocks]
+ [gdscript]
+ var score_data = {}
+ var config = ConfigFile.new()
+
+ # Load data from a file.
+ var err = config.load("user://scores.cfg")
+
+ # If the file didn't load, ignore it.
+ if err != OK:
+ return
+
+ # Iterate over all sections.
+ for player in config.get_sections():
+ # Fetch the data for each section.
+ var player_name = config.get_value(player, "player_name")
+ var player_score = config.get_value(player, "best_score")
+ score_data[player_name] = player_score
+ [/gdscript]
+ [csharp]
+ var score_data = new Godot.Collections.Dictionary();
+ var config = new ConfigFile();
+
+ // Load data from a file.
+ Error err = config.Load("user://scores.cfg");
+
+ // If the file didn't load, ignore it.
+ if (err != Error.Ok)
+ {
+ return;
+ }
+
+ // Iterate over all sections.
+ foreach (String player in config.GetSections())
{
- // Look for the display/width pair, and default to 1024 if missing
- int screenWidth = (int)config.GetValue("display", "width", 1024);
- // Store a variable if and only if it hasn't been defined yet
- if (!config.HasSectionKey("audio", "mute"))
- {
- config.SetValue("audio", "mute", false);
- }
- // Save the changes by overwriting the previous file
- config.Save("user://settings.cfg");
+ // Fetch the data for each section.
+ var player_name = (String)config.GetValue(player, "player_name");
+ var player_score = (int)config.GetValue(player, "best_score");
+ score_data[player_name] = player_score;
}
[/csharp]
[/codeblocks]
@@ -49,162 +90,130 @@
<tutorials>
</tutorials>
<methods>
+ <method name="clear">
+ <return type="void" />
+ <description>
+ </description>
+ </method>
<method name="erase_section">
- <return type="void">
- </return>
- <argument index="0" name="section" type="String">
- </argument>
+ <return type="void" />
+ <argument index="0" name="section" type="String" />
<description>
Deletes the specified section along with all the key-value pairs inside. Raises an error if the section does not exist.
</description>
</method>
<method name="erase_section_key">
- <return type="void">
- </return>
- <argument index="0" name="section" type="String">
- </argument>
- <argument index="1" name="key" type="String">
- </argument>
+ <return type="void" />
+ <argument index="0" name="section" type="String" />
+ <argument index="1" name="key" type="String" />
<description>
Deletes the specified key in a section. Raises an error if either the section or the key do not exist.
</description>
</method>
<method name="get_section_keys" qualifiers="const">
- <return type="PackedStringArray">
- </return>
- <argument index="0" name="section" type="String">
- </argument>
+ <return type="PackedStringArray" />
+ <argument index="0" name="section" type="String" />
<description>
Returns an array of all defined key identifiers in the specified section. Raises an error and returns an empty array if the section does not exist.
</description>
</method>
<method name="get_sections" qualifiers="const">
- <return type="PackedStringArray">
- </return>
+ <return type="PackedStringArray" />
<description>
Returns an array of all defined section identifiers.
</description>
</method>
<method name="get_value" qualifiers="const">
- <return type="Variant">
- </return>
- <argument index="0" name="section" type="String">
- </argument>
- <argument index="1" name="key" type="String">
- </argument>
- <argument index="2" name="default" type="Variant" default="null">
- </argument>
+ <return type="Variant" />
+ <argument index="0" name="section" type="String" />
+ <argument index="1" name="key" type="String" />
+ <argument index="2" name="default" type="Variant" default="null" />
<description>
Returns the current value for the specified section and key. If either the section or the key do not exist, the method returns the fallback [code]default[/code] value. If [code]default[/code] is not specified or set to [code]null[/code], an error is also raised.
</description>
</method>
<method name="has_section" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="section" type="String">
- </argument>
+ <return type="bool" />
+ <argument index="0" name="section" type="String" />
<description>
Returns [code]true[/code] if the specified section exists.
</description>
</method>
<method name="has_section_key" qualifiers="const">
- <return type="bool">
- </return>
- <argument index="0" name="section" type="String">
- </argument>
- <argument index="1" name="key" type="String">
- </argument>
+ <return type="bool" />
+ <argument index="0" name="section" type="String" />
+ <argument index="1" name="key" type="String" />
<description>
Returns [code]true[/code] if the specified section-key pair exists.
</description>
</method>
<method name="load">
- <return type="int" enum="Error">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
+ <return type="int" enum="Error" />
+ <returns_error number="0"/>
+ <returns_error number="12"/>
+ <argument index="0" name="path" type="String" />
<description>
Loads the config file specified as a parameter. The file's contents are parsed and loaded in the [ConfigFile] object which the method was called on.
Returns one of the [enum Error] code constants ([code]OK[/code] on success).
</description>
</method>
<method name="load_encrypted">
- <return type="int" enum="Error">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <argument index="1" name="key" type="PackedByteArray">
- </argument>
+ <return type="int" enum="Error" />
+ <argument index="0" name="path" type="String" />
+ <argument index="1" name="key" type="PackedByteArray" />
<description>
Loads the encrypted config file specified as a parameter, using the provided [code]key[/code] to decrypt it. The file's contents are parsed and loaded in the [ConfigFile] object which the method was called on.
Returns one of the [enum Error] code constants ([code]OK[/code] on success).
</description>
</method>
<method name="load_encrypted_pass">
- <return type="int" enum="Error">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <argument index="1" name="password" type="String">
- </argument>
+ <return type="int" enum="Error" />
+ <argument index="0" name="path" type="String" />
+ <argument index="1" name="password" type="String" />
<description>
Loads the encrypted config file specified as a parameter, using the provided [code]password[/code] to decrypt it. The file's contents are parsed and loaded in the [ConfigFile] object which the method was called on.
Returns one of the [enum Error] code constants ([code]OK[/code] on success).
</description>
</method>
<method name="parse">
- <return type="int" enum="Error">
- </return>
- <argument index="0" name="data" type="String">
- </argument>
+ <return type="int" enum="Error" />
+ <argument index="0" name="data" type="String" />
<description>
- Parses the the passed string as the contents of a config file. The string is parsed and loaded in the ConfigFile object which the method was called on.
+ Parses the passed string as the contents of a config file. The string is parsed and loaded in the ConfigFile object which the method was called on.
Returns one of the [enum Error] code constants ([code]OK[/code] on success).
</description>
</method>
<method name="save">
- <return type="int" enum="Error">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
+ <return type="int" enum="Error" />
+ <argument index="0" name="path" type="String" />
<description>
Saves the contents of the [ConfigFile] object to the file specified as a parameter. The output file uses an INI-style structure.
Returns one of the [enum Error] code constants ([code]OK[/code] on success).
</description>
</method>
<method name="save_encrypted">
- <return type="int" enum="Error">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <argument index="1" name="key" type="PackedByteArray">
- </argument>
+ <return type="int" enum="Error" />
+ <argument index="0" name="path" type="String" />
+ <argument index="1" name="key" type="PackedByteArray" />
<description>
Saves the contents of the [ConfigFile] object to the AES-256 encrypted file specified as a parameter, using the provided [code]key[/code] to encrypt it. The output file uses an INI-style structure.
Returns one of the [enum Error] code constants ([code]OK[/code] on success).
</description>
</method>
<method name="save_encrypted_pass">
- <return type="int" enum="Error">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <argument index="1" name="password" type="String">
- </argument>
+ <return type="int" enum="Error" />
+ <argument index="0" name="path" type="String" />
+ <argument index="1" name="password" type="String" />
<description>
Saves the contents of the [ConfigFile] object to the AES-256 encrypted file specified as a parameter, using the provided [code]password[/code] to encrypt it. The output file uses an INI-style structure.
Returns one of the [enum Error] code constants ([code]OK[/code] on success).
</description>
</method>
<method name="set_value">
- <return type="void">
- </return>
- <argument index="0" name="section" type="String">
- </argument>
- <argument index="1" name="key" type="String">
- </argument>
- <argument index="2" name="value" type="Variant">
- </argument>
+ <return type="void" />
+ <argument index="0" name="section" type="String" />
+ <argument index="1" name="key" type="String" />
+ <argument index="2" name="value" type="Variant" />
<description>
Assigns a value to the specified key of the specified section. If either the section or the key do not exist, they are created. Passing a [code]null[/code] value deletes the specified key if it exists, and deletes the section if it ends up empty once the key has been removed.
</description>