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

skin_license.py (4116B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\cosmetics\client\ships\skins\live_data\skin_license.py
      2 import datetime
      3 from cosmetics.client.shipSkinDataSvc import get_ship_skin_data_svc
      4 from cosmetics.client.ships.skins.live_data.skin_design import SkinDesign
      5 from player_messaging.client.ui_message import message_player
      6 from eveProto.generated.eve_public.cosmetic.ship.skin.thirdparty.license.license_pb2 import Attributes as LicenseAttributes
      7 from google.protobuf.timestamp_pb2 import Timestamp
      8 from localization import GetByLabel
      9 from publicGateway.grpc.exceptions import GenericException
     10 from stackless_response_router.exceptions import TimeoutException
     11 
     12 class SkinLicense(object):
     13 
     14     def __init__(self, owner_character_id, skin_hex, activated, nb_unactivated, nb_escrowed, acquired_time):
     15         self._owner_character_id = owner_character_id
     16         self._skin_hex = skin_hex
     17         self._activated = activated
     18         self._nb_unactivated = nb_unactivated
     19         self._nb_escrowed = nb_escrowed
     20         self._acquired_time = acquired_time
     21         self._skin_design = None
     22 
     23     @property
     24     def owner_character_id(self):
     25         return self._owner_character_id
     26 
     27     @property
     28     def skin_hex(self):
     29         return self._skin_hex
     30 
     31     @property
     32     def skin_design(self):
     33         return self._skin_design
     34 
     35     @property
     36     def activated(self):
     37         return self._activated
     38 
     39     @activated.setter
     40     def activated(self, value):
     41         self._activated = value
     42 
     43     @property
     44     def nb_unactivated(self):
     45         return self._nb_unactivated
     46 
     47     @property
     48     def nb_escrowed(self):
     49         return self._nb_escrowed
     50 
     51     @property
     52     def acquired_time(self):
     53         return self._acquired_time
     54 
     55     @property
     56     def name(self):
     57         return self.skin_design.name
     58 
     59     @property
     60     def tier_level(self):
     61         return self.skin_design.tier_level
     62 
     63     def load_skin_design(self):
     64         if self._skin_design is None:
     65             try:
     66                 self._skin_design = get_ship_skin_data_svc().get_skin_data(self._skin_hex)
     67             except (GenericException, TimeoutException):
     68                 message_player(GetByLabel('UI/Common/CannotConnectToServer'))
     69                 self._skin_design = None
     70 
     71     def __eq__(self, other):
     72         if other is None:
     73             return False
     74         return self.owner_character_id == other.owner_character_id and self.skin_design == other.skin_design and self.activated == other.activated and self.nb_unactivated == other.nb_unactivated and self.nb_escrowed == other.nb_escrowed and self.acquired_time == other.acquired_time
     75 
     76     def __ne__(self, other):
     77         return not self.__eq__(other)
     78 
     79     def __str__(self):
     80         result = 'SKIN License from skin design %s\n' % self.skin_hex
     81         result += 'activated: %s\n' % self.activated
     82         result += 'nb_unactivated: %s\n' % self.nb_unactivated
     83         result += 'nb_escrowed: %s\n' % self.nb_escrowed
     84         result += 'acquired_time: %s\n' % self.acquired_time
     85         return result
     86 
     87     def copy_from_other(self, other):
     88         self._owner_character_id = other.owner_character_id
     89         self._skin_design = SkinDesign.copy_from_other(other.skin_design)
     90         self._activated = other.activated
     91         self._nb_unactivated = other.nb_unactivated
     92         self._nb_escrowed = other.nb_escrowed
     93         self._acquired_time = other.acquired_time
     94 
     95     @staticmethod
     96     def build_from_proto(payload, skin_hex, owner_character_id):
     97         license = SkinLicense(owner_character_id=owner_character_id, skin_hex=skin_hex, activated=payload.activated, nb_unactivated=payload.unactivated, nb_escrowed=payload.escrowed, acquired_time=datetime.datetime.fromtimestamp(payload.first_acquired.seconds))
     98         return license
     99 
    100     @staticmethod
    101     def build_proto_from_license(license):
    102         first_acquired = Timestamp()
    103         first_acquired.FromDatetime(license.acquired_time)
    104         payload = LicenseAttributes(activated=license.activated, unactivated=license.nb_unactivated, escrowed=license.nb_escrowed, first_acquired=first_acquired)
    105         return payload