attributes.py (4728B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\achievement_system\client\model\definition\contribution_method\attributes.py 2 from achievement_system.client.model.definition.contribution_method.parameter.entry import ContributionMethodParameterEntry 3 from achievement_system.client.model.definition.contribution_method.progress_config import extract_from_flatbuffer as extract_progress_config_from_flatbuffer, ProgressConfigBase 4 from achievement_system.client.model.definition.icon_frames.ui_annotations import get_icon_outer_frame_from_annotation, get_icon_outer_mask_from_annotation, get_icon_inner_frame_from_annotation, ICON_OUTER_FRAME_KEY, ICON_INNER_FRAME_KEY, DEFAULT_OUTER_FRAME, DEFAULT_OUTER_MASK, DEFAULT_INNER_FRAME 5 from achievement_system.client.model.flatbuffer.generated import ContributionMethodDefinition as FlatbufferContributionMethodDefinition 6 from localization.client.cerberus_formatted_message import CerberusFormattedMessage 7 from metadata.common.content_tags import ContentTag 8 if False: 9 from typing import List, Dict 10 11 class ContributionMethodAttributes(object): 12 13 def __init__(self, name_message, description_message, progress_message, icon_id, content_tags, ui_annotations, parameters, progress_config): 14 self._name_message = name_message 15 self._description_message = description_message 16 self._progress_message = progress_message 17 self._icon_id = icon_id 18 self._content_tags = content_tags 19 self._ui_annotations = ui_annotations 20 self._parameters = parameters 21 self._progress_config = progress_config 22 23 @property 24 def name_message(self): 25 return self._name_message 26 27 @property 28 def description_message(self): 29 return self._description_message 30 31 @property 32 def progress_message(self): 33 return self._progress_message 34 35 @property 36 def icon_id(self): 37 return self._icon_id 38 39 @property 40 def content_tags(self): 41 return self._content_tags 42 43 @property 44 def ui_annotations(self): 45 return self._ui_annotations 46 47 @property 48 def parameters(self): 49 return self._parameters 50 51 @property 52 def progress_config(self): 53 return self._progress_config 54 55 def get_icon_frame_keys(self, is_completed = False): 56 outer_frame = get_icon_outer_frame_from_annotation(self._ui_annotations.get(ICON_OUTER_FRAME_KEY, None)) 57 if outer_frame is None: 58 outer_frame = DEFAULT_OUTER_FRAME 59 outer_mask = get_icon_outer_mask_from_annotation(self._ui_annotations.get(ICON_INNER_FRAME_KEY, None)) 60 if outer_mask is None: 61 outer_mask = DEFAULT_OUTER_MASK 62 inner_frame = get_icon_inner_frame_from_annotation(self._ui_annotations.get(ICON_INNER_FRAME_KEY, None), is_completed) 63 if inner_frame is None: 64 inner_frame = DEFAULT_INNER_FRAME 65 return (outer_frame, outer_mask, inner_frame) 66 67 @classmethod 68 def from_flatbuffer(cls, fb_data): 69 return ContributionMethodAttributes(name_message=CerberusFormattedMessage(identifier=fb_data.Name(), parameters={}), description_message=CerberusFormattedMessage(identifier=fb_data.Description(), parameters={}), progress_message=CerberusFormattedMessage(identifier=fb_data.ProgressDescription(), parameters={}), icon_id=fb_data.IconId() if fb_data.IconId() else None, content_tags=[ ContentTag(content_tag_id=fb_data.ContentTags(i), content_tag_data={}) for i in range(fb_data.ContentTagsLength()) ], ui_annotations={fb_data.UiAnnotations(i).Key():fb_data.UiAnnotations(i).Value() for i in range(fb_data.UiAnnotationsLength())}, parameters=[ ContributionMethodParameterEntry.from_flatbuffer(fb_data.Parameters(i)) for i in range(fb_data.ParametersLength()) ], progress_config=extract_progress_config_from_flatbuffer(fb_data)) 70 71 def __eq__(self, other): 72 return self.name_message == other.name_message and self.description_message == other.description_message and self.progress_message == other.progress_message and self.icon_id == other.icon_id and self.content_tags == other.content_tags and self.parameters == other.parameters and self.progress_config == other.progress_config 73 74 def __ne__(self, other): 75 return not self.__eq__(other) 76 77 def __str__(self): 78 return 'name_message: %s\n' % self.name_message.get_localized_text() + 'description_message: %s\n' % self.description_message.get_localized_text() + 'progress_message: %s\n' % self.progress_message.get_localized_text() + 'icon_id: %s\n' % self.icon_id + 'content_tags: %s\n' % self.content_tags + 'parameters: %s\n' % '\n, '.join([ p.__str__() for p in self.parameters ]) + 'progress_config: %s\n' % self.progress_config