<?xml version="1.0" encoding="UTF-8" ?>
<class name="MeshLibrary" inherits="Resource" version="4.0">
	<brief_description>
		Library of meshes.
	</brief_description>
	<description>
		A library of meshes. Contains a list of [Mesh] resources, each with a name and ID. Each item can also include collision and navigation shapes. This resource is used in [GridMap].
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="clear">
			<return type="void">
			</return>
			<description>
				Clears the library.
			</description>
		</method>
		<method name="create_item">
			<return type="void">
			</return>
			<argument index="0" name="id" type="int">
			</argument>
			<description>
				Creates a new item in the library with the given ID.
				You can get an unused ID from [method get_last_unused_item_id].
			</description>
		</method>
		<method name="find_item_by_name" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="name" type="String">
			</argument>
			<description>
				Returns the first item with the given name.
			</description>
		</method>
		<method name="get_item_list" qualifiers="const">
			<return type="PackedInt32Array">
			</return>
			<description>
				Returns the list of item IDs in use.
			</description>
		</method>
		<method name="get_item_mesh" qualifiers="const">
			<return type="Mesh">
			</return>
			<argument index="0" name="id" type="int">
			</argument>
			<description>
				Returns the item's mesh.
			</description>
		</method>
		<method name="get_item_name" qualifiers="const">
			<return type="String">
			</return>
			<argument index="0" name="id" type="int">
			</argument>
			<description>
				Returns the item's name.
			</description>
		</method>
		<method name="get_item_navmesh" qualifiers="const">
			<return type="NavigationMesh">
			</return>
			<argument index="0" name="id" type="int">
			</argument>
			<description>
				Returns the item's navigation mesh.
			</description>
		</method>
		<method name="get_item_navmesh_transform" qualifiers="const">
			<return type="Transform">
			</return>
			<argument index="0" name="id" type="int">
			</argument>
			<description>
				Returns the transform applied to the item's navigation mesh.
			</description>
		</method>
		<method name="get_item_preview" qualifiers="const">
			<return type="Texture2D">
			</return>
			<argument index="0" name="id" type="int">
			</argument>
			<description>
				When running in the editor, returns a generated item preview (a 3D rendering in isometric perspective). When used in a running project, returns the manually-defined item preview which can be set using [method set_item_preview]. Returns an empty [Texture2D] if no preview was manually set in a running project.
			</description>
		</method>
		<method name="get_item_shapes" qualifiers="const">
			<return type="Array">
			</return>
			<argument index="0" name="id" type="int">
			</argument>
			<description>
				Returns an item's collision shapes.
				The array consists of each [Shape] followed by its [Transform].
			</description>
		</method>
		<method name="get_last_unused_item_id" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Gets an unused ID for a new item.
			</description>
		</method>
		<method name="remove_item">
			<return type="void">
			</return>
			<argument index="0" name="id" type="int">
			</argument>
			<description>
				Removes the item.
			</description>
		</method>
		<method name="set_item_mesh">
			<return type="void">
			</return>
			<argument index="0" name="id" type="int">
			</argument>
			<argument index="1" name="mesh" type="Mesh">
			</argument>
			<description>
				Sets the item's mesh.
			</description>
		</method>
		<method name="set_item_name">
			<return type="void">
			</return>
			<argument index="0" name="id" type="int">
			</argument>
			<argument index="1" name="name" type="String">
			</argument>
			<description>
				Sets the item's name.
				This name is shown in the editor. It can also be used to look up the item later using [method find_item_by_name].
			</description>
		</method>
		<method name="set_item_navmesh">
			<return type="void">
			</return>
			<argument index="0" name="id" type="int">
			</argument>
			<argument index="1" name="navmesh" type="NavigationMesh">
			</argument>
			<description>
				Sets the item's navigation mesh.
			</description>
		</method>
		<method name="set_item_navmesh_transform">
			<return type="void">
			</return>
			<argument index="0" name="id" type="int">
			</argument>
			<argument index="1" name="navmesh" type="Transform">
			</argument>
			<description>
				Sets the transform to apply to the item's navigation mesh.
			</description>
		</method>
		<method name="set_item_preview">
			<return type="void">
			</return>
			<argument index="0" name="id" type="int">
			</argument>
			<argument index="1" name="texture" type="Texture2D">
			</argument>
			<description>
				Sets a texture to use as the item's preview icon in the editor.
			</description>
		</method>
		<method name="set_item_shapes">
			<return type="void">
			</return>
			<argument index="0" name="id" type="int">
			</argument>
			<argument index="1" name="shapes" type="Array">
			</argument>
			<description>
				Sets an item's collision shapes.
				The array should consist of [Shape] objects, each followed by a [Transform] that will be applied to it. For shapes that should not have a transform, use [constant Transform.IDENTITY].
			</description>
		</method>
	</methods>
	<constants>
	</constants>
</class>