uiAttributeGroupUtil.py (2486B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\dogma\attributes\uiAttributeGroupUtil.py 2 from __future__ import absolute_import 3 import collections 4 import dogma.const 5 from dogma.attributes.uiAttributeGroups import UIAttributeGroup 6 from eve.common.lib import appConst 7 from . import uiAttributeGroups 8 9 def get_attribute_ids_by_group(attribute_ids_to_group, category_id): 10 grouped_attribute_ids = collections.OrderedDict() 11 attribute_group_ids = get_attribute_group_ids(attribute_ids_to_group, category_id) 12 _assign_attributes_to_group_names(attribute_ids_to_group, attribute_group_ids, grouped_attribute_ids) 13 if attribute_ids_to_group and UIAttributeGroup.MISC in attribute_group_ids: 14 grouped_attribute_ids[UIAttributeGroup.MISC] = attribute_ids_to_group 15 return grouped_attribute_ids 16 17 18 def get_attribute_group_ids(attribute_ids_to_group, category_id): 19 if category_id == appConst.categoryShip: 20 return uiAttributeGroups.category_ship_attribute_group_ids 21 if category_id == appConst.categoryDrone: 22 return uiAttributeGroups.category_drone_attribute_group_ids 23 if category_id == appConst.categoryFighter: 24 return uiAttributeGroups.category_figther_attribute_group_ids 25 if category_id == appConst.categoryModule: 26 return uiAttributeGroups.category_module_attribute_group_ids 27 if category_id == appConst.categoryStructureModule: 28 return uiAttributeGroups.category_module_attribute_group_ids 29 if category_id == appConst.categorySubSystem: 30 return uiAttributeGroups.category_module_attribute_group_ids 31 if category_id == appConst.categoryCharge: 32 if dogma.const.attributeCrystalVolatilityChance in attribute_ids_to_group: 33 return uiAttributeGroups.ammo_crystal_attribute_group_ids 34 else: 35 return uiAttributeGroups.category_charge_attribute_group_ids 36 else: 37 return (UIAttributeGroup.MISC,) 38 39 40 def _assign_attributes_to_group_names(attribute_ids_to_group, attribute_group_ids, grouped_attribute_ids): 41 for attr_group_id in attribute_group_ids: 42 attribute_ids = uiAttributeGroups.attribute_ids_by_attribute_group_id[attr_group_id] 43 present_in_group_ids = tuple((a for a in attribute_ids if a in attribute_ids_to_group)) 44 if present_in_group_ids: 45 attribute_ids_to_group.symmetric_difference_update(present_in_group_ids) 46 grouped_attribute_ids[attr_group_id] = present_in_group_ids