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