added missing plugins file

This commit is contained in:
Jakub Trllo 2022-04-25 15:10:18 +02:00
parent ed98bbcd32
commit 7fe279fda5

View file

@ -0,0 +1,104 @@
from openpype.pipeline import (
Creator,
CreatedInstance
)
from openpype.lib import (
FileDef,
BoolDef,
)
from .pipeline import (
list_instances,
update_instances,
remove_instances,
HostContext,
)
class TrayPublishCreator(Creator):
create_allow_context_change = True
def collect_instances(self):
for instance_data in list_instances():
creator_id = instance_data.get("creator_identifier")
if creator_id == self.identifier:
instance = CreatedInstance.from_existing(
instance_data, self
)
self._add_instance_to_context(instance)
def update_instances(self, update_list):
update_instances(update_list)
def remove_instances(self, instances):
remove_instances(instances)
for instance in instances:
self._remove_instance_from_context(instance)
def get_pre_create_attr_defs(self):
# Use same attributes as for instance attrobites
return self.get_instance_attr_defs()
class SettingsCreator(TrayPublishCreator):
create_allow_context_change = True
enable_review = False
extensions = []
sequence_extensions = []
def collect_instances(self):
for instance_data in list_instances():
creator_id = instance_data.get("creator_identifier")
if creator_id == self.identifier:
instance = CreatedInstance.from_existing(
instance_data, self
)
self._add_instance_to_context(instance)
def create(self, subset_name, data, pre_create_data):
# Pass precreate data to creator attributes
data["creator_attributes"] = pre_create_data
# Create new instance
new_instance = CreatedInstance(self.family, subset_name, data, self)
# Host implementation of storing metadata about instance
HostContext.add_instance(new_instance.data_to_store())
# Add instance to current context
self._add_instance_to_context(new_instance)
def get_instance_attr_defs(self):
output = []
file_def = FileDef(
"filepath",
folders=False,
extensions=self.extensions,
sequence_extensions=self.sequence_extensions,
label="Filepath"
)
output.append(file_def)
if self.enable_review:
output.append(BoolDef("review", label="Review"))
return output
@classmethod
def from_settings(cls, item_data):
identifier = item_data["identifier"]
family = item_data["family"]
if not identifier:
identifier = "settings_{}".format(family)
return type(
"{}{}".format(cls.__name__, identifier),
(cls, ),
{
"family": family,
"identifier": identifier,
"label": item_data["label"].strip(),
"icon": item_data["icon"],
"description": item_data["description"],
"enable_review": item_data["enable_review"],
"extensions": item_data["extensions"],
"sequence_extensions": item_data["sequence_extensions"],
"default_variants": item_data["default_variants"]
}
)