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

bracket.py (2815B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\spacecomponents\client\ui\jumpbridge\bracket.py
      2 import threadutils
      3 from carbon.common.script.sys.serviceManager import ServiceManager
      4 from dynamicresources.client.ess.bracket.camera import InFlightCameraReference
      5 from dynamicresources.client.ess.bracket.state_machine import State
      6 from spacecomponents.client.ui.baseBracket import BaseBracket
      7 from spacecomponents.client.ui.jumpbridge.states import Online
      8 from spacecomponents.client.ui.rootTransformController import RootTransformController
      9 
     10 class JumpBridgeBracket(BaseBracket):
     11     __notifyevents__ = ('OnWarpActive', 'OnClientEvent_WarpFinished', 'OnSessionChanged')
     12 
     13     def __init__(self, item_id, type_id, content_class, panel_name = 'JumpBridgeBracket', offset_y = 5500.0, collapse_at_camera_distance = 150000.0, tether_name = 'jumpbridge_tether', tether_width = 50):
     14         super(JumpBridgeBracket, self).__init__(item_id, type_id)
     15         self._content_class = content_class
     16         self._panel_name = panel_name
     17         self._offset_y = offset_y
     18         self._collapse_at_camera_distance = collapse_at_camera_distance
     19         self._tether_name = tether_name
     20         self._tether_width = tether_width
     21         self._init()
     22 
     23     @property
     24     def content_class(self):
     25         return self._content_class
     26 
     27     @property
     28     def panel_name(self):
     29         return self._panel_name
     30 
     31     @property
     32     def offset_y(self):
     33         return self._offset_y
     34 
     35     @property
     36     def collapse_at_camera_distance(self):
     37         return self._collapse_at_camera_distance
     38 
     39     @property
     40     def tether_name(self):
     41         return self._tether_name
     42 
     43     @property
     44     def tether_width(self):
     45         return self._tether_width
     46 
     47     @threadutils.threaded
     48     def _init(self):
     49         ball = self._wait_for_ball()
     50         scene = self._scene_manager.GetRegisteredScene('default')
     51         self._root = RootTransformController(ball=ball, scene=scene)
     52         self._camera = InFlightCameraReference(self._scene_manager)
     53         self._on_state_changed()
     54         ServiceManager.Instance().RegisterNotify(self)
     55 
     56     def _on_state_changed(self, *_args):
     57         if self._closed:
     58             return
     59         if self._michelle.InWarp():
     60             self._state_machine.move_to(Hidden())
     61         elif session.structureid:
     62             self._state_machine.move_to(Hidden())
     63         else:
     64             self._state_machine.move_to(Online(self))
     65 
     66     def OnWarpActive(self, _warp_to_item_id, _warp_to_type_id):
     67         self._on_state_changed()
     68 
     69     def OnClientEvent_WarpFinished(self, _warp_to_item_id, _warp_to_type_id):
     70         self._on_state_changed()
     71 
     72     def OnSessionChanged(self, isRemote, sess, change):
     73         if 'shipid' in change:
     74             self._on_state_changed()
     75 
     76 
     77 class Hidden(State):
     78     pass