Skip to content

save_scene

SaveCurrentScene

Bases: ContextPlugin

Save current scene

Source code in client/ayon_cinema4d/plugins/publish/save_scene.py
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class SaveCurrentScene(pyblish.api.ContextPlugin):
    """Save current scene"""

    label = "Save current file"
    order = pyblish.api.ExtractorOrder - 0.49
    hosts = ["cinema4d"]

    def process(self, context):

        doc: c4d.documents.BaseDocument = context.data["doc"]
        # If file has no modifications, skip forcing a file save
        if not doc.GetChanged():
            self.log.debug("Skipping file save as there "
                           "are no unsaved changes..")
            return

        current_file = get_document_path(doc)
        assert context.data['currentFile'] == current_file

        self.log.debug(f"Saving current file: {current_file}")
        c4d.documents.SaveDocument(
            doc, current_file,
            saveflags=c4d.SAVEDOCUMENTFLAGS_NONE,
            format=c4d.FORMAT_C4DEXPORT
        )