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

skin_design.py (2381B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\cosmetics\client\ships\skins\live_data\skin_design.py
      2 from cosmetics.client.ships.skins.live_data.component_instance import create_component_instance
      3 from cosmetics.client.ships.skins.live_data.slot_layout import SlotLayout
      4 from cosmetics.client.ships.skins.static_data import hull_type_projections
      5 from cosmetics.common.ships.skins.live_data.skin_design import BaseSkinDesign
      6 from cosmetics.common.ships.skins.static_data.slot_name import PATTERN_SLOT_IDS
      7 from eveProto.generated.eve_public.character.character_pb2 import Identifier as CharacterIdentifier
      8 from eveProto.generated.eve_public.cosmetic.ship.skin.thirdparty.thirdparty_pb2 import Attributes, Tier
      9 from eveProto.generated.eve_public.ship.ship_type_pb2 import Identifier as ShipTypeIdentifier
     10 
     11 class SkinDesign(BaseSkinDesign):
     12     SLOT_LAYOUT_CLASS = SlotLayout
     13     CHARACTER_PROTO = CharacterIdentifier
     14     TYPE_PROTO = ShipTypeIdentifier
     15     SKIN_ATTRIBUTES_PROTO = Attributes
     16     SKIN_TIER_PROTO = Tier
     17 
     18     def create_component_instance(self, component_id, **kwargs):
     19         scaling_multiplier = hull_type_projections.get_default_scaling_for_type(self.ship_type_id)
     20         return create_component_instance(component_id, scaling_multiplier=scaling_multiplier)
     21 
     22     def validate_licenses(self, number_of_runs):
     23         licenses = []
     24         for component_instance in self.get_fitted_components():
     25             if component_instance.component_license_to_use is not None:
     26                 component_id = component_instance.component_id
     27                 component_type = component_instance.category
     28                 license_type = component_instance.component_license_to_use.license_type
     29                 license = self.slot_layout.get_component_license_of_type(component_id, component_type, license_type)
     30                 licenses.append(license)
     31 
     32         return self.slot_layout.validate_licenses(number_of_runs, licenses)
     33 
     34     def validate_layout(self):
     35         return self.slot_layout.validate_layout()
     36 
     37     def _apply_type_id_to_components(self, value):
     38         for slot_id in PATTERN_SLOT_IDS:
     39             component_instance = self.get_fitted_component_instance(slot_id)
     40             if component_instance is not None:
     41                 component_instance.scaling_multiplier = hull_type_projections.get_default_scaling_for_type(value)