Skip to content

Commit d5386c3

Browse files
committed
added get_asset_identifier_referencers()
1 parent c2901db commit d5386c3

File tree

3 files changed

+35
-5
lines changed

3 files changed

+35
-5
lines changed

Source/UnrealEnginePython/Private/UEPyEditor.cpp

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -639,18 +639,19 @@ PyObject *py_unreal_engine_create_asset(PyObject * self, PyObject * args)
639639
PyObject *py_unreal_engine_get_asset_referencers(PyObject * self, PyObject * args)
640640
{
641641
char *path;
642+
int depency_type = (int)EAssetRegistryDependencyType::All;
642643

643-
if (!PyArg_ParseTuple(args, "s:get_asset_referencers", &path))
644+
if (!PyArg_ParseTuple(args, "s|i:get_asset_referencers", &path, &depency_type))
644645
{
645-
return NULL;
646+
return nullptr;
646647
}
647648

648649
if (!GEditor)
649650
return PyErr_Format(PyExc_Exception, "no GEditor found");
650651

651652
FAssetRegistryModule& AssetRegistryModule = FModuleManager::GetModuleChecked<FAssetRegistryModule>("AssetRegistry");
652653
TArray<FName> referencers;
653-
AssetRegistryModule.Get().GetReferencers(UTF8_TO_TCHAR(path), referencers);
654+
AssetRegistryModule.Get().GetReferencers(UTF8_TO_TCHAR(path), referencers, (EAssetRegistryDependencyType::Type) depency_type);
654655

655656
PyObject *referencers_list = PyList_New(0);
656657
for (FName name : referencers)
@@ -660,11 +661,38 @@ PyObject *py_unreal_engine_get_asset_referencers(PyObject * self, PyObject * arg
660661
return referencers_list;
661662
}
662663

664+
PyObject *py_unreal_engine_get_asset_identifier_referencers(PyObject * self, PyObject * args)
665+
{
666+
char *path;
667+
int depency_type = (int)EAssetRegistryDependencyType::All;
668+
669+
if (!PyArg_ParseTuple(args, "s|i:get_asset_identifier_referencers", &path, &depency_type))
670+
{
671+
return nullptr;
672+
}
673+
674+
if (!GEditor)
675+
return PyErr_Format(PyExc_Exception, "no GEditor found");
676+
677+
FAssetRegistryModule& AssetRegistryModule = FModuleManager::GetModuleChecked<FAssetRegistryModule>("AssetRegistry");
678+
TArray<FAssetIdentifier> referencers;
679+
AssetRegistryModule.Get().GetReferencers(FAssetIdentifier::FromString(UTF8_TO_TCHAR(path)), referencers, (EAssetRegistryDependencyType::Type) depency_type);
680+
681+
PyObject *referencers_list = PyList_New(0);
682+
for (FAssetIdentifier identifier : referencers)
683+
{
684+
PyList_Append(referencers_list, PyUnicode_FromString(TCHAR_TO_UTF8(*identifier.ToString())));
685+
}
686+
return referencers_list;
687+
}
688+
689+
663690
PyObject *py_unreal_engine_get_asset_dependencies(PyObject * self, PyObject * args)
664691
{
665692
char *path;
693+
int depency_type = (int)EAssetRegistryDependencyType::All;
666694

667-
if (!PyArg_ParseTuple(args, "s:get_asset_dependencies", &path))
695+
if (!PyArg_ParseTuple(args, "s|i:get_asset_dependencies", &path, &depency_type))
668696
{
669697
return NULL;
670698
}
@@ -674,7 +702,7 @@ PyObject *py_unreal_engine_get_asset_dependencies(PyObject * self, PyObject * ar
674702

675703
FAssetRegistryModule& AssetRegistryModule = FModuleManager::GetModuleChecked<FAssetRegistryModule>("AssetRegistry");
676704
TArray<FName> dependencies;
677-
AssetRegistryModule.Get().GetDependencies(UTF8_TO_TCHAR(path), dependencies);
705+
AssetRegistryModule.Get().GetDependencies(UTF8_TO_TCHAR(path), dependencies, (EAssetRegistryDependencyType::Type) depency_type);
678706

679707
PyObject *dependencies_list = PyList_New(0);
680708
for (FName name : dependencies)

Source/UnrealEnginePython/Private/UEPyEditor.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ PyObject *py_unreal_engine_create_material_instance(PyObject *, PyObject *);
9595
PyObject *py_unreal_engine_allow_actor_script_execution_in_editor(PyObject *, PyObject *);
9696

9797
PyObject *py_unreal_engine_get_asset_referencers(PyObject *, PyObject *);
98+
PyObject *py_unreal_engine_get_asset_identifier_referencers(PyObject *, PyObject *);
9899
PyObject *py_unreal_engine_get_asset_dependencies(PyObject *, PyObject *);
99100

100101
PyObject *py_unreal_engine_open_editor_for_asset(PyObject *, PyObject *);

Source/UnrealEnginePython/Private/UEPyModule.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,7 @@ static PyMethodDef unreal_engine_methods[] = {
341341
{ "sync_browser_to_assets", py_unreal_engine_editor_sync_browser_to_assets, METH_VARARGS, "" },
342342

343343
{ "get_asset_referencers", py_unreal_engine_get_asset_referencers, METH_VARARGS, "" },
344+
{ "get_asset_identifier_referencers", py_unreal_engine_get_asset_identifier_referencers, METH_VARARGS, "" },
344345
{ "get_asset_dependencies", py_unreal_engine_get_asset_dependencies, METH_VARARGS, "" },
345346

346347
{ "rename_asset", py_unreal_engine_rename_asset, METH_VARARGS, "" },

0 commit comments

Comments
 (0)