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

viewcontroller.py (3024B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\eveclientqatools\sofpreviewer\highslotselection\viewcontroller.py
      2 from __future__ import absolute_import
      3 from .viewmodel import HighSlotSelectionViewModel
      4 from .view import HighSlotSelectionView
      5 from eve.client.script.environment.model.turretSet import TurretSet
      6 import trinity
      7 
      8 class HighSlotSelectionViewController(object):
      9 
     10     def __init__(self, model, parentController, parentView):
     11         self._parentController = parentController
     12         self._parentView = parentView
     13         self._model = model
     14         self._dna = parentController.GetPreviewDna()
     15         turretLocatorCount = model.GetTurretLocatorCount(dna=self._dna)
     16         self.viewModel = HighSlotSelectionViewModel(self._model, turretLocatorCount)
     17         self.view = None
     18 
     19     def ShowUI(self, parentContainer):
     20         self.view = HighSlotSelectionView(self)
     21         self.view.Setup(parentContainer, self.viewModel)
     22         return self.view
     23 
     24     def OnTurretSelected(self, comboBox, highSlotItem, index):
     25         self.viewModel.selectedHighSlotItem = self.viewModel.availableHighSlots[index]
     26         self._PlaceSelectedTurretsOnModel()
     27 
     28     def UpdateDNA(self, dna):
     29         self._dna = dna
     30         self.viewModel.turretLocatorCount = self._model.GetTurretLocatorCount(self._dna)
     31         if self.view is not None:
     32             self.view.SetupTurretPicking(self.viewModel.turretLocatorCount)
     33 
     34     def OnTurretChecked(self, checkbox):
     35         self._PlaceSelectedTurretsOnModel()
     36 
     37     def _PlaceSelectedTurretsOnModel(self):
     38         del self._parentController.shipModel.turretSets[:]
     39         for index, checkbox in enumerate(self.view.checkBoxes):
     40             checked = checkbox.GetValue()
     41             if not checked:
     42                 continue
     43             TurretSet.FitTurret(self._parentController.shipModel, self.viewModel.selectedHighSlotItem.typeID, locatorID=index + 1)
     44 
     45     def OnTurretFilterChanged(self, *args):
     46         filter = self.view.turretFilter.GetValue()
     47         self.viewModel.availableHighSlots = HighSlotSelectionViewModel.CreateHighSlotSelection(self._model, filter)
     48         self.view.RefreshDropDown(self.viewModel)
     49 
     50     def OnShowBannerSetToggled(self, checkbox):
     51         checked = checkbox.GetValue()
     52         ship = self._parentController.shipModel
     53         self.ShowBanner(checked, ship)
     54 
     55     def ShowBanner(self, flag, ship):
     56         if ship is None:
     57             return
     58         for attachment in ship.attachments:
     59             if not isinstance(attachment, trinity.EveBannerSet):
     60                 continue
     61             imageMap = attachment.effect.resources.FindByName('ImageMap')
     62             if imageMap:
     63                 if flag:
     64                     imageMap.resourcePath = 'res:/UI/Texture/previewBannerVertical.dds'
     65                 else:
     66                     imageMap.resourcePath = ''
     67 
     68     @property
     69     def isShowBannerChecked(self):
     70         if self.view is not None:
     71             return self.view.showBannerSetCheckbox.GetValue()
     72         return False