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

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