@@ -482,6 +482,87 @@ PyObject *py_ue_get_metadata(ue_PyUObject * self, PyObject * args)
482482 return PyErr_Format (PyExc_TypeError, " the object does not support MetaData" );
483483}
484484
485+ PyObject *py_ue_get_metadata_tag (ue_PyUObject * self, PyObject * args)
486+ {
487+
488+ ue_py_check (self);
489+
490+ char *metadata_tag_key;
491+ if (!PyArg_ParseTuple (args, " s:get_metadata_tag" , &metadata_tag_key))
492+ {
493+ return nullptr ;
494+ }
495+
496+ const FString& Value = self->ue_object ->GetOutermost ()->GetMetaData ()->GetValue (self->ue_object , UTF8_TO_TCHAR (metadata_tag_key));
497+ return PyUnicode_FromString (TCHAR_TO_UTF8 (*Value));
498+ }
499+
500+ PyObject *py_ue_has_metadata_tag (ue_PyUObject * self, PyObject * args)
501+ {
502+
503+ ue_py_check (self);
504+
505+ char *metadata_tag_key;
506+ if (!PyArg_ParseTuple (args, " s:has_metadata_tag" , &metadata_tag_key))
507+ {
508+ return nullptr ;
509+ }
510+
511+ if (self->ue_object ->GetOutermost ()->GetMetaData ()->HasValue (self->ue_object , UTF8_TO_TCHAR (metadata_tag_key)))
512+ {
513+ Py_RETURN_TRUE;
514+ }
515+ Py_RETURN_FALSE;
516+ }
517+
518+ PyObject *py_ue_remove_metadata_tag (ue_PyUObject * self, PyObject * args)
519+ {
520+
521+ ue_py_check (self);
522+
523+ char *metadata_tag_key;
524+ if (!PyArg_ParseTuple (args, " s:remove_metadata_tag" , &metadata_tag_key))
525+ {
526+ return nullptr ;
527+ }
528+
529+ self->ue_object ->GetOutermost ()->GetMetaData ()->RemoveValue (self->ue_object , UTF8_TO_TCHAR (metadata_tag_key));
530+ Py_RETURN_NONE;
531+ }
532+
533+ PyObject *py_ue_set_metadata_tag (ue_PyUObject * self, PyObject * args)
534+ {
535+
536+ ue_py_check (self);
537+
538+ char *metadata_tag_key;
539+ char *metadata_tag_value;
540+ if (!PyArg_ParseTuple (args, " ss:set_metadata_tag" , &metadata_tag_key, &metadata_tag_value))
541+ {
542+ return nullptr ;
543+ }
544+
545+ self->ue_object ->GetOutermost ()->GetMetaData ()->SetValue (self->ue_object , UTF8_TO_TCHAR (metadata_tag_key), UTF8_TO_TCHAR (metadata_tag_value));
546+ Py_RETURN_NONE;
547+ }
548+
549+
550+ PyObject *py_ue_metadata_tags (ue_PyUObject * self, PyObject * args)
551+ {
552+ ue_py_check (self);
553+
554+ TMap<FName, FString> *TagsMap = self->ue_object ->GetOutermost ()->GetMetaData ()->GetMapForObject (self->ue_object );
555+ if (!TagsMap)
556+ Py_RETURN_NONE;
557+
558+ PyObject* py_list = PyList_New (0 );
559+ for (TPair< FName, FString>& Pair : *TagsMap)
560+ {
561+ PyList_Append (py_list, PyUnicode_FromString (TCHAR_TO_UTF8 (*Pair.Key .ToString ())));
562+ }
563+ return py_list;
564+ }
565+
485566PyObject *py_ue_has_metadata (ue_PyUObject * self, PyObject * args)
486567{
487568
@@ -498,11 +579,9 @@ PyObject *py_ue_has_metadata(ue_PyUObject * self, PyObject * args)
498579 UClass *u_class = (UClass *)self->ue_object ;
499580 if (u_class->HasMetaData (FName (UTF8_TO_TCHAR (metadata_key))))
500581 {
501- Py_INCREF (Py_True);
502- return Py_True;
582+ Py_RETURN_TRUE;
503583 }
504- Py_INCREF (Py_False);
505- return Py_False;
584+ Py_RETURN_FALSE;
506585 }
507586
508587 if (self->ue_object ->IsA <UField>())
@@ -1850,7 +1929,7 @@ PyObject *py_ue_add_property(ue_PyUObject * self, PyObject * args)
18501929 // TODO add default value
18511930
18521931 Py_RETURN_UOBJECT (u_property);
1853- }
1932+ }
18541933
18551934PyObject *py_ue_as_dict (ue_PyUObject * self, PyObject * args)
18561935{
0 commit comments