def get_light_target_gen(self, interaction): for obj in services.object_manager( ).get_all_objects_with_component_gen( objects.components.types.LIGHTING_COMPONENT): target_object_tags = set(get_object_all_tags(obj.definition.id)) if self.tags & target_object_tags: yield obj
def assign_build_buy_tags(self): tags = None try: tags = build_buy.get_object_all_tags(self.id) except Exception as e: logger.info('Exception while assigning BB tags to {}\n{}', self, e) if tags is not None: intern_service = services.get_intern_service() self.build_buy_tags = intern_service.intern(tags)
def target_matches_object_tags(self, interaction=None): if interaction is None or interaction.target is None or interaction.target.is_sim: return False object_id = interaction.target.definition.id target_object_tags = set(build_buy.get_object_all_tags(object_id)) if self.object_tags.test_type == TagTestType.CONTAINS_ANY_TAG_IN_SET: return target_object_tags & self.object_tags.tag_set if self.object_tags.test_type == TagTestType.CONTAINS_ALL_TAGS_IN_SET: return target_object_tags & self.object_tags.tag_set == self.object_tags.tag_set if self.object_tags.test_type == TagTestType.CONTAINS_NO_TAGS_IN_SET: return not target_object_tags & self.object_tags.tag_set return False
def target_matches_object_tags(self, interaction=None): if interaction is None or interaction.target is None or interaction.target.is_sim: return False object_id = interaction.target.definition.id target_object_tags = set(build_buy.get_object_all_tags(object_id)) if self.object_tags.test_type == TagTestType.CONTAINS_ANY_TAG_IN_SET: return target_object_tags & self.object_tags.tag_set if self.object_tags.test_type == TagTestType.CONTAINS_ALL_TAGS_IN_SET: return target_object_tags & self.object_tags.tag_set == self.object_tags.tag_set if self.object_tags.test_type == TagTestType.CONTAINS_NO_TAGS_IN_SET: return not target_object_tags & self.object_tags.tag_set return False
def _run_interaction_gen(self, timeline): violin = None violin_tag = set([Tag.Instrument_Violin]) inventory = self.sim.inventory_component for item in inventory: object_tags = set(build_buy.get_object_all_tags(item.definition.id)) while object_tags & violin_tag: violin = item break if violin is not None: self.context.carry_target = violin yield super()._run_interaction_gen(timeline) return False
def _run_interaction_gen(self, timeline): violin = None violin_tag = set([Tag.Instrument_Violin]) inventory = self.sim.inventory_component for item in inventory: object_tags = set(build_buy.get_object_all_tags( item.definition.id)) while object_tags & violin_tag: violin = item break if violin is not None: self.context.carry_target = violin yield super()._run_interaction_gen(timeline) return False
def assign_build_buy_tags(self): tags = build_buy.get_object_all_tags(self.id) if tags is not None: self.build_buy_tags = frozenset(tags)
def get_tags(self): if self._tags is None: self._tags = frozenset( build_buy.get_object_all_tags(self.obj_def_guid)) return self._tags
def get_tags(self): if not self._tags: self._tags = build_buy.get_object_all_tags(self.obj_def_guid) return self._tags
def assign_build_buy_tags(self): tags = build_buy.get_object_all_tags(self.id) if tags is not None: self.build_buy_tags = frozenset(tags)
def get_tags(self): if not self._tags: self._tags = build_buy.get_object_all_tags(self.obj_def_guid) return self._tags
def get_tags(self): if not self._tags: self._tags = frozenset( build_buy.get_object_all_tags(self._obj_def_guid)) return self._tags