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

configuration.py (2531B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\achievement_system\client\model\definition\contribution_method\parameter\configuration.py
      2 from achievement_system.client.model.definition.contribution_method.parameter.identifier import ContributionMethodParameterIdentifier
      3 from achievement_system.client.model.flatbuffer.generated import ContributionParam as FlatbufferContributionParam
      4 from eveProto.generated.eve_public.achievement.contribution.contribution_pb2 import ParameterConfiguration as ProtoParameterConfiguration, MatcherParameterConfiguration as ProtoMatcherParameterConfiguration
      5 from parameter_types.data.matcher import MatcherParameterConfiguration
      6 if False:
      7     from typing import List, Dict
      8 
      9 class ContributionMethodParameterConfiguration(object):
     10 
     11     def __init__(self, identifier, values):
     12         self._identifier = identifier
     13         self._values = values
     14 
     15     @property
     16     def identifier(self):
     17         return self._identifier
     18 
     19     @property
     20     def values(self):
     21         return self._values
     22 
     23     def get_ui_controller(self):
     24         return MatcherParameterConfiguration(parameter_key=self.identifier.key, values=self.values)
     25 
     26     @classmethod
     27     def from_proto(cls, payload):
     28         return ContributionMethodParameterConfiguration(identifier=ContributionMethodParameterIdentifier(key=payload.key), values={x.value_type:x.values for x in payload.matcher.values})
     29 
     30     @classmethod
     31     def to_proto(cls, instance):
     32         value_entries = []
     33         for value_type, values in instance.values.items():
     34             value_entries.append(ProtoMatcherParameterConfiguration.ValueEntry(value_type=value_type, values=values))
     35 
     36         return ProtoParameterConfiguration(key=instance.identifier.key, matcher=ProtoMatcherParameterConfiguration(values=value_entries))
     37 
     38     @classmethod
     39     def from_flatbuffer(cls, fb_data):
     40         values = {}
     41         for i in range(fb_data.MatchersLength()):
     42             matcher = fb_data.Matchers(i)
     43             values[matcher.ValueType()] = [ matcher.Values(j) for j in range(matcher.ValuesLength()) ]
     44 
     45         return ContributionMethodParameterConfiguration(identifier=ContributionMethodParameterIdentifier.from_flatbuffer(fb_data.Key()), values=values)
     46 
     47     def __eq__(self, other):
     48         return self.identifier == other.identifier and self.values == other.values
     49 
     50     def __ne__(self, other):
     51         return not self.__eq__(other)
     52 
     53     def __str__(self):
     54         return 'identifier: %s\n' % self.identifier + 'values: %s' % self.values