schoolBracket.py (4844B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\login\charcreation_new\steps\empireSelection\schoolBracket.py 2 import trinity 3 from carbon.client.script.environment.AudioUtil import PlaySound 4 from carbonui import uiconst 5 from carbonui.loggers.buttonLogger import log_button_clicked 6 from carbonui.primitives.bracket import Bracket 7 from carbonui.primitives.container import Container 8 from carbonui.uianimations import animations 9 from eve.client.script.ui.login.charcreation_new import soundConst 10 from eve.client.script.ui.login.charcreation_new.steps.empireSelection.empireSelectionConst import ICONS_BY_SCHOOLID 11 from eve.client.script.ui.login.charcreation_new.charCreationSignals import onEmpireFactionSelected, onEmpireSchoolSelected, onEmpireSchoolButtonClicked 12 from eveui import Sprite 13 OPACITY_SELECTED = 1.0 14 OPACITY_IDLE = 0.5 15 OPACITY_HOVER = 1.0 16 17 class SchoolMarker(Container): 18 default_bgTexturePath = 'res:/UI/Texture/Classes/CharacterSelection/EmpireSelection/bracketBackground.png' 19 default_width = 129 20 default_height = 139 21 default_state = uiconst.UI_DISABLED 22 default_opacity = 0.0 23 default_pickingMaskTexturePath = 'res:/UI/Texture/Classes/CharacterSelection/EmpireSelection/bracketPickingMask.png' 24 default_analyticID = '' 25 26 def ApplyAttributes(self, attributes): 27 super(SchoolMarker, self).ApplyAttributes(attributes) 28 self.schoolID = attributes.schoolID 29 self.analyticID = attributes.get('analyticID', self.default_analyticID) 30 onEmpireSchoolSelected.connect(self.OnSchoolSelected) 31 self.isSelected = False 32 self.icon = Sprite(name='icon', parent=self, align=uiconst.CENTERTOP, pos=(0, 28, 64, 64), texturePath=ICONS_BY_SCHOOLID[self.schoolID], opacity=OPACITY_IDLE) 33 self.selectedSprite = Sprite(name='selectedSprite', parent=self, align=uiconst.CENTERTOP, pos=(0, 10, 134, 159), texturePath='res:/UI/Texture/Classes/CharacterSelection/EmpireSelection/bracketSelected.png', opacity=0.0) 34 self.hoverglow = Sprite(name='hoverGlow', parent=self, align=uiconst.CENTERTOP, pos=(0, -10, 144, 132), texturePath='res:/UI/Texture/Classes/CharacterSelection/EmpireSelection/bracketHoverglow.png', opacity=0.0) 35 36 def FadeOut(self, *args): 37 self.Disable() 38 animations.FadeOut(self) 39 40 def FadeIn(self, *args): 41 self.Enable() 42 animations.FadeIn(self) 43 44 def SetSelected(self): 45 animations.FadeIn(self.selectedSprite, OPACITY_SELECTED, duration=0.15) 46 animations.FadeIn(self.icon, OPACITY_SELECTED, duration=0.15) 47 self.isSelected = True 48 PlaySound(soundConst.MAP_ICON_CLICK) 49 50 def SetDeselected(self): 51 animations.FadeOut(self.selectedSprite, duration=0.15) 52 animations.FadeIn(self.icon, OPACITY_IDLE, duration=0.15) 53 self.isSelected = False 54 55 def OnSchoolSelected(self, schoolID): 56 if schoolID == self.schoolID: 57 self.SetSelected() 58 else: 59 self.SetDeselected() 60 61 def OnMouseEnter(self, *args): 62 animations.FadeIn(self.hoverglow, 0.1, duration=0.4) 63 if not self.isSelected: 64 PlaySound(soundConst.MAP_ICON_HOVER) 65 animations.FadeIn(self.icon, OPACITY_HOVER, duration=0.2) 66 animations.FadeIn(self.selectedSprite, 0.25, duration=0.2) 67 68 def OnMouseExit(self, *args): 69 animations.FadeIn(self.hoverglow, 0.0, duration=0.4) 70 if not self.isSelected: 71 animations.FadeIn(self.icon, OPACITY_IDLE, duration=0.2) 72 animations.FadeIn(self.selectedSprite, 0.0, duration=0.2) 73 74 def OnClick(self, *args): 75 PlaySound(uiconst.SOUND_SETSELECTED) 76 onEmpireSchoolButtonClicked(self.schoolID) 77 log_button_clicked(self) 78 79 80 class SchoolBracket(Bracket): 81 default_width = 129 82 default_height = 302 83 default_state = uiconst.UI_PICKCHILDREN 84 default_integerCoordinates = False 85 86 def ApplyAttributes(self, attributes): 87 super(SchoolBracket, self).ApplyAttributes(attributes) 88 self.scene = attributes.scene 89 self.system = attributes.system 90 self.factionID = attributes.factionID 91 self.schoolID = attributes.schoolID 92 self.trackTransform = trinity.EveTransform() 93 self.trackTransform.translation = self.system.position 94 self.scene.objects.append(self.trackTransform) 95 onEmpireFactionSelected.connect(self.OnEmpireFactionSelected) 96 self.marker = SchoolMarker(parent=self, align=uiconst.CENTERTOP, schoolID=self.schoolID, analyticID='SchoolMarker_schoolID_%s' % self.schoolID) 97 98 def OnEmpireFactionSelected(self, factionID): 99 if factionID == self.factionID: 100 self.marker.FadeIn() 101 else: 102 self.marker.FadeOut() 103 104 def GetPosition(self): 105 return self.trackTransform.translation