NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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