Skip to content

Commit c33ee14

Browse files
author
Roberto De Ioris
committed
added support for removing items from sequencer
1 parent b7c074f commit c33ee14

File tree

3 files changed

+127
-0
lines changed

3 files changed

+127
-0
lines changed

Source/UnrealEnginePython/Private/UEPyModule.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -711,6 +711,11 @@ static PyMethodDef ue_PyUObject_methods[] = {
711711
{ "sequencer_track_add_section", (PyCFunction)py_ue_sequencer_track_add_section, METH_VARARGS, "" },
712712

713713
{ "sequencer_section_add_key", (PyCFunction)py_ue_sequencer_section_add_key, METH_VARARGS, "" },
714+
{ "sequencer_remove_possessable", (PyCFunction)py_ue_sequencer_remove_possessable, METH_VARARGS, "" },
715+
{ "sequencer_remove_spawnable", (PyCFunction)py_ue_sequencer_remove_spawnable, METH_VARARGS, "" },
716+
{ "sequencer_remove_camera_cut_track", (PyCFunction)py_ue_sequencer_remove_camera_cut_track, METH_VARARGS, "" },
717+
{ "sequencer_remove_master_track", (PyCFunction)py_ue_sequencer_remove_master_track, METH_VARARGS, "" },
718+
{ "sequencer_remove_track", (PyCFunction)py_ue_sequencer_remove_track, METH_VARARGS, "" },
714719
#endif
715720
{ "sequencer_sections", (PyCFunction)py_ue_sequencer_sections, METH_VARARGS, "" },
716721
{ "sequencer_track_sections", (PyCFunction)py_ue_sequencer_track_sections, METH_VARARGS, "" },

Source/UnrealEnginePython/Private/UObject/UEPySequencer.cpp

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -681,6 +681,122 @@ PyObject *py_ue_sequencer_add_camera_cut_track(ue_PyUObject *self, PyObject * ar
681681
Py_INCREF(ret);
682682
return ret;
683683
}
684+
685+
686+
PyObject *py_ue_sequencer_remove_possessable(ue_PyUObject *self, PyObject * args) {
687+
688+
ue_py_check(self);
689+
690+
char *guid;
691+
if (!PyArg_ParseTuple(args, "s:sequencer_remove_possessable", &guid)) {
692+
return nullptr;
693+
}
694+
695+
ULevelSequence *seq = ue_py_check_type<ULevelSequence>(self);
696+
if (!seq)
697+
return PyErr_Format(PyExc_Exception, "uobject is not a LevelSequence");
698+
UMovieScene *scene = seq->GetMovieScene();
699+
700+
FGuid f_guid;
701+
if (!FGuid::Parse(FString(guid), f_guid)) {
702+
return PyErr_Format(PyExc_Exception, "invalid guid");
703+
}
704+
705+
if (scene->RemovePossessable(f_guid))
706+
Py_RETURN_TRUE;
707+
708+
Py_RETURN_FALSE;
709+
}
710+
711+
PyObject *py_ue_sequencer_remove_spawnable(ue_PyUObject *self, PyObject * args) {
712+
713+
ue_py_check(self);
714+
715+
char *guid;
716+
if (!PyArg_ParseTuple(args, "s:sequencer_remove_spawnable", &guid)) {
717+
return nullptr;
718+
}
719+
720+
ULevelSequence *seq = ue_py_check_type<ULevelSequence>(self);
721+
if (!seq)
722+
return PyErr_Format(PyExc_Exception, "uobject is not a LevelSequence");
723+
UMovieScene *scene = seq->GetMovieScene();
724+
725+
FGuid f_guid;
726+
if (!FGuid::Parse(FString(guid), f_guid)) {
727+
return PyErr_Format(PyExc_Exception, "invalid guid");
728+
}
729+
730+
if (scene->RemoveSpawnable(f_guid))
731+
Py_RETURN_TRUE;
732+
733+
Py_RETURN_FALSE;
734+
}
735+
736+
PyObject *py_ue_sequencer_remove_camera_cut_track(ue_PyUObject *self, PyObject * args) {
737+
738+
ue_py_check(self);
739+
740+
ULevelSequence *seq = ue_py_check_type<ULevelSequence>(self);
741+
if (!seq)
742+
return PyErr_Format(PyExc_Exception, "uobject is not a LevelSequence");
743+
UMovieScene *scene = seq->GetMovieScene();
744+
745+
scene->RemoveCameraCutTrack();
746+
747+
Py_RETURN_NONE;
748+
}
749+
750+
PyObject *py_ue_sequencer_remove_master_track(ue_PyUObject *self, PyObject * args) {
751+
752+
ue_py_check(self);
753+
754+
PyObject *py_track;
755+
if (!PyArg_ParseTuple(args, "track:sequencer_remove_master_track", &py_track)) {
756+
return nullptr;
757+
}
758+
759+
ULevelSequence *seq = ue_py_check_type<ULevelSequence>(self);
760+
if (!seq)
761+
return PyErr_Format(PyExc_Exception, "uobject is not a LevelSequence");
762+
763+
UMovieSceneTrack *track = ue_py_check_type<UMovieSceneTrack>(py_track);
764+
if (!track)
765+
return PyErr_Format(PyExc_Exception, "argument is not a UMovieSceneTrack");
766+
767+
UMovieScene *scene = seq->GetMovieScene();
768+
769+
if (scene->RemoveMasterTrack(*track))
770+
Py_RETURN_TRUE;
771+
772+
Py_RETURN_FALSE;
773+
}
774+
775+
PyObject *py_ue_sequencer_remove_track(ue_PyUObject *self, PyObject * args) {
776+
777+
ue_py_check(self);
778+
779+
PyObject *py_track;
780+
if (!PyArg_ParseTuple(args, "track:sequencer_remove_track", &py_track)) {
781+
return nullptr;
782+
}
783+
784+
ULevelSequence *seq = ue_py_check_type<ULevelSequence>(self);
785+
if (!seq)
786+
return PyErr_Format(PyExc_Exception, "uobject is not a LevelSequence");
787+
788+
UMovieSceneTrack *track = ue_py_check_type<UMovieSceneTrack>(py_track);
789+
if (!track)
790+
return PyErr_Format(PyExc_Exception, "argument is not a UMovieSceneTrack");
791+
792+
UMovieScene *scene = seq->GetMovieScene();
793+
794+
if (scene->RemoveTrack(*track))
795+
Py_RETURN_TRUE;
796+
797+
Py_RETURN_FALSE;
798+
}
799+
684800
#endif
685801

686802
PyObject *py_ue_sequencer_add_track(ue_PyUObject *self, PyObject * args) {

Source/UnrealEnginePython/Private/UObject/UEPySequencer.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ PyObject *py_ue_sequencer_add_possessable(ue_PyUObject *, PyObject *);
2222
PyObject *py_ue_sequencer_track_add_section(ue_PyUObject *, PyObject *);
2323
PyObject *py_ue_sequencer_add_actor(ue_PyUObject *, PyObject *);
2424
PyObject *py_ue_sequencer_make_new_spawnable(ue_PyUObject *, PyObject *);
25+
26+
PyObject *py_ue_sequencer_remove_possessable(ue_PyUObject *, PyObject *);
27+
PyObject *py_ue_sequencer_remove_spawnable(ue_PyUObject *, PyObject *);
28+
PyObject *py_ue_sequencer_remove_camera_cut_track(ue_PyUObject *, PyObject *);
29+
PyObject *py_ue_sequencer_remove_master_track(ue_PyUObject *, PyObject *);
30+
PyObject *py_ue_sequencer_remove_track(ue_PyUObject *, PyObject *);
2531
#endif
2632
PyObject *py_ue_sequencer_sections(ue_PyUObject *, PyObject *);
2733
PyObject *py_ue_sequencer_possessables(ue_PyUObject *, PyObject *);

0 commit comments

Comments
 (0)