Merge pull request #32308 from Calinou/meshlibrary-item-preview-editor-only

Mention `MeshLibrary.get_item_preview()` not working in running project
This commit is contained in:
Rémi Verschelde 2019-09-26 12:36:52 +02:00 committed by GitHub
commit 04032a9445
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 6 deletions

View File

@ -4,7 +4,7 @@
Library of meshes.
</brief_description>
<description>
Library of meshes. Contains a list of [Mesh] resources, each with name and ID. This resource is used in [GridMap].
A library of meshes. Contains a list of [Mesh] resources, each with a name and ID. This resource is used in [GridMap].
</description>
<tutorials>
</tutorials>
@ -13,7 +13,7 @@
<return type="void">
</return>
<description>
Clear the library.
Clears the library.
</description>
</method>
<method name="create_item">
@ -22,7 +22,7 @@
<argument index="0" name="id" type="int">
</argument>
<description>
Create a new item in the library, supplied an id.
Create a new item in the library, supplied as an ID.
</description>
</method>
<method name="find_item_by_name" qualifiers="const">
@ -80,6 +80,8 @@
<argument index="0" name="id" type="int">
</argument>
<description>
Returns a generated item preview (a 3D rendering in isometric perspective).
[b]Note:[/b] Since item previews are only generated in an editor context, this function will return an empty [Texture] in a running project.
</description>
</method>
<method name="get_item_shapes" qualifiers="const">
@ -94,7 +96,7 @@
<return type="int">
</return>
<description>
Gets an unused id for a new item.
Gets an unused ID for a new item.
</description>
</method>
<method name="remove_item">
@ -114,7 +116,7 @@
<argument index="1" name="mesh" type="Mesh">
</argument>
<description>
Sets the mesh of the item.
Sets the item's mesh.
</description>
</method>
<method name="set_item_name">
@ -125,7 +127,7 @@
<argument index="1" name="name" type="String">
</argument>
<description>
Sets the name of the item.
Sets the item's name.
</description>
</method>
<method name="set_item_navmesh">

View File

@ -29,6 +29,7 @@
/*************************************************************************/
#include "mesh_library.h"
#include "core/engine.h"
bool MeshLibrary::_set(const StringName &p_name, const Variant &p_value) {
@ -201,6 +202,11 @@ Transform MeshLibrary::get_item_navmesh_transform(int p_item) const {
Ref<Texture> MeshLibrary::get_item_preview(int p_item) const {
if (!Engine::get_singleton()->is_editor_hint()) {
ERR_PRINT("MeshLibrary item previews are only generated in an editor context, which means they aren't available in a running project.");
return Ref<Texture>();
}
ERR_FAIL_COND_V_MSG(!item_map.has(p_item), Ref<Texture>(), "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'.");
return item_map[p_item].preview;
}