Source code for caspia.meadow.rules.lightgroup

from caspia.meadow.serialization import Deserializable, Serializable

from .base import Rule


[docs]class LightGroupAttachRule(Rule, Serializable, Deserializable): enable_duplicates = False def __init__(self, group, light, identifier=None, name=None): super().__init__(identifier=identifier) self.light = light self.group = group self.name = name or self._autogenerate_name() def _autogenerate_name(self): return f'[generated] Attach {self.light.name} to {self.group.name}' serialized_type = 'light-group-attach'
[docs] def serialize_content(self): return { 'type': self.serialized_type, 'group': self.group.name, 'light': self.light.name, }
[docs] @classmethod def deserialize(cls, data, context): get_service = context['get_service'] return LightGroupAttachRule(group=get_service(data['group'], type='light'), light=get_service(data['light'], type='light'), identifier=data['identifier'])
def __repr__(self): return f'<LightGroupAttachRule light:{self.light.name} group:{self.group.name}>'