mirror of
https://github.com/godotengine/godot.git
synced 2024-12-15 10:12:40 +08:00
0d2e02945b
* Shader compilation is now cached. Subsequent loads take less than a millisecond. * Improved game, editor and project manager startup time. * Editor uses .godot/shader_cache to store shaders. * Game uses user://shader_cache * Project manager uses $config_dir/shader_cache * Options to tweak shader caching in project settings. * Editor path configuration moved from EditorSettings to new class, EditorPaths, so it can be available early on (before shaders are compiled). * Reworked ShaderCompilerRD to ensure deterministic shader code creation (else shader may change and cache will be invalidated). * Added shader compression with SMOLV: https://github.com/aras-p/smol-v
233 lines
8.8 KiB
XML
233 lines
8.8 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="EditorSettings" inherits="Resource" version="4.0">
|
|
<brief_description>
|
|
Object that holds the project-independent editor settings.
|
|
</brief_description>
|
|
<description>
|
|
Object that holds the project-independent editor settings. These settings are generally visible in the [b]Editor > Editor Settings[/b] menu.
|
|
Property names use slash delimiters to distinguish sections. Setting values can be of any [Variant] type. It's recommended to use [code]snake_case[/code] for editor settings to be consistent with the Godot editor itself.
|
|
Accessing the settings can be done using the following methods, such as:
|
|
[codeblocks]
|
|
[gdscript]
|
|
var settings = EditorInterface.get_editor_settings()
|
|
# `settings.set("some/property", 10)` also works as this class overrides `_set()` internally.
|
|
settings.set_setting("some/property", 10)
|
|
# `settings.get("some/property")` also works as this class overrides `_get()` internally.
|
|
settings.get_setting("some/property")
|
|
var list_of_settings = settings.get_property_list()
|
|
[/gdscript]
|
|
[csharp]
|
|
EditorSettings settings = GetEditorInterface().GetEditorSettings();
|
|
// `settings.set("some/property", value)` also works as this class overrides `_set()` internally.
|
|
settings.SetSetting("some/property", Value);
|
|
// `settings.get("some/property", value)` also works as this class overrides `_get()` internally.
|
|
settings.GetSetting("some/property");
|
|
Godot.Collections.Array listOfSettings = settings.GetPropertyList();
|
|
[/csharp]
|
|
[/codeblocks]
|
|
[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access the singleton using [method EditorInterface.get_editor_settings].
|
|
</description>
|
|
<tutorials>
|
|
</tutorials>
|
|
<methods>
|
|
<method name="add_property_info">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="info" type="Dictionary">
|
|
</argument>
|
|
<description>
|
|
Adds a custom property info to a property. The dictionary must contain:
|
|
- [code]name[/code]: [String] (the name of the property)
|
|
- [code]type[/code]: [int] (see [enum Variant.Type])
|
|
- optionally [code]hint[/code]: [int] (see [enum PropertyHint]) and [code]hint_string[/code]: [String]
|
|
[b]Example:[/b]
|
|
[codeblocks]
|
|
[gdscript]
|
|
var settings = EditorInterface.get_editor_settings()
|
|
settings.set("category/property_name", 0)
|
|
|
|
var property_info = {
|
|
"name": "category/property_name",
|
|
"type": TYPE_INT,
|
|
"hint": PROPERTY_HINT_ENUM,
|
|
"hint_string": "one,two,three"
|
|
}
|
|
|
|
settings.add_property_info(property_info)
|
|
[/gdscript]
|
|
[csharp]
|
|
var settings = GetEditorInterface().GetEditorSettings();
|
|
settings.Set("category/property_name", 0);
|
|
|
|
var propertyInfo = new Godot.Collections.Dictionary
|
|
{
|
|
{"name", "category/propertyName"},
|
|
{"type", Variant.Type.Int},
|
|
{"hint", PropertyHint.Enum},
|
|
{"hint_string", "one,two,three"}
|
|
};
|
|
|
|
settings.AddPropertyInfo(propertyInfo);
|
|
[/csharp]
|
|
[/codeblocks]
|
|
</description>
|
|
</method>
|
|
<method name="erase">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="property" type="String">
|
|
</argument>
|
|
<description>
|
|
Erases the setting whose name is specified by [code]property[/code].
|
|
</description>
|
|
</method>
|
|
<method name="get_favorites" qualifiers="const">
|
|
<return type="PackedStringArray">
|
|
</return>
|
|
<description>
|
|
Returns the list of favorite files and directories for this project.
|
|
</description>
|
|
</method>
|
|
<method name="get_project_metadata" 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>
|
|
<description>
|
|
Returns project-specific metadata for the [code]section[/code] and [code]key[/code] specified. If the metadata doesn't exist, [code]default[/code] will be returned instead. See also [method set_project_metadata].
|
|
</description>
|
|
</method>
|
|
<method name="get_project_settings_dir" qualifiers="const">
|
|
<return type="String">
|
|
</return>
|
|
<description>
|
|
Returns the project-specific settings path. Projects all have a unique subdirectory inside the settings path where project-specific settings are saved.
|
|
</description>
|
|
</method>
|
|
<method name="get_recent_dirs" qualifiers="const">
|
|
<return type="PackedStringArray">
|
|
</return>
|
|
<description>
|
|
Returns the list of recently visited folders in the file dialog for this project.
|
|
</description>
|
|
</method>
|
|
<method name="get_setting" qualifiers="const">
|
|
<return type="Variant">
|
|
</return>
|
|
<argument index="0" name="name" type="String">
|
|
</argument>
|
|
<description>
|
|
Returns the value of the setting specified by [code]name[/code]. This is equivalent to using [method Object.get] on the EditorSettings instance.
|
|
</description>
|
|
</method>
|
|
<method name="has_setting" qualifiers="const">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="name" type="String">
|
|
</argument>
|
|
<description>
|
|
Returns [code]true[/code] if the setting specified by [code]name[/code] exists, [code]false[/code] otherwise.
|
|
</description>
|
|
</method>
|
|
<method name="property_can_revert">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="name" type="String">
|
|
</argument>
|
|
<description>
|
|
Returns [code]true[/code] if the setting specified by [code]name[/code] can have its value reverted to the default value, [code]false[/code] otherwise. When this method returns [code]true[/code], a Revert button will display next to the setting in the Editor Settings.
|
|
</description>
|
|
</method>
|
|
<method name="property_get_revert">
|
|
<return type="Variant">
|
|
</return>
|
|
<argument index="0" name="name" type="String">
|
|
</argument>
|
|
<description>
|
|
Returns the default value of the setting specified by [code]name[/code]. This is the value that would be applied when clicking the Revert button in the Editor Settings.
|
|
</description>
|
|
</method>
|
|
<method name="set_builtin_action_override">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="name" type="String">
|
|
</argument>
|
|
<argument index="1" name="actions_list" type="Array">
|
|
</argument>
|
|
<description>
|
|
</description>
|
|
</method>
|
|
<method name="set_favorites">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="dirs" type="PackedStringArray">
|
|
</argument>
|
|
<description>
|
|
Sets the list of favorite files and directories for this project.
|
|
</description>
|
|
</method>
|
|
<method name="set_initial_value">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="name" type="StringName">
|
|
</argument>
|
|
<argument index="1" name="value" type="Variant">
|
|
</argument>
|
|
<argument index="2" name="update_current" type="bool">
|
|
</argument>
|
|
<description>
|
|
Sets the initial value of the setting specified by [code]name[/code] to [code]value[/code]. This is used to provide a value for the Revert button in the Editor Settings. If [code]update_current[/code] is true, the current value of the setting will be set to [code]value[/code] as well.
|
|
</description>
|
|
</method>
|
|
<method name="set_project_metadata">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="section" type="String">
|
|
</argument>
|
|
<argument index="1" name="key" type="String">
|
|
</argument>
|
|
<argument index="2" name="data" type="Variant">
|
|
</argument>
|
|
<description>
|
|
Sets project-specific metadata with the [code]section[/code], [code]key[/code] and [code]data[/code] specified. This metadata is stored outside the project folder and therefore won't be checked into version control. See also [method get_project_metadata].
|
|
</description>
|
|
</method>
|
|
<method name="set_recent_dirs">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="dirs" type="PackedStringArray">
|
|
</argument>
|
|
<description>
|
|
Sets the list of recently visited folders in the file dialog for this project.
|
|
</description>
|
|
</method>
|
|
<method name="set_setting">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="name" type="String">
|
|
</argument>
|
|
<argument index="1" name="value" type="Variant">
|
|
</argument>
|
|
<description>
|
|
Sets the [code]value[/code] of the setting specified by [code]name[/code]. This is equivalent to using [method Object.set] on the EditorSettings instance.
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
<signals>
|
|
<signal name="settings_changed">
|
|
<description>
|
|
Emitted after any editor setting has changed.
|
|
</description>
|
|
</signal>
|
|
</signals>
|
|
<constants>
|
|
<constant name="NOTIFICATION_EDITOR_SETTINGS_CHANGED" value="10000">
|
|
Emitted after any editor setting has changed. It's used by various editor plugins to update their visuals on theme changes or logic on configuration changes.
|
|
</constant>
|
|
</constants>
|
|
</class>
|