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)