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

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