<?xml version="1.0" encoding="UTF-8" ?>
<class name="EditorFeatureProfile" inherits="RefCounted" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		An editor feature profile which can be used to disable specific features.
	</brief_description>
	<description>
		An editor feature profile can be used to disable specific features of the Godot editor. When disabled, the features won't appear in the editor, which makes the editor less cluttered. This is useful in education settings to reduce confusion or when working in a team. For example, artists and level designers could use a feature profile that disables the script editor to avoid accidentally making changes to files they aren't supposed to edit.
		To manage editor feature profiles visually, use [b]Editor &gt; Manage Feature Profiles...[/b] at the top of the editor window.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="get_feature_name">
			<return type="String" />
			<param index="0" name="feature" type="int" enum="EditorFeatureProfile.Feature" />
			<description>
				Returns the specified [param feature]'s human-readable name.
			</description>
		</method>
		<method name="is_class_disabled" qualifiers="const">
			<return type="bool" />
			<param index="0" name="class_name" type="StringName" />
			<description>
				Returns [code]true[/code] if the class specified by [param class_name] is disabled. When disabled, the class won't appear in the Create New Node dialog.
			</description>
		</method>
		<method name="is_class_editor_disabled" qualifiers="const">
			<return type="bool" />
			<param index="0" name="class_name" type="StringName" />
			<description>
				Returns [code]true[/code] if editing for the class specified by [param class_name] is disabled. When disabled, the class will still appear in the Create New Node dialog but the Inspector will be read-only when selecting a node that extends the class.
			</description>
		</method>
		<method name="is_class_property_disabled" qualifiers="const">
			<return type="bool" />
			<param index="0" name="class_name" type="StringName" />
			<param index="1" name="property" type="StringName" />
			<description>
				Returns [code]true[/code] if [param property] is disabled in the class specified by [param class_name]. When a property is disabled, it won't appear in the Inspector when selecting a node that extends the class specified by [param class_name].
			</description>
		</method>
		<method name="is_feature_disabled" qualifiers="const">
			<return type="bool" />
			<param index="0" name="feature" type="int" enum="EditorFeatureProfile.Feature" />
			<description>
				Returns [code]true[/code] if the [param feature] is disabled. When a feature is disabled, it will disappear from the editor entirely.
			</description>
		</method>
		<method name="load_from_file">
			<return type="int" enum="Error" />
			<param index="0" name="path" type="String" />
			<description>
				Loads an editor feature profile from a file. The file must follow the JSON format obtained by using the feature profile manager's [b]Export[/b] button or the [method save_to_file] method.
				[b]Note:[/b] Feature profiles created via the user interface are loaded from the [code]feature_profiles[/code] directory, as a file with the [code].profile[/code] extension. The editor configuration folder can be found by using [method EditorPaths.get_config_dir].
			</description>
		</method>
		<method name="save_to_file">
			<return type="int" enum="Error" />
			<param index="0" name="path" type="String" />
			<description>
				Saves the editor feature profile to a file in JSON format. It can then be imported using the feature profile manager's [b]Import[/b] button or the [method load_from_file] method.
				[b]Note:[/b] Feature profiles created via the user interface are saved in the [code]feature_profiles[/code] directory, as a file with the [code].profile[/code] extension. The editor configuration folder can be found by using [method EditorPaths.get_config_dir].
			</description>
		</method>
		<method name="set_disable_class">
			<return type="void" />
			<param index="0" name="class_name" type="StringName" />
			<param index="1" name="disable" type="bool" />
			<description>
				If [param disable] is [code]true[/code], disables the class specified by [param class_name]. When disabled, the class won't appear in the Create New Node dialog.
			</description>
		</method>
		<method name="set_disable_class_editor">
			<return type="void" />
			<param index="0" name="class_name" type="StringName" />
			<param index="1" name="disable" type="bool" />
			<description>
				If [param disable] is [code]true[/code], disables editing for the class specified by [param class_name]. When disabled, the class will still appear in the Create New Node dialog but the Inspector will be read-only when selecting a node that extends the class.
			</description>
		</method>
		<method name="set_disable_class_property">
			<return type="void" />
			<param index="0" name="class_name" type="StringName" />
			<param index="1" name="property" type="StringName" />
			<param index="2" name="disable" type="bool" />
			<description>
				If [param disable] is [code]true[/code], disables editing for [param property] in the class specified by [param class_name]. When a property is disabled, it won't appear in the Inspector when selecting a node that extends the class specified by [param class_name].
			</description>
		</method>
		<method name="set_disable_feature">
			<return type="void" />
			<param index="0" name="feature" type="int" enum="EditorFeatureProfile.Feature" />
			<param index="1" name="disable" type="bool" />
			<description>
				If [param disable] is [code]true[/code], disables the editor feature specified in [param feature]. When a feature is disabled, it will disappear from the editor entirely.
			</description>
		</method>
	</methods>
	<constants>
		<constant name="FEATURE_3D" value="0" enum="Feature">
			The 3D editor. If this feature is disabled, the 3D editor won't display but 3D nodes will still display in the Create New Node dialog.
		</constant>
		<constant name="FEATURE_SCRIPT" value="1" enum="Feature">
			The Script tab, which contains the script editor and class reference browser. If this feature is disabled, the Script tab won't display.
		</constant>
		<constant name="FEATURE_ASSET_LIB" value="2" enum="Feature">
			The AssetLib tab. If this feature is disabled, the AssetLib tab won't display.
		</constant>
		<constant name="FEATURE_SCENE_TREE" value="3" enum="Feature">
			Scene tree editing. If this feature is disabled, the Scene tree dock will still be visible but will be read-only.
		</constant>
		<constant name="FEATURE_NODE_DOCK" value="4" enum="Feature">
			The Node dock. If this feature is disabled, signals and groups won't be visible and modifiable from the editor.
		</constant>
		<constant name="FEATURE_FILESYSTEM_DOCK" value="5" enum="Feature">
			The FileSystem dock. If this feature is disabled, the FileSystem dock won't be visible.
		</constant>
		<constant name="FEATURE_IMPORT_DOCK" value="6" enum="Feature">
			The Import dock. If this feature is disabled, the Import dock won't be visible.
		</constant>
		<constant name="FEATURE_HISTORY_DOCK" value="7" enum="Feature">
			The History dock. If this feature is disabled, the History dock won't be visible.
		</constant>
		<constant name="FEATURE_GAME" value="8" enum="Feature">
			The Game tab, which allows embedding the game window and selecting nodes by clicking inside of it. If this feature is disabled, the Game tab won't display.
		</constant>
		<constant name="FEATURE_MAX" value="9" enum="Feature">
			Represents the size of the [enum Feature] enum.
		</constant>
	</constants>
</class>
