skillPlanUtil.py (4628B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\skillPlan\skillPlanUtil.py 2 import evetypes 3 from carbonui.control.dragdrop import dragDropUtil, dragdata 4 from eve.client.script.ui.skillPlan import skillPlanConst 5 import inventorycommon.const as invConst 6 from eve.client.script.ui.skillPlan.skillPlanConst import IS_PREREQ, NO_REQ, REQUIRED_FOR 7 from skills.skillplan.milestone.milestonesUtil import GetMilestoneSubType 8 9 def IsValidContentsDragData(dragData): 10 typeID = dragDropUtil.GetTypeID(dragData) 11 if typeID is None: 12 return False 13 return IsTypeValidMilestone(typeID) 14 15 16 def IsTypeValidMilestone(typeID): 17 if typeID is None: 18 return False 19 typeCategoryID = evetypes.GetCategoryID(typeID) 20 if typeCategoryID == invConst.categorySkill: 21 return True 22 if typeCategoryID == invConst.categoryAsteroid: 23 return False 24 if sm.GetService('skills').GetRequiredSkills(typeID): 25 return True 26 return False 27 28 29 def GetDragDataTypeIDAndLevel(dragData): 30 if isinstance(dragData, dragdata.SkillLevelDragData): 31 typeID = dragData.typeID 32 level = dragData.level 33 else: 34 typeID = dragDropUtil.GetTypeID(dragData) 35 level = None 36 if typeID and evetypes.IsSkill(typeID): 37 level = level or 1 38 return (typeID, level) 39 40 41 def GetMilestoneTexturePath(typeID): 42 subType = GetMilestoneSubType(typeID) 43 return skillPlanConst.MILESTONE_ICON_BY_SUBTYPE.get(subType, None) 44 45 46 def GetPreReqsAndRequiredForSkillLevel(typeID, level): 47 prereqs = evetypes.skills.get_dogma_required_skills(typeID) 48 reqForTypeIDs = GetSkillsRequiring(typeID, level) 49 return (prereqs, reqForTypeIDs) 50 51 52 def GetSkillsRequiring(typeID, level): 53 typeIndex = evetypes.skills.get_required_skills_index().get(typeID, {}) 54 reqForTypeIDs = set() 55 typesByMetaGroupID = typeIndex.get(level, {}).get(const.marketCategorySkills, {}) 56 for typeList in typesByMetaGroupID.itervalues(): 57 reqForTypeIDs.update(typeList) 58 59 return reqForTypeIDs 60 61 62 def GetRequirementStateForEntry(typeID, level, entry, prereqs, reqForTypeIDs): 63 if typeID is None or level is None: 64 return NO_REQ 65 if entry.typeID in reqForTypeIDs and entry.level == 1: 66 return REQUIRED_FOR 67 if entry.typeID == typeID: 68 if entry.level < level: 69 return IS_PREREQ 70 if entry.level > level: 71 return REQUIRED_FOR 72 return NO_REQ 73 reqLevel = prereqs.get(entry.typeID, None) 74 if reqLevel is not None and entry.level == reqLevel: 75 return IS_PREREQ 76 return NO_REQ 77 78 79 DEFAULT_PANELID_BY_BUTTONGROUP_ID = {skillPlanConst.BUTTON_GROUP_ID_TOP_LEVEL: skillPlanConst.PANEL_SKILL_PLANS, 80 skillPlanConst.BUTTON_GROUP_ID_SKILL_PLANS: skillPlanConst.PANEL_CERTIFIED} 81 82 def GetPersistedPanelID(buttonGroupID): 83 return settings.char.ui.Get(buttonGroupID, DEFAULT_PANELID_BY_BUTTONGROUP_ID.get(buttonGroupID, None)) 84 85 86 def SetPersistedPanelID(buttonGroupID, panelID): 87 return settings.char.ui.Set(buttonGroupID, panelID) 88 89 90 def IsExternalServicePanelSelected(): 91 return GetPersistedPanelID(skillPlanConst.BUTTON_GROUP_ID_TOP_LEVEL) == skillPlanConst.PANEL_SKILL_PLANS and GetPersistedPanelID(skillPlanConst.BUTTON_GROUP_ID_SKILL_PLANS) == skillPlanConst.PANEL_PERSONAL 92 93 94 def LoadGenericTooltip(tooltipPanel, headerText, text): 95 tooltipPanel.LoadStandardSpacing() 96 tooltipPanel.columns = 1 97 tooltipPanel.AddMediumHeader(text=headerText) 98 tooltipPanel.AddLabelMedium(text=text, wrapWidth=300) 99 100 101 def _GetCertifiedSkillPlansPanel(): 102 from eve.client.script.ui.skillPlan.skillPlanDockablePanel import SkillPlanDockablePanel 103 skill_plans_window = SkillPlanDockablePanel.GetIfOpen() 104 if skill_plans_window: 105 skill_plan_panel = getattr(skill_plans_window, 'skillPlanPanel', None) 106 if skill_plan_panel: 107 skill_plan_browser = getattr(skill_plan_panel, 'skillPlanBrowser', None) 108 if skill_plan_browser: 109 return getattr(skill_plan_browser, 'certifiedSkillPlans', None) 110 111 112 def GetVisibleCareerPathTabGroup(): 113 certified_skill_plans = _GetCertifiedSkillPlansPanel() 114 if certified_skill_plans: 115 return certified_skill_plans.GetVisibleCareerPathTabGroup() 116 117 118 def GetVisibleFactionTabGroup(): 119 certified_skill_plans = _GetCertifiedSkillPlansPanel() 120 if certified_skill_plans: 121 return certified_skill_plans.GetVisibleFactionTabGroup() 122 123 124 def HasFactionTabGroup(): 125 certified_skill_plans = _GetCertifiedSkillPlansPanel() 126 if certified_skill_plans: 127 return certified_skill_plans.HasFactionTabGroup()