infoPanelMissionObjective.py (3262B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\infoPanels\infoPanelMissionObjective.py 2 from eve.client.script.ui.control.statefulButtonController import StatefulButtonController 3 4 class MissionObjective(StatefulButtonController, object): 5 __notifyevents__ = StatefulButtonController.__notifyevents__ 6 MISSION_HINT_LABEL_PATH = None 7 ICON_TEXTURE_PATH = None 8 COMPLETED_ICON_TEXTURE_PATH = 'res:/UI/Texture/classes/MissionTracker/tracker_check.png' 9 ICON_COLOR = None 10 COMPLETED_ICON_COLOR = None 11 ICON_OPACITY = 0.0 12 ACTIVE_ICON_OPACITY = 0.6 13 COMPLETED_ICON_OPACITY = 0.6 14 HEADER_BACKGROUND_COLOR = (0, 0, 0) 15 COMPLETED_HEADER_BACKGROUND_COLOR = None 16 HEADER_BACKGROUND_OPACITY = 0.0 17 COMPLETED_HEADER_BACKGROUND_OPACITY = 0.6 18 OBJECTIVE_ICON_SIZE = 48 19 20 def __init__(self, iconItemID = None, iconTypeID = None, missionHint = None, activeIcon = None, completedIcon = None, isActive = False): 21 self.activeIcon = activeIcon or self.ICON_TEXTURE_PATH 22 self.completedIcon = completedIcon or self.COMPLETED_ICON_TEXTURE_PATH 23 self.activeIconOpacity = self.ACTIVE_ICON_OPACITY if activeIcon else self.ICON_OPACITY 24 self.iconItemID = iconItemID 25 self.iconTypeID = iconTypeID 26 self.missionHint = missionHint or '' 27 self.isActive = isActive 28 StatefulButtonController.__init__(self) 29 30 def IsActive(self): 31 return self.isActive 32 33 def SetActive(self): 34 self.isActive = True 35 36 def SetInactive(self): 37 self.isActive = False 38 39 def GetHeaderBackgroundData(self): 40 if self.IsActive(): 41 return (self.HEADER_BACKGROUND_OPACITY, self.HEADER_BACKGROUND_COLOR) 42 return (self.COMPLETED_HEADER_BACKGROUND_OPACITY, self.COMPLETED_HEADER_BACKGROUND_COLOR) 43 44 def GetHeaderIconData(self): 45 if self.IsActive(): 46 return (self.activeIcon, self.activeIconOpacity, self.ICON_COLOR) 47 return (self.completedIcon, self.COMPLETED_ICON_OPACITY, self.COMPLETED_ICON_COLOR) 48 49 def GetHeaderText(self): 50 raise NotImplementedError('Must implement GetHeaderText in derived class.') 51 52 def GetLocationButtonNamePostfix(self): 53 return self.GetHeaderText() 54 55 def GetLocationButtonName(self): 56 postFix = self.GetLocationButtonNamePostfix() 57 return 'missionObjective_button_location_%s' % postFix 58 59 def HasIcon(self): 60 return False 61 62 def GetObjectiveIconSize(self): 63 return self.OBJECTIVE_ICON_SIZE 64 65 def BuildIcon(self, name, parent, align, state, opacity, width, height): 66 raise NotImplementedError('Must implement BuildIcon in derived class.') 67 68 def HasText(self): 69 return bool(self.missionHint) 70 71 def GetText(self): 72 return self.missionHint 73 74 def GetLocation(self): 75 raise NotImplementedError('Must implement GetLocation in derived class.') 76 77 def HasGuidance(self): 78 return False 79 80 def StartGuidance(self): 81 raise NotImplementedError('Must implement StartGuidance in derived class.') 82 83 def GetClassName(self): 84 return type(self).__name__ 85 86 def GetButtonFunction(self): 87 return super(MissionObjective, self).GetButtonFunction()